github.com/kardianos/nomad@v0.1.3-0.20151022182107-b13df73ee850/website/source/docs/http/job.html.md (about) 1 --- 2 layout: "http" 3 page_title: "HTTP API: /v1/job" 4 sidebar_current: "docs-http-job-" 5 description: |- 6 The '/1/job' endpoint is used for CRUD on a single job. 7 --- 8 9 # /v1/job/\<ID\> 10 11 The `job` endpoint is used for CRUD on a single job. By default, the agent's local 12 region is used; another region can be specified using the `?region=` query parameter. 13 14 ## GET 15 16 <dl> 17 <dt>Description</dt> 18 <dd> 19 Query a single job for its specification and status. 20 </dd> 21 22 <dt>Method</dt> 23 <dd>GET</dd> 24 25 <dt>URL</dt> 26 <dd>`/v1/job/<id>`</dd> 27 28 <dt>Parameters</dt> 29 <dd> 30 None 31 </dd> 32 33 <dt>Returns</dt> 34 <dd> 35 36 ```javascript 37 { 38 "Region": "global", 39 "ID": "binstore-storagelocker", 40 "Name": "binstore-storagelocker", 41 "Type": "service", 42 "Priority": 50, 43 "AllAtOnce": false, 44 "Datacenters": [ 45 "us2", 46 "eu1" 47 ], 48 "Constraints": [ 49 { 50 "Hard": true, 51 "LTarget": "kernel.os", 52 "RTarget": "windows", 53 "Operand": "=", 54 "Weight": 0 55 } 56 ], 57 "TaskGroups": [ 58 { 59 "Name": "binsl", 60 "Count": 5, 61 "Constraints": [ 62 { 63 "Hard": true, 64 "LTarget": "kernel.os", 65 "RTarget": "linux", 66 "Operand": "=", 67 "Weight": 0 68 } 69 ], 70 "Tasks": [ 71 { 72 "Name": "binstore", 73 "Driver": "docker", 74 "Config": { 75 "image": "hashicorp/binstore" 76 }, 77 "Constraints": null, 78 "Resources": { 79 "CPU": 500, 80 "MemoryMB": 0, 81 "DiskMB": 0, 82 "IOPS": 0, 83 "Networks": [ 84 { 85 "Device": "", 86 "CIDR": "", 87 "IP": "", 88 "MBits": 100, 89 "ReservedPorts": null, 90 "DynamicPorts": 0 91 } 92 ] 93 }, 94 "Meta": null 95 }, 96 { 97 "Name": "storagelocker", 98 "Driver": "java", 99 "Config": { 100 "image": "hashicorp/storagelocker" 101 }, 102 "Constraints": [ 103 { 104 "Hard": true, 105 "LTarget": "kernel.arch", 106 "RTarget": "amd64", 107 "Operand": "=", 108 "Weight": 0 109 } 110 ], 111 "Resources": { 112 "CPU": 500, 113 "MemoryMB": 0, 114 "DiskMB": 0, 115 "IOPS": 0, 116 "Networks": null 117 }, 118 "Meta": null 119 } 120 ], 121 "Meta": { 122 "elb_checks": "3", 123 "elb_interval": "10", 124 "elb_mode": "tcp" 125 } 126 } 127 ], 128 "Update": { 129 "Stagger": 0, 130 "MaxParallel": 0 131 }, 132 "Meta": { 133 "foo": "bar" 134 }, 135 "Status": "", 136 "StatusDescription": "", 137 "CreateIndex": 14, 138 "ModifyIndex": 14 139 } 140 ``` 141 142 </dd> 143 </dl> 144 145 ## PUT / POST 146 147 <dl> 148 <dt>Description</dt> 149 <dd> 150 Registers a new job or updates an existing job 151 </dd> 152 153 <dt>Method</dt> 154 <dd>PUT or POST</dd> 155 156 <dt>URL</dt> 157 <dd>`/v1/job/<ID>`</dd> 158 159 <dt>Parameters</dt> 160 <dd> 161 <ul> 162 <li> 163 <span class="param">Job</span> 164 <span class="param-flags">required</span> 165 The JSON definition of the job. The general structure is given 166 by the [job specification](/docs/jobspec/index.html), and matches 167 the return response of GET. 168 </li> 169 </ul> 170 </dd> 171 172 <dt>Returns</dt> 173 <dd> 174 175 ```javascript 176 { 177 "EvalID": "d092fdc0-e1fd-2536-67d8-43af8ca798ac", 178 "EvalCreateIndex": 35, 179 "JobModifyIndex": 34, 180 } 181 ``` 182 183 </dd> 184 </dl> 185 186 ## DELETE 187 188 <dl> 189 <dt>Description</dt> 190 <dd> 191 Deregisters a job, and stops all allocations part of it. 192 </dd> 193 194 <dt>Method</dt> 195 <dd>DELETE</dd> 196 197 <dt>URL</dt> 198 <dd>`/v1/job/<ID>`</dd> 199 200 <dt>Parameters</dt> 201 <dd> 202 None 203 </dd> 204 205 <dt>Returns</dt> 206 <dd> 207 208 ```javascript 209 { 210 "EvalID": "d092fdc0-e1fd-2536-67d8-43af8ca798ac", 211 "EvalCreateIndex": 35, 212 "JobModifyIndex": 34, 213 } 214 ``` 215 216 </dd> 217 </dl> 218 219 # /v1/job/\<ID\>/allocations 220 ## GET 221 222 <dl> 223 <dt>Description</dt> 224 <dd> 225 Query the allocations belonging to a single job. 226 </dd> 227 228 <dt>Method</dt> 229 <dd>GET</dd> 230 231 <dt>URL</dt> 232 <dd>`/v1/job/<id>/allocations`</dd> 233 234 <dt>Parameters</dt> 235 <dd> 236 None 237 </dd> 238 239 <dt>Returns</dt> 240 <dd> 241 242 ```javascript 243 [ 244 { 245 "ID": "3575ba9d-7a12-0c96-7b28-add168c67984", 246 "EvalID": "151accaa-1ac6-90fe-d427-313e70ccbb88", 247 "Name": "binstore-storagelocker.binsl[0]", 248 "NodeID": "a703c3ca-5ff8-11e5-9213-970ee8879d1b", 249 "JobID": "binstore-storagelocker", 250 "TaskGroup": "binsl", 251 "DesiredStatus": "run", 252 "DesiredDescription": "", 253 "ClientStatus": "running", 254 "ClientDescription": "", 255 "CreateIndex": 16, 256 "ModifyIndex": 16 257 }, 258 ... 259 ] 260 ``` 261 262 </dd> 263 </dl> 264 265 # /v1/job/\<ID\>/evaluate 266 ## PUT / POST 267 268 <dl> 269 <dt>Description</dt> 270 <dd> 271 Creates a new evaluation for the given job. This can be used to force 272 run the scheduling logic if necessary. 273 </dd> 274 275 <dt>Method</dt> 276 <dd>PUT or POST</dd> 277 278 <dt>URL</dt> 279 <dd>`/v1/job/<ID>/evaluate`</dd> 280 281 <dt>Parameters</dt> 282 <dd> 283 None 284 </dd> 285 286 <dt>Returns</dt> 287 <dd> 288 289 ```javascript 290 { 291 "EvalID": "d092fdc0-e1fd-2536-67d8-43af8ca798ac", 292 "EvalCreateIndex": 35, 293 "JobModifyIndex": 34, 294 } 295 ``` 296 297 </dd> 298 </dl> 299 300 # /v1/job/\<ID\>/evaluations 301 ## GET 302 303 <dl> 304 <dt>Description</dt> 305 <dd> 306 Query the evaluations belonging to a single job. 307 </dd> 308 309 <dt>Method</dt> 310 <dd>GET</dd> 311 312 <dt>URL</dt> 313 <dd>`/v1/job/<id>/evaluations`</dd> 314 315 <dt>Parameters</dt> 316 <dd> 317 None 318 </dd> 319 320 <dt>Returns</dt> 321 <dd> 322 323 ```javascript 324 [ 325 { 326 "ID": "151accaa-1ac6-90fe-d427-313e70ccbb88", 327 "Priority": 50, 328 "Type": "service", 329 "TriggeredBy": "job-register", 330 "JobID": "binstore-storagelocker", 331 "JobModifyIndex": 14, 332 "NodeID": "", 333 "NodeModifyIndex": 0, 334 "Status": "complete", 335 "StatusDescription": "", 336 "Wait": 0, 337 "NextEval": "", 338 "PreviousEval": "", 339 "CreateIndex": 15, 340 "ModifyIndex": 17 341 }, 342 ... 343 ] 344 ``` 345 346 </dd> 347 </dl> 348