sig
  module Userinfoplus :
    sig
      type t = {
        email : string;
        family_name : string;
        gender : string;
        given_name : string;
        hd : string;
        id : string;
        link : string;
        locale : string;
        name : string;
        picture : string;
        verified_email : bool;
      }
      val email : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val family_name : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val gender : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val given_name : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val hd : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val id : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val link : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val locale : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val name : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val picture : (GapiOauth2V2Model.Userinfoplus.t, string) GapiLens.t
      val verified_email :
        (GapiOauth2V2Model.Userinfoplus.t, bool) GapiLens.t
      val empty : GapiOauth2V2Model.Userinfoplus.t
      val render :
        GapiOauth2V2Model.Userinfoplus.t -> GapiJson.json_data_model list
      val parse :
        GapiOauth2V2Model.Userinfoplus.t ->
        GapiJson.json_data_model -> GapiOauth2V2Model.Userinfoplus.t
      val to_data_model :
        GapiOauth2V2Model.Userinfoplus.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiOauth2V2Model.Userinfoplus.t
    end
  module Tokeninfo :
    sig
      type t = {
        access_type : string;
        audience : string;
        email : string;
        expires_in : int;
        issued_to : string;
        scope : string;
        token_handle : string;
        user_id : string;
        verified_email : bool;
      }
      val access_type : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val audience : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val email : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val expires_in : (GapiOauth2V2Model.Tokeninfo.t, int) GapiLens.t
      val issued_to : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val scope : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val token_handle : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val user_id : (GapiOauth2V2Model.Tokeninfo.t, string) GapiLens.t
      val verified_email : (GapiOauth2V2Model.Tokeninfo.t, bool) GapiLens.t
      val empty : GapiOauth2V2Model.Tokeninfo.t
      val render :
        GapiOauth2V2Model.Tokeninfo.t -> GapiJson.json_data_model list
      val parse :
        GapiOauth2V2Model.Tokeninfo.t ->
        GapiJson.json_data_model -> GapiOauth2V2Model.Tokeninfo.t
      val to_data_model :
        GapiOauth2V2Model.Tokeninfo.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiOauth2V2Model.Tokeninfo.t
    end
  module Jwk :
    sig
      module Keys :
        sig
          type t = {
            alg : string;
            e : string;
            kid : string;
            kty : string;
            n : string;
            use : string;
          }
          val alg : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val e : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val kid : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val kty : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val n : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val use : (GapiOauth2V2Model.Jwk.Keys.t, string) GapiLens.t
          val empty : GapiOauth2V2Model.Jwk.Keys.t
          val render :
            GapiOauth2V2Model.Jwk.Keys.t -> GapiJson.json_data_model list
          val parse :
            GapiOauth2V2Model.Jwk.Keys.t ->
            GapiJson.json_data_model -> GapiOauth2V2Model.Jwk.Keys.t
        end
      type t = { keys : GapiOauth2V2Model.Jwk.Keys.t list; }
      val keys :
        (GapiOauth2V2Model.Jwk.t, GapiOauth2V2Model.Jwk.Keys.t list)
        GapiLens.t
      val empty : GapiOauth2V2Model.Jwk.t
      val render : GapiOauth2V2Model.Jwk.t -> GapiJson.json_data_model list
      val parse :
        GapiOauth2V2Model.Jwk.t ->
        GapiJson.json_data_model -> GapiOauth2V2Model.Jwk.t
      val to_data_model : GapiOauth2V2Model.Jwk.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiOauth2V2Model.Jwk.t
    end
end