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