sig
  module SingleError :
    sig
      type t = {
        domain : string;
        reason : string;
        message : string;
        locationType : string;
        location : string;
        extendedHelp : string;
      }
      val domain : (GapiError.SingleError.t, string) GapiLens.t
      val reason : (GapiError.SingleError.t, string) GapiLens.t
      val message : (GapiError.SingleError.t, string) GapiLens.t
      val locationType : (GapiError.SingleError.t, string) GapiLens.t
      val location : (GapiError.SingleError.t, string) GapiLens.t
      val extendedHelp : (GapiError.SingleError.t, string) GapiLens.t
      val empty : GapiError.SingleError.t
      val render : GapiError.SingleError.t -> GapiJson.json_data_model list
      val parse :
        GapiError.SingleError.t ->
        GapiJson.json_data_model -> GapiError.SingleError.t
    end
  module RequestError :
    sig
      type t = {
        errors : GapiError.SingleError.t list;
        code : int;
        message : string;
      }
      val errors :
        (GapiError.RequestError.t, GapiError.SingleError.t list) GapiLens.t
      val code : (GapiError.RequestError.t, int) GapiLens.t
      val message : (GapiError.RequestError.t, string) GapiLens.t
      val empty : GapiError.RequestError.t
      val render : GapiError.RequestError.t -> GapiJson.json_data_model list
      val parse :
        GapiError.RequestError.t ->
        GapiJson.json_data_model -> GapiError.RequestError.t
      val to_data_model :
        GapiError.RequestError.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiError.RequestError.t
    end
end