{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--system.schema.json",
  "description": "Schema for system entities",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/DataDog/schema/main/service-catalog/v3/system.schema.json",
    "sourceSha256": "7aa8dfff35bf8f7f5ecd576fa8f29c78ad9a4f608314209dfc8c93245530d8fb"
  },
  "allOf": [
    {
      "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--entity.schema.json"
    },
    {
      "type": "object",
      "properties": {
        "apiVersion": {
          "enum": [
            "v3"
          ]
        },
        "kind": {
          "enum": [
            "system"
          ]
        },
        "spec": {
          "type": "object",
          "properties": {
            "lifecycle": {
              "type": "string",
              "description": "The lifecycle state of the system",
              "examples": [
                "experimental",
                "production",
                "deprecated"
              ],
              "minLength": 1
            },
            "tier": {
              "type": "string",
              "description": "The importance of the system",
              "examples": [
                "1",
                "High"
              ],
              "minLength": 1
            },
            "type": {
              "description": "The type of system",
              "examples": [
                "public-web",
                "mobile",
                "internal",
                "shopping-cart"
              ],
              "type": "string"
            },
            "components": {
              "description": "A list of components belongs to the system.",
              "examples": [
                "service:myapp",
                "queue:myqueue",
                "datastore:mydatastore",
                "library:mylibrary"
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "componentOf": {
              "description": "A list of components the system is a part of",
              "examples": [
                "system:my-example-system"
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "metadata": {
          "type": "object"
        },
        "extensions": {
          "type": "object"
        },
        "integrations": {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--integrations.schema.json"
        },
        "datadog": {
          "type": "object",
          "description": "Datadog product integrations for the system entity",
          "properties": {
            "pipelines": {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--datadog_pipelines.schema.json"
            },
            "events": {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--datadog_events.schema.json"
            },
            "logs": {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--datadog_logs.schema.json"
            },
            "codeLocations": {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/datadog-software-catalog/_shared/latest--datadog_code_locations.schema.json"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  ]
}
