{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-module-discoveries-schema.json",
  "title": "moduleDiscoveries",
  "description": "Collection of discovery information for modules that comprise an application",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/folio-mgr-applications-am-openapi.yml#/components/schemas/moduleDiscoveries",
  "type": "object",
  "properties": {
    "discovery": {
      "description": "Discovery information for the modules that comprise this application",
      "type": "array",
      "id": "moduleDiscovery",
      "items": {
        "$ref": "#/$defs/moduleDiscovery"
      }
    },
    "totalRecords": {
      "readOnly": true,
      "description": "The total number of records matching the provided criteria",
      "type": "integer",
      "format": "int64"
    }
  },
  "required": [
    "discovery"
  ],
  "$defs": {
    "artifact": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Application Artifact Schema",
      "description": "Artifact Descriptor for Application Manager Installer",
      "type": "object",
      "properties": {
        "id": {
          "description": "A Name-Version id for identifying this artifact",
          "type": "string"
        },
        "name": {
          "description": "Artifact name",
          "type": "string"
        },
        "version": {
          "description": "The version of an artifact (semantic version approach)",
          "$ref": "#/$defs/version"
        }
      },
      "additionalProperties": false,
      "required": [
        "name",
        "version"
      ]
    },
    "moduleDiscovery": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "object",
      "description": "Module discovery information",
      "x-implements": [
        "org.folio.common.domain.model.Artifact"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/artifact"
        }
      ],
      "properties": {
        "location": {
          "description": "A url address of module where its been deployed",
          "type": "string"
        }
      },
      "required": [
        "location"
      ]
    },
    "version": {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
      "type": "string",
      "pattern": "^(\\d+)\\.(\\d+)\\.(\\d+)(?:-([\\dA-Za-z-]+(?:\\.[\\dA-Za-z-]+)*))?(?:\\+[\\dA-Za-z-]+)?$"
    }
  }
}