1 {
  2   "type": "object",
  3   "properties": {
  4     "threadDump": {
  5       "type": "object",
  6       "properties": {
  7         "processId": {
  8           "type": "string",
  9           "description": "The native process id of the Java virtual machine."
 10         },
 11         "time": {
 12           "type": "string",
 13           "description": "The time in ISO 8601 format when the thread dump was generated."
 14         },
 15         "runtimeVersion": {
 16           "type": "string",
 17           "description": "The runtime version, see java.lang.Runtime.Version"
 18         },
 19         "threadContainers": {
 20           "type": "array",
 21           "description": "The array of thread containers (thread groupings).",
 22           "items": [
 23             {
 24               "type": "object",
 25               "properties": {
 26                 "container": {
 27                   "type": "string",
 28                   "description": "The container name. The container name is unique."
 29                 },
 30                 "parent": {
 31                   "type": [
 32                     "string",
 33                     "null"
 34                   ],
 35                   "description": "The parent container name or null for the root container."
 36                 },
 37                 "owner": {
 38                   "type": [
 39                     "string",
 40                     "null"
 41                   ],
 42                   "description": "The thread identifier of the owner thread if owned."
 43                 },
 44                 "threads": {
 45                   "type": "array",
 46                   "description": "The array of threads in the thread container.",
 47                   "items": [
 48                     {
 49                       "type": "object",
 50                       "properties": {
 51                         "tid": {
 52                           "type": "string",
 53                           "description": "The thread identifier."
 54                         },
 55                         "time": {
 56                           "type": "string",
 57                           "description": "The time in ISO 8601 format that the thread was sampled."
 58                         },
 59                         "name": {
 60                           "type": "string",
 61                           "description": "The thread name."
 62                         },
 63                         "state": {
 64                           "type": "string",
 65                           "description": "The thread state (Thread::getState)."
 66                         },
 67                         "virtual" : {
 68                           "type": "boolean",
 69                           "description": "true for a virtual thread."
 70                         },
 71                         "parkBlocker": {
 72                           "type": [
 73                             "object"
 74                           ],
 75                           "properties": {
 76                             "object": {
 77                               "type": "string",
 78                               "description": "The blocker object responsible for the thread parking."
 79                             }
 80                           },
 81                           "required": [
 82                             "object"
 83                           ]
 84                         },
 85                         "blockedOn": {
 86                           "type": "string",
 87                           "description": "The object that the thread is blocked on waiting to enter/re-enter a synchronization block/method."
 88                         },
 89                         "waitingOn": {
 90                           "type": "string",
 91                           "description": "The object that the thread is waiting to be notified (Object.wait)."
 92                         },
 93                         "stack": {
 94                           "type": "array",
 95                           "description": "The thread stack. The first element is the top of the stack.",
 96                           "items": [
 97                             {
 98                               "type": "string",
 99                               "description": "A stack trace element (java.lang.StackTraceElement)."
100                             }
101                           ]
102                         },
103                         "monitorsOwned": {
104                           "type": "array",
105                           "description": "The objects for which monitors are owned by the thread.",
106                           "items": {
107                             "type": "object",
108                             "properties": {
109                               "depth": {
110                                 "type": "integer",
111                                 "description": "The stack depth at which the monitors are owned."
112                               },
113                               "locks": {
114                                 "type": "array",
115                                 "items": {
116                                   "type": [
117                                     "string",
118                                     null
119                                   ],
120                                   "description": "The object for which the monitor is owned by the thread, null if eliminated"
121                                 }
122                               }
123                             },
124                             "required": [
125                               "depth",
126                               "locks"
127                             ]
128                           }
129                         },
130                         "carrier":  {
131                           "type": "string",
132                           "description": "The thread identifier of the carrier thread if mounted."
133                         }
134                       },
135                       "required": [
136                         "tid",
137                         "time",
138                         "name",
139                         "state",
140                         "stack"
141                       ]
142                     }
143                   ]
144                 },
145                 "threadCount": {
146                   "type": "string",
147                   "description": "The number of threads in the thread container."
148                 }
149               },
150               "required": [
151                 "container",
152                 "parent",
153                 "owner",
154                 "threads"
155               ]
156             }
157           ]
158         }
159       },
160       "required": [
161         "processId",
162         "time",
163         "runtimeVersion",
164         "threadContainers"
165       ]
166     }
167   },
168   "required": [
169     "threadDump"
170   ]
171 }