open-nomad/website/pages/api-docs/search.mdx

110 lines
2.5 KiB
Plaintext
Raw Normal View History

2017-08-24 22:33:28 +00:00
---
layout: api
page_title: Search - HTTP API
2020-02-06 23:45:31 +00:00
sidebar_title: Search
description: The /search endpoint is used to search for Nomad objects
2017-08-24 22:33:28 +00:00
---
# Search HTTP API
The `/search` endpoint returns matches for a given prefix and context, where a
2017-10-16 18:17:04 +00:00
context can be jobs, allocations, evaluations, nodes, or deployments. When using
Nomad Enterprise, the allowed contexts include quotas and namespaces.
2017-08-24 22:33:28 +00:00
Additionally, a prefix can be searched for within every context.
2020-02-06 23:45:31 +00:00
| Method | Path | Produces |
| ------ | ------------ | ------------------ |
| `POST` | `/v1/search` | `application/json` |
2017-08-24 22:33:28 +00:00
The table below shows this endpoint's support for
2020-02-06 23:45:31 +00:00
[blocking queries](/api#blocking-queries) and
[required ACLs](/api#acls).
2017-08-24 22:33:28 +00:00
2017-10-10 22:04:23 +00:00
| Blocking Queries | ACL Required |
| ---------------- | -------------------------------- |
| `NO` | `node:read, namespace:read-jobs` |
When ACLs are enabled, requests must have a token valid for `node:read` or
`namespace:read-jobs` roles. If the token is only valid for `node:read`, then
job related results will not be returned. If the token is only valid for
`namespace:read-jobs`, then node results will not be returned.
2017-08-24 22:33:28 +00:00
### Parameters
- `Prefix` `(string: <required>)` - Specifies the identifier against which
2017-08-24 22:33:28 +00:00
matches will be found. For example, if the given prefix were "a", potential
matches might be "abcd", or "aabb".
- `Context` `(string: <required>)` - Defines the scope in which a search for a
prefix operates. Contexts can be: "jobs", "evals", "allocs", "nodes",
2017-08-26 00:04:23 +00:00
"deployment" or "all", where "all" means every context will be searched.
2017-08-24 22:33:28 +00:00
### Sample Payload (for a specific context)
```javascript
{
"Prefix": "abc",
"Context": "evals"
}
```
### Sample Request
2020-02-06 23:45:31 +00:00
```shell
2017-08-24 22:33:28 +00:00
$ curl \
--request POST \
--data @payload.json \
https://localhost:4646/v1/search
2017-08-24 22:33:28 +00:00
```
### Sample Response
```json
2020-02-06 23:45:31 +00:00
{
"Matches": {
"evals": ["abc2fdc0-e1fd-2536-67d8-43af8ca798ac"]
2017-08-24 22:33:28 +00:00
},
"Truncations": {
"evals": "false"
}
}
```
### Sample Payload (for all contexts)
```javascript
{
"Prefix": "abc",
2017-08-25 14:08:22 +00:00
"Context": ""
2017-08-24 22:33:28 +00:00
}
```
### Sample Request
2020-02-06 23:45:31 +00:00
```shell
2017-08-24 22:33:28 +00:00
$ curl \
--request POST \
--data @payload.json \
https://localhost:4646/v1/search
2017-08-24 22:33:28 +00:00
```
### Sample Response
```json
2020-02-06 23:45:31 +00:00
{
"Matches": {
2017-08-24 22:33:28 +00:00
"allocs": [],
"deployment": [],
2020-02-06 23:45:31 +00:00
"evals": ["abc2fdc0-e1fd-2536-67d8-43af8ca798ac"],
"jobs": ["abcde"],
2017-08-24 22:33:28 +00:00
"nodes": []
},
"Truncations": {
"allocs": "false",
"deployment": "false",
"evals": "false",
"jobs": "false",
"nodes": "false"
}
}
```