sig   module AdClient :     sig       type t = {         id : string;         kind : string;         productCode : string;         supportsReporting : bool;       }       val id : (GapiAdsenseV1_1Model.AdClient.t, string) GapiLens.t       val kind : (GapiAdsenseV1_1Model.AdClient.t, string) GapiLens.t       val productCode : (GapiAdsenseV1_1Model.AdClient.t, string) GapiLens.t       val supportsReporting :         (GapiAdsenseV1_1Model.AdClient.t, bool) GapiLens.t       val empty : GapiAdsenseV1_1Model.AdClient.t       val render :         GapiAdsenseV1_1Model.AdClient.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.AdClient.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdClient.t       val to_data_model :         GapiAdsenseV1_1Model.AdClient.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdClient.t     end   module AdClients :     sig       type t = {         etag : string;         items : GapiAdsenseV1_1Model.AdClient.t list;         kind : string;         nextPageToken : string;       }       val etag : (GapiAdsenseV1_1Model.AdClients.t, string) GapiLens.t       val items :         (GapiAdsenseV1_1Model.AdClients.t,          GapiAdsenseV1_1Model.AdClient.t list)         GapiLens.t       val kind : (GapiAdsenseV1_1Model.AdClients.t, string) GapiLens.t       val nextPageToken :         (GapiAdsenseV1_1Model.AdClients.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.AdClients.t       val render :         GapiAdsenseV1_1Model.AdClients.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.AdClients.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdClients.t       val to_data_model :         GapiAdsenseV1_1Model.AdClients.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdClients.t     end   module AdUnit :     sig       type t = {         code : string;         id : string;         kind : string;         name : string;         status : string;       }       val code : (GapiAdsenseV1_1Model.AdUnit.t, string) GapiLens.t       val id : (GapiAdsenseV1_1Model.AdUnit.t, string) GapiLens.t       val kind : (GapiAdsenseV1_1Model.AdUnit.t, string) GapiLens.t       val name : (GapiAdsenseV1_1Model.AdUnit.t, string) GapiLens.t       val status : (GapiAdsenseV1_1Model.AdUnit.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.AdUnit.t       val render :         GapiAdsenseV1_1Model.AdUnit.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.AdUnit.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdUnit.t       val to_data_model :         GapiAdsenseV1_1Model.AdUnit.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdUnit.t     end   module AdUnits :     sig       type t = {         etag : string;         items : GapiAdsenseV1_1Model.AdUnit.t list;         kind : string;         nextPageToken : string;       }       val etag : (GapiAdsenseV1_1Model.AdUnits.t, string) GapiLens.t       val items :         (GapiAdsenseV1_1Model.AdUnits.t, GapiAdsenseV1_1Model.AdUnit.t list)         GapiLens.t       val kind : (GapiAdsenseV1_1Model.AdUnits.t, string) GapiLens.t       val nextPageToken : (GapiAdsenseV1_1Model.AdUnits.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.AdUnits.t       val render :         GapiAdsenseV1_1Model.AdUnits.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.AdUnits.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdUnits.t       val to_data_model :         GapiAdsenseV1_1Model.AdUnits.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.AdUnits.t     end   module CustomChannel :     sig       module TargetingInfo :         sig           type t = {             adsAppearOn : string;             description : string;             location : string;             siteLanguage : string;           }           val adsAppearOn :             (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)             GapiLens.t           val description :             (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)             GapiLens.t           val location :             (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)             GapiLens.t           val siteLanguage :             (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)             GapiLens.t           val empty : GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t           val render :             GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t ->             GapiJson.json_data_model list           val parse :             GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t ->             GapiJson.json_data_model ->             GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t         end       type t = {         code : string;         id : string;         kind : string;         name : string;         targetingInfo : GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t;       }       val code : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t       val id : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t       val kind : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t       val name : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t       val targetingInfo :         (GapiAdsenseV1_1Model.CustomChannel.t,          GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t)         GapiLens.t       val empty : GapiAdsenseV1_1Model.CustomChannel.t       val render :         GapiAdsenseV1_1Model.CustomChannel.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.CustomChannel.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannel.t       val to_data_model :         GapiAdsenseV1_1Model.CustomChannel.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannel.t     end   module UrlChannel :     sig       type t = { id : string; kind : string; urlPattern : string; }       val id : (GapiAdsenseV1_1Model.UrlChannel.t, string) GapiLens.t       val kind : (GapiAdsenseV1_1Model.UrlChannel.t, string) GapiLens.t       val urlPattern : (GapiAdsenseV1_1Model.UrlChannel.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.UrlChannel.t       val render :         GapiAdsenseV1_1Model.UrlChannel.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.UrlChannel.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.UrlChannel.t       val to_data_model :         GapiAdsenseV1_1Model.UrlChannel.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.UrlChannel.t     end   module Account :     sig       type t = {         id : string;         kind : string;         name : string;         subAccounts : GapiAdsenseV1_1Model.Account.t list;       }       val id : (GapiAdsenseV1_1Model.Account.t, string) GapiLens.t       val kind : (GapiAdsenseV1_1Model.Account.t, string) GapiLens.t       val name : (GapiAdsenseV1_1Model.Account.t, string) GapiLens.t       val subAccounts :         (GapiAdsenseV1_1Model.Account.t, GapiAdsenseV1_1Model.Account.t list)         GapiLens.t       val empty : GapiAdsenseV1_1Model.Account.t       val render :         GapiAdsenseV1_1Model.Account.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.Account.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.Account.t       val to_data_model :         GapiAdsenseV1_1Model.Account.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.Account.t     end   module CustomChannels :     sig       type t = {         etag : string;         items : GapiAdsenseV1_1Model.CustomChannel.t list;         kind : string;         nextPageToken : string;       }       val etag : (GapiAdsenseV1_1Model.CustomChannels.t, string) GapiLens.t       val items :         (GapiAdsenseV1_1Model.CustomChannels.t,          GapiAdsenseV1_1Model.CustomChannel.t list)         GapiLens.t       val kind : (GapiAdsenseV1_1Model.CustomChannels.t, string) GapiLens.t       val nextPageToken :         (GapiAdsenseV1_1Model.CustomChannels.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.CustomChannels.t       val render :         GapiAdsenseV1_1Model.CustomChannels.t ->         GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.CustomChannels.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannels.t       val to_data_model :         GapiAdsenseV1_1Model.CustomChannels.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannels.t     end   module Accounts :     sig       type t = {         etag : string;         items : GapiAdsenseV1_1Model.Account.t list;         kind : string;         nextPageToken : string;       }       val etag : (GapiAdsenseV1_1Model.Accounts.t, string) GapiLens.t       val items :         (GapiAdsenseV1_1Model.Accounts.t,          GapiAdsenseV1_1Model.Account.t list)         GapiLens.t       val kind : (GapiAdsenseV1_1Model.Accounts.t, string) GapiLens.t       val nextPageToken :         (GapiAdsenseV1_1Model.Accounts.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.Accounts.t       val render :         GapiAdsenseV1_1Model.Accounts.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.Accounts.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.Accounts.t       val to_data_model :         GapiAdsenseV1_1Model.Accounts.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.Accounts.t     end   module AdsenseReportsGenerateResponse :     sig       module Headers :         sig           type t = { currency : string; name : string; _type : string; }           val currency :             (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t,              string)             GapiLens.t           val name :             (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t,              string)             GapiLens.t           val _type :             (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t,              string)             GapiLens.t           val empty :             GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t           val render :             GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t ->             GapiJson.json_data_model list           val parse :             GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t ->             GapiJson.json_data_model ->             GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t         end       type t = {         averages : string list;         headers :           GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t list;         kind : string;         rows : string list list;         totalMatchedRows : int64;         totals : string list;         warnings : string list;       }       val averages :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t, string list)         GapiLens.t       val headers :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t,          GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.Headers.t list)         GapiLens.t       val kind :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t, string)         GapiLens.t       val rows :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t,          string list list)         GapiLens.t       val totalMatchedRows :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t, int64)         GapiLens.t       val totals :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t, string list)         GapiLens.t       val warnings :         (GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t, string list)         GapiLens.t       val empty : GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t       val render :         GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t ->         GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t ->         GapiJson.json_data_model ->         GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t       val to_data_model :         GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t ->         GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model ->         GapiAdsenseV1_1Model.AdsenseReportsGenerateResponse.t     end   module UrlChannels :     sig       type t = {         etag : string;         items : GapiAdsenseV1_1Model.UrlChannel.t list;         kind : string;         nextPageToken : string;       }       val etag : (GapiAdsenseV1_1Model.UrlChannels.t, string) GapiLens.t       val items :         (GapiAdsenseV1_1Model.UrlChannels.t,          GapiAdsenseV1_1Model.UrlChannel.t list)         GapiLens.t       val kind : (GapiAdsenseV1_1Model.UrlChannels.t, string) GapiLens.t       val nextPageToken :         (GapiAdsenseV1_1Model.UrlChannels.t, string) GapiLens.t       val empty : GapiAdsenseV1_1Model.UrlChannels.t       val render :         GapiAdsenseV1_1Model.UrlChannels.t -> GapiJson.json_data_model list       val parse :         GapiAdsenseV1_1Model.UrlChannels.t ->         GapiJson.json_data_model -> GapiAdsenseV1_1Model.UrlChannels.t       val to_data_model :         GapiAdsenseV1_1Model.UrlChannels.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiAdsenseV1_1Model.UrlChannels.t     end end