{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://hl7.erp.uno/priv/schema/TriggerDefinition.schema.json",
  "$ref": "#/definitions/TriggerDefinition",
  "description": "see https://hl7.org/fhir/R5/json.html for information about the FHIR Json Schemas",
  "definitions": {
    "TriggerDefinition": {
      "allOf": [
        {
          "$ref": "Element.schema.json#/definitions/Element"
        },
        {
          "description": "A description of a triggering event.",
          "properties": {
            "type": {
              "description": "The type of triggering event.",
              "enum": [
                "named-event",
                "periodic",
                "data-added",
                "data-modified",
                "data-removed",
                "data-accessed",
                "data-access-ended"
              ],
              "type": "string"
            },
            "_type": {
              "description": "Extensions for type",
              "$ref": "Element.schema.json#/definitions/Element"
            },
            "eventName": {
              "description": "The name of the event (if this is a named-event trigger).",
              "type": "string"
            },
            "_eventName": {
              "description": "Extensions for eventName",
              "$ref": "Element.schema.json#/definitions/Element"
            },
            "eventTimingTiming": {
              "description": "The timing of the event (if this is a period trigger).",
              "$ref": "Timing.schema.json#/definitions/Timing"
            },
            "eventTimingReference": {
              "description": "The timing of the event (if this is a period trigger).",
              "$ref": "Reference.schema.json#/definitions/Reference"
            },
            "eventTimingDate": {
              "description": "The timing of the event (if this is a period trigger).",
              "pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)?",
              "type": "string"
            },
            "_eventTimingDate": {
              "description": "Extensions for eventTimingDate",
              "$ref": "Element.schema.json#/definitions/Element"
            },
            "eventTimingDateTime": {
              "description": "The timing of the event (if this is a period trigger).",
              "pattern": "-?([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?",
              "type": "string"
            },
            "_eventTimingDateTime": {
              "description": "Extensions for eventTimingDateTime",
              "$ref": "Element.schema.json#/definitions/Element"
            },
            "eventData": {
              "description": "The triggering data of the event (if this is a data trigger).",
              "$ref": "DataRequirement.schema.json#/definitions/DataRequirement"
            }
          }
        }
      ]
    }
  }
}