{
  "openapi": "3.1.0",
  "info": {
    "title": "Logical Model Enumeration Schema API",
    "description": "JSON Schema defining the structure of the Logical Model enumeration endpoint response",
    "version": "1.0.0"
  },
  "paths": {
    "/LogicalModels.schema.json": {
      "get": {
        "summary": "JSON Schema definition for the Logical Model LogicalModels",
        "description": "This endpoint serves the JSON Schema definition for the Logical Model LogicalModels.",
        "responses": {
          "200": {
            "description": "The JSON Schema for LogicalModels",
            "content": {
              "application/schema+json": {
                "schema": {
                  "$ref": "./LogicalModels.schema.json"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "LogicalModels": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "#/LogicalModels.schema.json",
        "title": "Logical Model Enumeration Schema",
        "description": "JSON Schema defining the structure of the Logical Model enumeration endpoint response",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "const": "logical_model"
          },
          "count": {
            "type": "integer"
          },
          "schemas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "filename": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "logicalModelUrl": {
                  "type": "string"
                },
                "propertyCount": {
                  "type": "integer"
                }
              },
              "required": [
                "filename",
                "title",
                "url"
              ]
            }
          }
        },
        "required": [
          "type",
          "count",
          "schemas"
        ],
        "example": {
          "type": "logical_model",
          "count": 25,
          "schemas": [
            {
              "filename": "StructureDefinition-DecisionSupportLogicSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-DecisionSupportLogicSource.schema.json",
              "title": "Decision Support Logic Source",
              "description": "Source reference for Decision Support Logic - exactly one of the following must be provided:\n- url (url data type): URL to retrieve DecisionSupportLogic definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the DecisionSupportLogic definition\n- instance: Inline DecisionSupportLogic instance data",
              "url": "./StructureDefinition-DecisionSupportLogicSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-DublinCore.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-DublinCore.schema.json",
              "title": "Dublin Core Metadata Element Set",
              "description": "Logical Model representing Dublin Core metadata elements as defined at https://www.dublincore.org/specifications/dublin-core/dcmi-terms/",
              "url": "./StructureDefinition-DublinCore.schema.json",
              "propertyCount": 16
            },
            {
              "filename": "StructureDefinition-DAK.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-DAK.schema.json",
              "title": "Digital Adaptation Kit (DAK)",
              "description": "Logical Model for representing a complete Digital Adaptation Kit (DAK) with metadata and all 9 DAK components",
              "url": "./StructureDefinition-DAK.schema.json",
              "propertyCount": 24
            },
            {
              "filename": "StructureDefinition-NonFunctionalRequirement.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-NonFunctionalRequirement.schema.json",
              "title": "Non-Functional Requirement (DAK)",
              "description": "Logical Model for representing non-functional requirement from a DAK",
              "url": "./StructureDefinition-NonFunctionalRequirement.schema.json",
              "propertyCount": 5
            },
            {
              "filename": "StructureDefinition-CoreDataElementSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-CoreDataElementSource.schema.json",
              "title": "Core Data Element Source",
              "description": "Source reference for Core Data Element - exactly one of the following must be provided:\n- url (url data type): URL to retrieve CoreDataElement definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the CoreDataElement definition\n- instance: Inline CoreDataElement instance data",
              "url": "./StructureDefinition-CoreDataElementSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-ProgramIndicator.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-ProgramIndicator.schema.json",
              "title": "Program Indicator (DAK)",
              "description": "Logical Model for representing Program Indicators from a DAK. Core set of indicators that need to be aggregated for decision-making, performance metrics and subnational and national reporting.",
              "url": "./StructureDefinition-ProgramIndicator.schema.json",
              "propertyCount": 9
            },
            {
              "filename": "StructureDefinition-HealthInterventions.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-HealthInterventions.schema.json",
              "title": "Health Interventions and Recommendations (DAK)",
              "description": "Logical Model for representing Health Interventions and Recommendations from a DAK. Overview of the health interventions and WHO, regional or national recommendations included within the DAK.",
              "url": "./StructureDefinition-HealthInterventions.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-DecisionSupportLogic.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-DecisionSupportLogic.schema.json",
              "title": "Decision-Support Logic (DAK)",
              "description": "Logical Model for representing Decision-Support Logic from a DAK. Decision-support logic and algorithms to support appropriate service delivery in accordance with WHO clinical, public health and data use guidelines.",
              "url": "./StructureDefinition-DecisionSupportLogic.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-UserScenarioSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-UserScenarioSource.schema.json",
              "title": "User Scenario Source",
              "description": "Source reference for User Scenario - exactly one of the following must be provided:\n- url (url data type): URL to retrieve UserScenario definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the UserScenario definition\n- instance: Inline UserScenario instance data",
              "url": "./StructureDefinition-UserScenarioSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-HealthInterventionsSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-HealthInterventionsSource.schema.json",
              "title": "Health Interventions Source",
              "description": "Source reference for Health Interventions - exactly one of the following must be provided:\n- url (url data type): URL to retrieve HealthInterventions definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the HealthInterventions definition\n- instance: Inline HealthInterventions instance data",
              "url": "./StructureDefinition-HealthInterventionsSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-UserScenario.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-UserScenario.schema.json",
              "title": "User Scenario (DAK)",
              "description": "Logical Model for representing User Scenarios from a DAK. Narratives that describe how the different personas may interact with each other.",
              "url": "./StructureDefinition-UserScenario.schema.json",
              "propertyCount": 5
            },
            {
              "filename": "StructureDefinition-ProgramIndicatorSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-ProgramIndicatorSource.schema.json",
              "title": "Program Indicator Source",
              "description": "Source reference for Program Indicator - exactly one of the following must be provided:\n- url (url data type): URL to retrieve ProgramIndicator definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the ProgramIndicator definition\n- instance: Inline ProgramIndicator instance data",
              "url": "./StructureDefinition-ProgramIndicatorSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-FHIRSchemaBase.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-FHIRSchemaBase.schema.json",
              "title": "FHIR Schema Base (SMART Guidelines)",
              "description": "Base logical model providing the common schema metadata interface inherited by all SMART Guidelines logical models. Every SMART Guidelines logical model schema derives from this base, which documents the shared FHIR and JSON-LD metadata properties used by the JSON Schema generation pipeline.",
              "url": "./StructureDefinition-FHIRSchemaBase.schema.json",
              "propertyCount": 5
            },
            {
              "filename": "StructureDefinition-GenericPersona.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-GenericPersona.schema.json",
              "title": "Generic Persona (DAK)",
              "description": "Logical Model for representing Generic Personas from a DAK. Depiction of the human and system actors. Human actors are end users, supervisors and related stakeholders who would be interacting with the digital system or involved in the clinical care, public health or health system pathway.",
              "url": "./StructureDefinition-GenericPersona.schema.json",
              "propertyCount": 8
            },
            {
              "filename": "StructureDefinition-FunctionalRequirement.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-FunctionalRequirement.schema.json",
              "title": "Functional Requirement (DAK)",
              "description": "Logical Model for representing functional requirement from a DAK",
              "url": "./StructureDefinition-FunctionalRequirement.schema.json",
              "propertyCount": 7
            },
            {
              "filename": "StructureDefinition-TestScenarioSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-TestScenarioSource.schema.json",
              "title": "Test Scenario Source",
              "description": "Source reference for Test Scenario - exactly one of the following must be provided:\n- url (url data type): URL to retrieve TestScenario definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the TestScenario definition\n- instance: Inline TestScenario instance data",
              "url": "./StructureDefinition-TestScenarioSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-TestScenario.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-TestScenario.schema.json",
              "title": "Test Scenario (DAK)",
              "description": "Logical Model for representing Test Scenarios from a DAK. A set of test scenarios to validate an implementation of the DAK.",
              "url": "./StructureDefinition-TestScenario.schema.json",
              "propertyCount": 3
            },
            {
              "filename": "StructureDefinition-Persona.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-Persona.schema.json",
              "title": "Persona (DAK)",
              "description": "Logical Model for representing Personas from a DAK",
              "url": "./StructureDefinition-Persona.schema.json",
              "propertyCount": 8
            },
            {
              "filename": "StructureDefinition-BusinessProcessWorkflow.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-BusinessProcessWorkflow.schema.json",
              "title": "Business Process Workflow (DAK)",
              "description": "Logical Model for representing Generic Business Processes and Workflows from a DAK. A business process is a set of related activities or tasks performed together to achieve the objectives of the health programme area.",
              "url": "./StructureDefinition-BusinessProcessWorkflow.schema.json",
              "propertyCount": 11
            },
            {
              "filename": "StructureDefinition-GenericPersonaSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-GenericPersonaSource.schema.json",
              "title": "Generic Persona Source",
              "description": "Source reference for Generic Persona - exactly one of the following must be provided:\n- url (url data type): URL to retrieve GenericPersona definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the GenericPersona definition\n- instance: Inline GenericPersona instance data",
              "url": "./StructureDefinition-GenericPersonaSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-Requirements.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-Requirements.schema.json",
              "title": "Functional and Non-Functional Requirements (DAK)",
              "description": "Logical Model for representing Functional and Non-Functional Requirements from a DAK. A high-level list of core functions and capabilities that the system must have to meet the end users' needs.",
              "url": "./StructureDefinition-Requirements.schema.json",
              "propertyCount": 8
            },
            {
              "filename": "StructureDefinition-SushiConfigLogicalModel.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-SushiConfigLogicalModel.schema.json",
              "title": "SUSHI Configuration Logical Model",
              "description": "Logical model defining the structure of sushi-config.yaml files used for FHIR Implementation Guide configuration. This model captures the essential metadata and configuration parameters needed for IG publishing.",
              "url": "./StructureDefinition-SushiConfigLogicalModel.schema.json",
              "propertyCount": 43
            },
            {
              "filename": "StructureDefinition-CoreDataElement.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-CoreDataElement.schema.json",
              "title": "Core Data Element (DAK)",
              "description": "Logical Model for representing Core Data Elements from a DAK. A core data element can be one of: a ValueSet, a CodeSystem, a ConceptMap, or a Logical Model adherent to SGLogicalModel. This is the ONE EXCEPTION to allowing FHIR R4 models into the DAK LMs.",
              "url": "./StructureDefinition-CoreDataElement.schema.json",
              "propertyCount": 7
            },
            {
              "filename": "StructureDefinition-RequirementsSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-RequirementsSource.schema.json",
              "title": "Requirements Source",
              "description": "Source reference for Requirements - exactly one of the following must be provided:\n- url (url data type): URL to retrieve Requirements definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the Requirements definition\n- instance: Inline Requirements instance data",
              "url": "./StructureDefinition-RequirementsSource.schema.json",
              "propertyCount": 4
            },
            {
              "filename": "StructureDefinition-BusinessProcessWorkflowSource.schema.json",
              "id": "http://smart.who.int/base/StructureDefinition-BusinessProcessWorkflowSource.schema.json",
              "title": "Business Process Workflow Source",
              "description": "Source reference for Business Process Workflow - exactly one of the following must be provided:\n- url (url data type): URL to retrieve BusinessProcessWorkflow definition from input/ or external source\n- canonical (canonical data type): Canonical URI pointing to the BusinessProcessWorkflow definition\n- instance: Inline BusinessProcessWorkflow instance data",
              "url": "./StructureDefinition-BusinessProcessWorkflowSource.schema.json",
              "propertyCount": 4
            }
          ]
        }
      }
    }
  }
}