-
Notifications
You must be signed in to change notification settings - Fork 0
/
events-schema.json
133 lines (132 loc) · 3.87 KB
/
events-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://github.com/ohadschn/ET4W/src/events-schema.json",
"definitions": {
"etwNativeType": {
"enum": [ "Boolean", "Char", "SByte", "Byte", "Int16", "UInt16", "Int32", "UInt32", "Int64", "UInt64", "Single", "Double", "DateTime", "String", "GUID", "IntPtr", "ByteArray" ]
},
"etwEventLevel": {
"enum": [ "Verbose", "Informational", "Warning", "Error", "Critical", "LogAlways" ]
},
"etwOpcode": {
"enum": [ "Info", "Start", "Stop", "DataCollectionStart", "DataCollectionStop", "Extension", "Reply", "Resume", "Suspend", "Send", "Receive" ]
},
"etwChannel": {
"enum": [ "Admin", "Analytic", "Debug", "None", "Operational" ]
},
"identifier": {
"type": "string",
"pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
},
"fullyQualifiedIdentifier": {
"type": "string",
"pattern": "^[a-zA-Z_](\\.?[a-zA-Z0-9_]+)*$"
},
"identifier-array": {
"type": "array",
"uniqueItems": true,
"items": { "$ref": "#/definitions/identifier" }
},
"customType": {
"type": "object",
"properties": {
"fullyQualifiedName": { "$ref": "#/definitions/fullyQualifiedIdentifier" },
"targetType": { "$ref": "#/definitions/etwNativeType" }
},
"required": [ "fullyQualifiedName", "targetType" ]
},
"customType-array": {
"type": "array",
"uniqueItems": true,
"items": { "$ref": "#/definitions/customType" }
},
"parameter": {
"type": "object",
"properties": {
"name": { "$ref": "#/definitions/identifier" }
},
"required": [ "name" ],
"oneOf": [
{
"properties": {
"type": { "$ref": "#/definitions/etwNativeType" }
},
"required": [ "type" ]
},
{
"properties": {
"customType": { "$ref": "#/definitions/fullyQualifiedIdentifier" }
},
"required": [ "customType" ]
}
]
},
"parameter-array": {
"type": "array",
"uniqueItems": true,
"items": { "$ref": "#/definitions/parameter" }
},
"commonParameter": {
"allOf": [
{
"$ref": "#/definitions/parameter"
},
{
"properties": {
"generated": { "type": "boolean" }
}
}
]
},
"commonParameter-array": {
"type": "array",
"uniqueItems": true,
"items": {"$ref": "#/definitions/commonParameter"}
},
"event": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "$ref": "#/definitions/identifier" },
"version": { "type": "integer" },
"channel": { "$ref": "#/definitions/etwChannel" },
"level": { "$ref": "#/definitions/etwEventLevel" },
"message": { "type": "string" },
"keywords": { "$ref": "#/definitions/identifier-array" },
"task": { "$ref": "#/definitions/identifier" },
"opcode": { "$ref": "#/definitions/etwOpcode" },
"parameters": { "$ref": "#/definitions/parameter-array" }
},
"required": [
"id",
"name"
]
},
"event-array": {
"type": "array",
"uniqueItems": true,
"items": { "$ref": "#/definitions/event" },
"minItems": 1
}
},
"type": "object",
"properties": {
"class": { "$ref": "#/definitions/identifier" },
"sourceName": { "type": "string" },
"tasks": { "$ref": "#/definitions/identifier-array" },
"keywords": {
"allOf": [
{ "$ref": "#/definitions/identifier-array" },
{ "maxItems": 44 }
]
},
"customTypes": { "$ref": "#/definitions/customType-array" },
"commonParameters": { "$ref": "#/definitions/commonParameter-array" },
"events": { "$ref": "#/definitions/event-array" }
},
"required": [
"class",
"sourceName",
"events"
]
}