1{ 2 "$schema": "http://json-schema.org/draft-04/schema#", 3 4 "type": "array", 5 "items": { 6 "anyOf": [ 7 { "$ref": "#/definitions/meta" }, 8 { "$ref": "#/definitions/kernel" }, 9 { "$ref": "#/definitions/job" }, 10 { "$ref": "#/definitions/process" }, 11 { "$ref": "#/definitions/thread" } 12 ] 13 }, 14 15 "definitions": { 16 "meta": { 17 "type": "object", 18 "properties": { 19 "type": { 20 "type": "string", 21 "pattern": "^__" 22 }, 23 "timestamp": { 24 "type": "string", 25 "format": "date-time" 26 } 27 }, 28 "required": [ "type" ] 29 }, 30 "_node": { 31 "type": "object", 32 "properties": { 33 "id": { "type": "string" }, 34 "type": { "type": "string" }, 35 "parent": { "type": "string" }, 36 "name": { "type": "string" } 37 }, 38 "required": [ "id", "type", "parent", "name" ] 39 }, 40 "kernel": { 41 "allOf": [ 42 { "$ref": "#/definitions/_node" }, 43 { 44 "properties": { 45 "id": { "type": "string", "pattern": "^kernel/.*" }, 46 "type": { "type": "string", "pattern": "^kernel$" }, 47 "size_bytes": { "type": "integer" } 48 }, 49 "required": [ "size_bytes" ] 50 } 51 ] 52 }, 53 "_task": { 54 "allOf": [ 55 { "$ref": "#/definitions/_node" }, 56 { 57 "properties": { 58 "koid": { "type": "integer" } 59 }, 60 "required": [ "koid" ] 61 } 62 ] 63 }, 64 "job": { 65 "allOf": [ 66 { "$ref": "#/definitions/_task" }, 67 { 68 "properties": { 69 "id": { "type": "string", "pattern": "^j/.*" }, 70 "type": { "type": "string", "pattern": "^j$" } 71 } 72 } 73 ] 74 }, 75 "process": { 76 "allOf": [ 77 { "$ref": "#/definitions/_task" }, 78 { 79 "properties": { 80 "id": { "type": "string", "pattern": "^p/.*" }, 81 "type": { "type": "string", "pattern": "^p$" }, 82 "private_bytes": { "type": "integer" }, 83 "shared_bytes": { "type": "integer" }, 84 "pss_bytes": { "type": "integer" }, 85 "vmos": { 86 "type": "array", 87 "items": { "$ref": "#/definitions/vmo" } 88 }, 89 "vmo_refs": { 90 "type": "array", 91 "items": { "$ref": "#/definitions/vmo_ref" } 92 }, 93 "handle_stats": { 94 "type": "object", 95 "patternProperties": { 96 "[a-zA-Z0-9_]+": { 97 "type": "integer" 98 } 99 } 100 } 101 }, 102 "required": [ "private_bytes", "shared_bytes", "pss_bytes" ] 103 } 104 ] 105 }, 106 "thread": { 107 "allOf": [ 108 { "$ref": "#/definitions/_task" }, 109 { 110 "properties": { 111 "id": { "type": "string", "pattern": "^t/.*" }, 112 "type": { "type": "string", "pattern": "^t$" }, 113 "state": { "type": "string" } 114 }, 115 "required": [ "state" ] 116 } 117 ] 118 }, 119 "vmo": { 120 "type": "object", 121 "properties": { 122 "koid": { "type": "integer" }, 123 "name": { "type": "string" }, 124 "size_bytes": { "type": "integer" }, 125 "parent_koid": { "type": "integer" }, 126 "num_children": { "type": "integer" }, 127 "num_mappings": { "type": "integer" }, 128 "share_count": { "type": "integer" }, 129 "committed_bytes": { "type": "integer" } 130 }, 131 "required": [ "koid" ] 132 }, 133 "vmo_ref": { 134 "type": "object", 135 "properties": { 136 "vmo_koid": { "type": "integer" }, 137 "via": { 138 "type": "array", 139 "items": { "type": "string" } 140 }, 141 "handle_rights": { 142 "type": "array", 143 "items": { "type": "string" } 144 } 145 }, 146 "required": [ "vmo_koid", "via" ] 147 } 148 } 149} 150