sig
  module Map :
    sig
      type t = { _ref : string; type_value : string; }
      val _ref :
        (GapiDiscoveryV1Model.JsonSchema.Variant.Map.t, string) GapiLens.t
      val type_value :
        (GapiDiscoveryV1Model.JsonSchema.Variant.Map.t, string) GapiLens.t
      val empty : GapiDiscoveryV1Model.JsonSchema.Variant.Map.t
      val render :
        GapiDiscoveryV1Model.JsonSchema.Variant.Map.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDiscoveryV1Model.JsonSchema.Variant.Map.t ->
        GapiJson.json_data_model ->
        GapiDiscoveryV1Model.JsonSchema.Variant.Map.t
    end
  type t = {
    discriminant : string;
    map : GapiDiscoveryV1Model.JsonSchema.Variant.Map.t list;
  }
  val discriminant :
    (GapiDiscoveryV1Model.JsonSchema.Variant.t, string) GapiLens.t
  val map :
    (GapiDiscoveryV1Model.JsonSchema.Variant.t,
     GapiDiscoveryV1Model.JsonSchema.Variant.Map.t list)
    GapiLens.t
  val empty : GapiDiscoveryV1Model.JsonSchema.Variant.t
  val render :
    GapiDiscoveryV1Model.JsonSchema.Variant.t ->
    GapiJson.json_data_model list
  val parse :
    GapiDiscoveryV1Model.JsonSchema.Variant.t ->
    GapiJson.json_data_model -> GapiDiscoveryV1Model.JsonSchema.Variant.t
end