{ "$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#", "description": "Schema for a client-generated user session", "self": { "vendor": "com.snowplowanalytics.snowplow", "name": "client_session", "format": "jsonschema", "version": "1-0-1" }, "type": "object", "properties": { "userId": { "type": "string", "pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$|^[0-9a-f]{16}$", "maxLength": 36, "description": "An identifier for the user of the session" }, "sessionId": { "type": "string", "format": "uuid", "description": "An identifier for the session" }, "sessionIndex": { "type": "integer", "minimum": 0, "maximum": 2147483647, "description": "The index of the current session for this user" }, "previousSessionId": { "type": [ "null", "string" ], "format": "uuid", "description": "The previous session identifier for this user" }, "storageMechanism": { "type": "string", "enum": [ "SQLITE", "COOKIE_1", "COOKIE_3", "LOCAL_STORAGE", "FLASH_LSO" ], "description": "The mechanism that the session information has been stored on the device" }, "firstEventId": { "type": [ "null", "string" ], "format": "uuid", "description": "The optional identifier of the first event id for this session" } }, "required": [ "userId", "sessionId", "sessionIndex", "previousSessionId", "storageMechanism" ], "additionalProperties": false }