{
    "additionalProperties": false,
    "description": "Context schema for OSS terraform modules, VM instances and application events",
    "properties": {
        "appGeneratedId": {
            "_format": "uuid",
            "description": "Automatically generated UUID on every application restart",
            "type": [
                "string",
                "null"
            ]
        },
        "applicationName": {
            "description": "The name of the application",
            "maxLength": 256,
            "type": "string"
        },
        "applicationVersion": {
            "description": "The version of the application e.g. 1.0.0",
            "maxLength": 256,
            "type": "string"
        },
        "autoGeneratedId": {
            "description": "ID automatically generated upon running a modules deployment script. Intended to identify each independent module, and the infrastructure it controls",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        },
        "cloud": {
            "description": "The cloud AWS or GCP, none for on-premise",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        },
        "instanceId": {
            "description": "A unique identifier for the VM instance. Unique for each instance of the app running within a module",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        },
        "moduleName": {
            "description": "The name of the terraform module",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        },
        "moduleVersion": {
            "description": "The version of the terraform module e.g. 1.0.0",
            "maxLength": 32,
            "type": [
                "string",
                "null"
            ]
        },
        "region": {
            "description": "The region the services are running in",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        },
        "userProvidedId": {
            "description": "Optional ID provided by user as an input to each component. Intended to tie events together across modules, infrastructure and apps when used consistently",
            "maxLength": 256,
            "type": [
                "string",
                "null"
            ]
        }
    },
    "self": {
        "format": "jsonschema",
        "name": "oss_context",
        "vendor": "com.snowplowanalytics.oss",
        "version": "1-0-1"
    },
    "type": "object"
}