{
  "$id": "https://oracle.com/oracle.cgiu.ua.tmf688.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "json": {
      "$ref": "#/$defs/Schemas/Event"
    }
  },
  "$defs": {
    "Schemas": {
      "Event": {
        "type": "object",
        "additionalProperties": false,
        "description": "event with common attributes.",
        "properties": {
          "correlationId": {
            "type": "string",
            "description": "The correlation id for this event."
          },
          "description": {
            "type": "string",
            "description": "An explanatory of the event."
          },
          "domain": {
            "type": "string",
            "description": "The domain of the event."
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification."
          },
          "eventTime": {
            "type": "string",
            "format": "date-time",
            "description": "Time of the event occurrence."
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification."
          },
          "priority": {
            "type": "string",
            "description": "A priority."
          },
          "timeOcurred": {
            "type": "string",
            "format": "date-time",
            "description": "The time the event occurred."
          },
          "title": {
            "type": "string",
            "description": "The title of the event."
          },
          "analyticCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/Characteristic"
            }
          },
          "event": {
            "$ref": "#/$defs/Any",
            "description": "The event linked to the involved resource object"
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/RelatedParty"
            }
          },
          "reportingSystem": {
            "$ref": "#/$defs/EntityRef",
            "description": "Reporting System described by EntityRef"
          },
          "source": {
            "$ref": "#/$defs/EntityRef",
            "description": "Source Entity described by EntityRef"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "format": "uri",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "title": "Event"
      }
    },
    "Any": {
      "type": "object",
      "additionalProperties": false,
      "title": "Any"
    },
    "Characteristic": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "value"
      ],
      "description": "Describes a given characteristic of an object or entity through a name/value pair.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the characteristic"
        },
        "name": {
          "type": "string",
          "description": "Name of the characteristic"
        },
        "valueType": {
          "type": "string",
          "description": "Data type of the value of the characteristic"
        },
        "characteristicRelationship": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CharacteristicRelationship"
          }
        },
        "value": {
          "$ref": "#/$defs/Any",
          "description": "The value of the characteristic"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class entity name"
        }
      },
      "title": "Characteristic"
    },
    "CharacteristicRelationship": {
      "type": "object",
      "additionalProperties": false,
      "description": "Another Characteristic that is related to the current Characteristic;",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the characteristic"
        },
        "relationshipType": {
          "type": "string",
          "description": "The type of relationship"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class entity name"
        }
      },
      "title": "CharacteristicRelationship"
    },
    "EntityRef": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of a related entity."
        },
        "href": {
          "type": "string",
          "description": "Reference of the related entity."
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class entity name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityRef"
    },
    "RelatedParty": {
      "type": "object",
      "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.",
      "required": [
        "@referredType",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of a related entity."
        },
        "href": {
          "type": "string",
          "description": "Reference of the related entity."
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "role": {
          "type": "string",
          "description": "Role played by the related party"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class entity name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    }
  }
}
