sig
  module Items :
    sig
      module Icons :
        sig
          type t = { x16 : string; x32 : string; }
          val x16 :
            (GapiDiscoveryV1Model.DirectoryList.Items.Icons.t, string)
            GapiLens.t
          val x32 :
            (GapiDiscoveryV1Model.DirectoryList.Items.Icons.t, string)
            GapiLens.t
          val empty : GapiDiscoveryV1Model.DirectoryList.Items.Icons.t
          val render :
            GapiDiscoveryV1Model.DirectoryList.Items.Icons.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDiscoveryV1Model.DirectoryList.Items.Icons.t ->
            GapiJson.json_data_model ->
            GapiDiscoveryV1Model.DirectoryList.Items.Icons.t
        end
      type t = {
        description : string;
        discoveryLink : string;
        discoveryRestUrl : string;
        documentationLink : string;
        icons : GapiDiscoveryV1Model.DirectoryList.Items.Icons.t;
        id : string;
        kind : string;
        labels : string list;
        name : string;
        preferred : bool;
        title : string;
        version : string;
      }
      val description :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val discoveryLink :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val discoveryRestUrl :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val documentationLink :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val icons :
        (GapiDiscoveryV1Model.DirectoryList.Items.t,
         GapiDiscoveryV1Model.DirectoryList.Items.Icons.t)
        GapiLens.t
      val id :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val kind :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val labels :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string list) GapiLens.t
      val name :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val preferred :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, bool) GapiLens.t
      val title :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val version :
        (GapiDiscoveryV1Model.DirectoryList.Items.t, string) GapiLens.t
      val empty : GapiDiscoveryV1Model.DirectoryList.Items.t
      val render :
        GapiDiscoveryV1Model.DirectoryList.Items.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDiscoveryV1Model.DirectoryList.Items.t ->
        GapiJson.json_data_model ->
        GapiDiscoveryV1Model.DirectoryList.Items.t
    end
  type t = {
    discoveryVersion : string;
    items : GapiDiscoveryV1Model.DirectoryList.Items.t list;
    kind : string;
  }
  val discoveryVersion :
    (GapiDiscoveryV1Model.DirectoryList.t, string) GapiLens.t
  val items :
    (GapiDiscoveryV1Model.DirectoryList.t,
     GapiDiscoveryV1Model.DirectoryList.Items.t list)
    GapiLens.t
  val kind : (GapiDiscoveryV1Model.DirectoryList.t, string) GapiLens.t
  val empty : GapiDiscoveryV1Model.DirectoryList.t
  val render :
    GapiDiscoveryV1Model.DirectoryList.t -> GapiJson.json_data_model list
  val parse :
    GapiDiscoveryV1Model.DirectoryList.t ->
    GapiJson.json_data_model -> GapiDiscoveryV1Model.DirectoryList.t
  val to_data_model :
    GapiDiscoveryV1Model.DirectoryList.t -> GapiJson.json_data_model
  val of_data_model :
    GapiJson.json_data_model -> GapiDiscoveryV1Model.DirectoryList.t
end