diff --git a/src/core_plugins/console/api_server/es_6_0/query/dsl.js b/src/core_plugins/console/api_server/es_6_0/query/dsl.js
index 150234950f4a..4a49ed0375f7 100644
--- a/src/core_plugins/console/api_server/es_6_0/query/dsl.js
+++ b/src/core_plugins/console/api_server/es_6_0/query/dsl.js
@@ -386,7 +386,9 @@ export function queryDsl(api) {
_scope: '',
query: {},
},
- match_all: {},
+ match_all: {
+ boost: 1,
+ },
more_like_this: {
__template: {
fields: ['FIELD'],
diff --git a/src/core_plugins/console/public/index.html b/src/core_plugins/console/public/index.html
index aa2ff9d2b2c2..31b02421a40d 100644
--- a/src/core_plugins/console/public/index.html
+++ b/src/core_plugins/console/public/index.html
@@ -16,6 +16,7 @@
id="consoleRequestOptions"
class="editor_action"
dropdown-toggle
+ ng-click="getDocumentation()"
aria-label="Request options"
>
@@ -29,6 +30,9 @@
+
+
+
diff --git a/src/core_plugins/console/public/src/app.js b/src/core_plugins/console/public/src/app.js
index 840944a0ccb0..26d0b18bb090 100644
--- a/src/core_plugins/console/public/src/app.js
+++ b/src/core_plugins/console/public/src/app.js
@@ -33,6 +33,27 @@ export default function init(input, output, sourceLocation = 'stored') {
output.update('');
}
+ function setupAutosave() {
+ let timer;
+ const saveDelay = 500;
+
+ input.getSession().on('change', function onChange() {
+ if (timer) {
+ timer = clearTimeout(timer);
+ }
+ timer = setTimeout(saveCurrentState, saveDelay);
+ });
+ }
+
+ function saveCurrentState() {
+ try {
+ const content = input.getValue();
+ history.updateCurrentState(content);
+ }
+ catch (e) {
+ console.log('Ignoring saving error: ' + e);
+ }
+ }
function loadSavedState() {
const previousSaveState = history.getSavedEditorState();
@@ -71,28 +92,6 @@ export default function init(input, output, sourceLocation = 'stored') {
input.moveToNextRequestEdge(true);
}
- function setupAutosave() {
- let timer;
- const saveDelay = 500;
-
- input.getSession().on('change', function onChange() {
- if (timer) {
- timer = clearTimeout(timer);
- }
- timer = setTimeout(saveCurrentState, saveDelay);
- });
- }
-
- function saveCurrentState() {
- try {
- const content = input.getValue();
- history.updateCurrentState(content);
- }
- catch (e) {
- console.log('Ignoring saving error: ' + e);
- }
- }
-
// stupid simple restore function, called when the user
// chooses to restore a request from the history
// PREVENTS history from needing to know about the input
@@ -130,8 +129,7 @@ export default function init(input, output, sourceLocation = 'stored') {
input.moveCursorTo(pos.row + prefix.length, 0);
input.focus();
};
-
- loadSavedState();
setupAutosave();
+ loadSavedState();
mappings.startRetrievingAutoCompleteInfo();
}
diff --git a/src/core_plugins/console/public/src/autocomplete.js b/src/core_plugins/console/public/src/autocomplete.js
index eb9838dbf821..2f3b43163295 100644
--- a/src/core_plugins/console/public/src/autocomplete.js
+++ b/src/core_plugins/console/public/src/autocomplete.js
@@ -34,6 +34,272 @@ const AceRange = ace.acequire('ace/range').Range;
let LAST_EVALUATED_TOKEN = null;
+function isUrlParamsToken(token) {
+ switch ((token || {}).type) {
+ case 'url.param':
+ case 'url.equal':
+ case 'url.value':
+ case 'url.questionmark':
+ case 'url.amp':
+ return true;
+ default:
+ return false;
+ }
+}
+function getCurrentMethodAndTokenPaths(editor, pos, forceEndOfUrl) {
+ const tokenIter = editor.iterForPosition(pos.row, pos.column);
+ const startPos = pos;
+ let bodyTokenPath = [];
+ const ret = {};
+
+ const STATES = {
+ looking_for_key: 0, // looking for a key but without jumping over anything but white space and colon.
+ looking_for_scope_start: 1, // skip everything until scope start
+ start: 3
+ };
+ let state = STATES.start;
+
+ // initialization problems -
+ let t = tokenIter.getCurrentToken();
+ if (t) {
+ if (startPos.column === 0) {
+ // if we are at the beginning of the line, the current token is the one after cursor, not before which
+ // deviates from the standard.
+ t = tokenIter.stepBackward();
+ state = STATES.looking_for_scope_start;
+ }
+ }
+ else {
+ if (startPos.column === 0) {
+ // empty lines do no have tokens, move one back
+ t = tokenIter.stepBackward();
+ state = STATES.start;
+ }
+ }
+
+ let walkedSomeBody = false;
+
+ // climb one scope at a time and get the scope key
+ for (; t && t.type.indexOf('url') === -1 && t.type !== 'method'; t = tokenIter.stepBackward()) {
+
+ if (t.type !== 'whitespace') {
+ walkedSomeBody = true;
+ } // marks we saw something
+
+ switch (t.type) {
+ case 'variable':
+ if (state === STATES.looking_for_key) {
+ bodyTokenPath.unshift(t.value.trim().replace(/"/g, ''));
+ }
+ state = STATES.looking_for_scope_start; // skip everything until the beginning of this scope
+ break;
+
+ case 'paren.lparen':
+ bodyTokenPath.unshift(t.value);
+ if (state === STATES.looking_for_scope_start) {
+ // found it. go look for the relevant key
+ state = STATES.looking_for_key;
+ }
+ break;
+ case 'paren.rparen':
+ // reset he search for key
+ state = STATES.looking_for_scope_start;
+ // and ignore this sub scope..
+ let parenCount = 1;
+ t = tokenIter.stepBackward();
+ while (t && parenCount > 0) {
+ switch (t.type) {
+ case 'paren.lparen':
+ parenCount--;
+ break;
+ case 'paren.rparen':
+ parenCount++;
+ break;
+ }
+ if (parenCount > 0) {
+ t = tokenIter.stepBackward();
+ }
+ }
+ if (!t) // oops we run out.. we don't know what's up return null;
+ {
+ return {};
+ }
+ continue;
+ case 'punctuation.end_triple_quote':
+ // reset the search for key
+ state = STATES.looking_for_scope_start;
+ for (t = tokenIter.stepBackward(); t; t = tokenIter.stepBackward()) {
+ if (t.type === 'punctuation.start_triple_quote') {
+ t = tokenIter.stepBackward();
+ break;
+ }
+ }
+ if (!t) // oops we run out.. we don't know what's up return null;
+ {
+ return {};
+ }
+ continue;
+ case 'punctuation.start_triple_quote':
+ if (state === STATES.start) {
+ state = STATES.looking_for_key;
+ }
+ else if (state === STATES.looking_for_key) {
+ state = STATES.looking_for_scope_start;
+ }
+ bodyTokenPath.unshift('"""');
+ continue;
+ case 'string':
+ case 'constant.numeric':
+ case 'constant.language.boolean':
+ case 'text':
+ if (state === STATES.start) {
+ state = STATES.looking_for_key;
+ }
+ else if (state === STATES.looking_for_key) {
+ state = STATES.looking_for_scope_start;
+ }
+
+ break;
+ case 'punctuation.comma':
+ if (state === STATES.start) {
+ state = STATES.looking_for_scope_start;
+ }
+ break;
+ case 'punctuation.colon':
+ case 'whitespace':
+ if (state === STATES.start) {
+ state = STATES.looking_for_key;
+ }
+ break; // skip white space
+
+ }
+ }
+
+ if (walkedSomeBody && (!bodyTokenPath || bodyTokenPath.length === 0)) {
+ // we had some content and still no path -> the cursor is position after a closed body -> no auto complete
+ return {};
+ }
+ ret.urlTokenPath = [];
+ if (tokenIter.getCurrentTokenRow() === startPos.row) {
+ if (t.type === 'url.part' || t.type === 'url.param' || t.type === 'url.value') {
+ // we are forcing the end of the url for the purposes of determining an endpoint
+ if (forceEndOfUrl && t.type === 'url.part') {
+ ret.urlTokenPath.push(t.value);
+ ret.urlTokenPath.push(URL_PATH_END_MARKER);
+ }
+ // we are on the same line as cursor and dealing with a url. Current token is not part of the context
+ t = tokenIter.stepBackward();
+ // This will force method parsing
+ while (t.type === 'whitespace') {
+ t = tokenIter.stepBackward();
+ }
+ }
+ bodyTokenPath = null; // no not on a body line.
+ }
+
+ ret.bodyTokenPath = bodyTokenPath;
+
+ ret.urlParamsTokenPath = null;
+ ret.requestStartRow = tokenIter.getCurrentTokenRow();
+ let curUrlPart;
+
+ while (t && isUrlParamsToken(t)) {
+ switch (t.type) {
+ case 'url.value':
+ if (Array.isArray(curUrlPart)) {
+ curUrlPart.unshift(t.value);
+ }
+ else if (curUrlPart) {
+ curUrlPart = [t.value, curUrlPart];
+ }
+ else {
+ curUrlPart = t.value;
+ }
+ break;
+ case 'url.comma':
+ if (!curUrlPart) {
+ curUrlPart = [];
+ }
+ else if (!Array.isArray(curUrlPart)) {
+ curUrlPart = [curUrlPart];
+ }
+ break;
+ case 'url.param':
+ const v = curUrlPart;
+ curUrlPart = {};
+ curUrlPart[t.value] = v;
+ break;
+ case 'url.amp':
+ case 'url.questionmark':
+ if (!ret.urlParamsTokenPath) {
+ ret.urlParamsTokenPath = [];
+ }
+ ret.urlParamsTokenPath.unshift(curUrlPart || {});
+ curUrlPart = null;
+ break;
+ }
+ t = tokenIter.stepBackward();
+ }
+
+ curUrlPart = null;
+ while (t && t.type.indexOf('url') !== -1) {
+ switch (t.type) {
+ case 'url.part':
+ if (Array.isArray(curUrlPart)) {
+ curUrlPart.unshift(t.value);
+ }
+ else if (curUrlPart) {
+ curUrlPart = [t.value, curUrlPart];
+ }
+ else {
+ curUrlPart = t.value;
+ }
+ break;
+ case 'url.comma':
+ if (!curUrlPart) {
+ curUrlPart = [];
+ }
+ else if (!Array.isArray(curUrlPart)) {
+ curUrlPart = [curUrlPart];
+ }
+ break;
+ case 'url.slash':
+ if (curUrlPart) {
+ ret.urlTokenPath.unshift(curUrlPart);
+ curUrlPart = null;
+ }
+ break;
+ }
+ t = editor.parser.prevNonEmptyToken(tokenIter);
+ }
+
+ if (curUrlPart) {
+ ret.urlTokenPath.unshift(curUrlPart);
+ }
+
+ if (!ret.bodyTokenPath && !ret.urlParamsTokenPath) {
+
+ if (ret.urlTokenPath.length > 0) {
+ // // started on the url, first token is current token
+ ret.otherTokenValues = ret.urlTokenPath[0];
+ }
+ }
+ else {
+ // mark the url as completed.
+ ret.urlTokenPath.push(URL_PATH_END_MARKER);
+ }
+
+ if (t && t.type === 'method') {
+ ret.method = t.value;
+ }
+ return ret;
+}
+export function getEndpointFromPosition(editor, pos) {
+ const context = { ...getCurrentMethodAndTokenPaths(editor, pos, true) };
+ const components = getTopLevelUrlCompleteComponents(context.method);
+ populateContext(context.urlTokenPath, context, editor, true, components);
+ return context.endpoint;
+}
export default function (editor) {
function isSeparatorToken(token) {
@@ -64,18 +330,6 @@ export default function (editor) {
}
}
- function isUrlParamsToken(token) {
- switch ((token || {}).type) {
- case 'url.param':
- case 'url.equal':
- case 'url.value':
- case 'url.questionmark':
- case 'url.amp':
- return true;
- default:
- return false;
- }
- }
function getAutoCompleteValueFromToken(token) {
switch ((token || {}).type) {
@@ -523,8 +777,9 @@ export default function (editor) {
}));
}
+
function addPathAutoCompleteSetToContext(context, pos) {
- const ret = getCurrentMethodAndTokenPaths(pos);
+ const ret = getCurrentMethodAndTokenPaths(editor, pos);
context.method = ret.method;
context.token = ret.token;
context.otherTokenValues = ret.otherTokenValues;
@@ -537,7 +792,7 @@ export default function (editor) {
}
function addUrlParamsAutoCompleteSetToContext(context, pos) {
- const ret = getCurrentMethodAndTokenPaths(pos);
+ const ret = getCurrentMethodAndTokenPaths(editor, pos);
context.method = ret.method;
context.otherTokenValues = ret.otherTokenValues;
context.urlTokenPath = ret.urlTokenPath;
@@ -572,7 +827,7 @@ export default function (editor) {
function addBodyAutoCompleteSetToContext(context, pos) {
- const ret = getCurrentMethodAndTokenPaths(pos);
+ const ret = getCurrentMethodAndTokenPaths(editor, pos);
context.method = ret.method;
context.otherTokenValues = ret.otherTokenValues;
context.urlTokenPath = ret.urlTokenPath;
@@ -606,247 +861,7 @@ export default function (editor) {
return context;
}
- function getCurrentMethodAndTokenPaths(pos) {
- const tokenIter = editor.iterForPosition(pos.row, pos.column);
- const startPos = pos;
- let bodyTokenPath = [];
- const ret = {};
- const STATES = {
- looking_for_key: 0, // looking for a key but without jumping over anything but white space and colon.
- looking_for_scope_start: 1, // skip everything until scope start
- start: 3
- };
- let state = STATES.start;
-
- // initialization problems -
- let t = tokenIter.getCurrentToken();
- if (t) {
- if (startPos.column === 0) {
- // if we are at the beginning of the line, the current token is the one after cursor, not before which
- // deviates from the standard.
- t = tokenIter.stepBackward();
- state = STATES.looking_for_scope_start;
- }
- }
- else {
- if (startPos.column === 0) {
- // empty lines do no have tokens, move one back
- t = tokenIter.stepBackward();
- state = STATES.start;
- }
- }
-
- let walkedSomeBody = false;
-
- // climb one scope at a time and get the scope key
- for (; t && t.type.indexOf('url') === -1 && t.type !== 'method'; t = tokenIter.stepBackward()) {
-
- if (t.type !== 'whitespace') {
- walkedSomeBody = true;
- } // marks we saw something
-
- switch (t.type) {
- case 'variable':
- if (state === STATES.looking_for_key) {
- bodyTokenPath.unshift(t.value.trim().replace(/"/g, ''));
- }
- state = STATES.looking_for_scope_start; // skip everything until the beginning of this scope
- break;
-
- case 'paren.lparen':
- bodyTokenPath.unshift(t.value);
- if (state === STATES.looking_for_scope_start) {
- // found it. go look for the relevant key
- state = STATES.looking_for_key;
- }
- break;
- case 'paren.rparen':
- // reset he search for key
- state = STATES.looking_for_scope_start;
- // and ignore this sub scope..
- let parenCount = 1;
- t = tokenIter.stepBackward();
- while (t && parenCount > 0) {
- switch (t.type) {
- case 'paren.lparen':
- parenCount--;
- break;
- case 'paren.rparen':
- parenCount++;
- break;
- }
- if (parenCount > 0) {
- t = tokenIter.stepBackward();
- }
- }
- if (!t) // oops we run out.. we don't know what's up return null;
- {
- return {};
- }
- continue;
- case 'punctuation.end_triple_quote':
- // reset the search for key
- state = STATES.looking_for_scope_start;
- for (t = tokenIter.stepBackward(); t; t = tokenIter.stepBackward()) {
- if (t.type === 'punctuation.start_tripple_qoute') {
- t = tokenIter.stepBackward();
- break;
- }
- }
- if (!t) // oops we run out.. we don't know what's up return null;
- {
- return {};
- }
- continue;
- case 'punctuation.start_triple_quote':
- if (state === STATES.start) {
- state = STATES.looking_for_key;
- }
- else if (state === STATES.looking_for_key) {
- state = STATES.looking_for_scope_start;
- }
- bodyTokenPath.unshift('"""');
- continue;
- case 'string':
- case 'constant.numeric':
- case 'constant.language.boolean':
- case 'text':
- if (state === STATES.start) {
- state = STATES.looking_for_key;
- }
- else if (state === STATES.looking_for_key) {
- state = STATES.looking_for_scope_start;
- }
-
- break;
- case 'punctuation.comma':
- if (state === STATES.start) {
- state = STATES.looking_for_scope_start;
- }
- break;
- case 'punctuation.colon':
- case 'whitespace':
- if (state === STATES.start) {
- state = STATES.looking_for_key;
- }
- break; // skip white space
-
- }
- }
-
- if (walkedSomeBody && (!bodyTokenPath || bodyTokenPath.length === 0)) {
- // we had some content and still no path -> the cursor is position after a closed body -> no auto complete
- return {};
- }
-
- if (tokenIter.getCurrentTokenRow() === startPos.row) {
- if (t.type === 'url.part' || t.type === 'url.param' || t.type === 'url.value') {
- // we are on the same line as cursor and dealing with a url. Current token is not part of the context
- t = tokenIter.stepBackward();
- // This will force method parsing
- while (t.type === 'whitespace') {
- t = tokenIter.stepBackward();
- }
- }
- bodyTokenPath = null; // no not on a body line.
- }
-
- ret.bodyTokenPath = bodyTokenPath;
- ret.urlTokenPath = [];
- ret.urlParamsTokenPath = null;
- ret.requestStartRow = tokenIter.getCurrentTokenRow();
- let curUrlPart;
-
- while (t && isUrlParamsToken(t)) {
- switch (t.type) {
- case 'url.value':
- if (Array.isArray(curUrlPart)) {
- curUrlPart.unshift(t.value);
- }
- else if (curUrlPart) {
- curUrlPart = [t.value, curUrlPart];
- }
- else {
- curUrlPart = t.value;
- }
- break;
- case 'url.comma':
- if (!curUrlPart) {
- curUrlPart = [];
- }
- else if (!Array.isArray(curUrlPart)) {
- curUrlPart = [curUrlPart];
- }
- break;
- case 'url.param':
- const v = curUrlPart;
- curUrlPart = {};
- curUrlPart[t.value] = v;
- break;
- case 'url.amp':
- case 'url.questionmark':
- if (!ret.urlParamsTokenPath) {
- ret.urlParamsTokenPath = [];
- }
- ret.urlParamsTokenPath.unshift(curUrlPart || {});
- curUrlPart = null;
- break;
- }
- t = tokenIter.stepBackward();
- }
-
- curUrlPart = null;
- while (t && t.type.indexOf('url') !== -1) {
- switch (t.type) {
- case 'url.part':
- if (Array.isArray(curUrlPart)) {
- curUrlPart.unshift(t.value);
- }
- else if (curUrlPart) {
- curUrlPart = [t.value, curUrlPart];
- }
- else {
- curUrlPart = t.value;
- }
- break;
- case 'url.comma':
- if (!curUrlPart) {
- curUrlPart = [];
- }
- else if (!Array.isArray(curUrlPart)) {
- curUrlPart = [curUrlPart];
- }
- break;
- case 'url.slash':
- ret.urlTokenPath.unshift(curUrlPart);
- curUrlPart = null;
- break;
- }
- t = editor.parser.prevNonEmptyToken(tokenIter);
- }
-
- if (curUrlPart) {
- ret.urlTokenPath.unshift(curUrlPart);
- }
-
- if (!ret.bodyTokenPath && !ret.urlParamsTokenPath) {
-
- if (ret.urlTokenPath.length > 0) {
- // started on the url, first token is current token
- ret.otherTokenValues = ret.urlTokenPath.splice(-1)[0];
- }
- }
- else {
- // mark the url as completed.
- ret.urlTokenPath.push(URL_PATH_END_MARKER);
- }
-
- if (t && t.type === 'method') {
- ret.method = t.value;
- }
- return ret;
- }
const evaluateCurrentTokenAfterAChange = _.debounce(function evaluateCurrentTokenAfterAChange(pos) {
const session = editor.getSession();
@@ -942,7 +957,7 @@ export default function (editor) {
context: context,
completer: {
insertMatch: function () {
- applyTerm(term);
+ return applyTerm(term);
}
}
});
@@ -1047,6 +1062,7 @@ export default function (editor) {
editor.__ace.completer = aceAutoCompleteInstance;
return {
+
_test: {
getCompletions: getCompletions,
addReplacementInfoToContext: addReplacementInfoToContext,
diff --git a/src/core_plugins/console/public/src/controllers/sense_controller.js b/src/core_plugins/console/public/src/controllers/sense_controller.js
index 228a508de2ca..1d5494d18bc5 100644
--- a/src/core_plugins/console/public/src/controllers/sense_controller.js
+++ b/src/core_plugins/console/public/src/controllers/sense_controller.js
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
import 'ui/doc_title';
import { useResizeChecker } from '../sense_editor_resize';
import $ from 'jquery';
@@ -24,6 +23,8 @@ import { initializeInput } from '../input';
import { initializeOutput } from '../output';
import init from '../app';
import { SenseTopNavController } from './sense_top_nav_controller';
+import { getEndpointFromPosition } from '../autocomplete';
+import { DOC_LINK_VERSION } from 'ui/documentation_links';
const module = require('ui/modules').get('app/sense');
@@ -42,12 +43,42 @@ module.controller('SenseController', function SenseController(Private, $scope, $
// and then initialize this app
let input;
let output;
- $timeout(() => {
+ $timeout(async () => {
output = initializeOutput($('#output'));
- input = initializeInput($('#editor'), $('#editor_actions'), $('#copy_as_curl'), output);
+ input = initializeInput($('#editor'), $('#editor_actions'), $('#copy_as_curl'), output, $scope.openDocumentation);
init(input, output, $location.search().load_from);
kbnUiAceKeyboardModeService.initialize($scope, $('#editor'));
+ const session = input.getSession();
+ session.getSelection().on('changeCursor', () => {
+ $scope.getDocumentation();
+ });
+ $scope.getDocumentation();
});
+ $scope.getDocumentation = () => {
+ input.getRequestsInRange(function (requests) {
+ if (!requests || requests.length === 0) {
+ $scope.documentation = null;
+ $scope.$apply();
+ return;
+ }
+ const position = requests[0].range.end;
+ position.column = position.column - 1;
+ const endpoint = getEndpointFromPosition(input, position);
+ if (endpoint && endpoint.documentation) {
+ $scope.documentation = endpoint.documentation.replace('master', DOC_LINK_VERSION);
+ $scope.$apply();
+ } else {
+ $scope.documentation = null;
+ $scope.$apply();
+ }
+ });
+ };
+ $scope.openDocumentation = () => {
+ if (!$scope.documentation) {
+ return;
+ }
+ window.open($scope.documentation, '_blank');
+ };
$scope.sendSelected = () => {
input.focus();
diff --git a/src/core_plugins/console/public/src/directives/help.html b/src/core_plugins/console/public/src/directives/help.html
index e3d07e999045..51d7e4761c29 100644
--- a/src/core_plugins/console/public/src/directives/help.html
+++ b/src/core_plugins/console/public/src/directives/help.html
@@ -16,6 +16,8 @@
- Ctrl/Cmd + I
- Auto indent current request
+ - Ctrl/Cmd + /
+ - Open documentation for current request
- Ctrl + Space
- Open Auto complete (even if not typing)
- Ctrl/Cmd + Enter
diff --git a/src/core_plugins/console/public/src/input.js b/src/core_plugins/console/public/src/input.js
index 6f335b359114..3adddcd7b41f 100644
--- a/src/core_plugins/console/public/src/input.js
+++ b/src/core_plugins/console/public/src/input.js
@@ -20,7 +20,7 @@
const $ = require('jquery');
require('brace');
require('brace/ext/searchbox');
-const Autocomplete = require('./autocomplete');
+import Autocomplete from './autocomplete';
const SenseEditor = require('./sense_editor/editor');
const settings = require('./settings');
const utils = require('./utils');
@@ -29,7 +29,7 @@ const history = require('./history');
import { uiModules } from 'ui/modules';
let input;
-export function initializeInput($el, $actionsEl, $copyAsCurlEl, output) {
+export function initializeInput($el, $actionsEl, $copyAsCurlEl, output, openDocumentation = () => {}) {
input = new SenseEditor($el);
// this may not exist if running from tests
@@ -241,7 +241,13 @@ export function initializeInput($el, $actionsEl, $copyAsCurlEl, output) {
bindKey: { win: 'Ctrl-Enter', mac: 'Command-Enter' },
exec: sendCurrentRequestToES
});
-
+ input.commands.addCommand({
+ name: 'open documentation',
+ bindKey: { win: 'Ctrl-/', mac: 'Command-/' },
+ exec: () => {
+ openDocumentation();
+ }
+ });
/**
* Init the editor
diff --git a/src/core_plugins/console/public/src/kb.js b/src/core_plugins/console/public/src/kb.js
index 4edafb2bf603..662bec5d8adf 100644
--- a/src/core_plugins/console/public/src/kb.js
+++ b/src/core_plugins/console/public/src/kb.js
@@ -50,6 +50,9 @@ const parametrizedComponentFactories = {
id: function (name, parent) {
return new IdAutocompleteComponent(name, parent);
},
+ task_id: function (name, parent) {
+ return new IdAutocompleteComponent(name, parent);
+ },
ids: function (name, parent) {
return new IdAutocompleteComponent(name, parent, true);
},
@@ -148,7 +151,6 @@ export function setActiveApi(api) {
);
return;
}
- console.log('setting active api to [' + api.name + ']');
ACTIVE_API = api;
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack.json b/x-pack/plugins/console_extensions/spec/xpack.json
index 3f59bd5554dd..e354df4a22de 100644
--- a/x-pack/plugins/console_extensions/spec/xpack.json
+++ b/x-pack/plugins/console_extensions/spec/xpack.json
@@ -17,6 +17,7 @@
],
"patterns": [
"_xpack"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/info-api.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_authenticate.json b/x-pack/plugins/console_extensions/spec/xpack_authenticate.json
index 68e27d1e44bc..8bb89402431e 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_authenticate.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_authenticate.json
@@ -5,6 +5,7 @@
],
"patterns": [
"_xpack/security/_authenticate"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-authenticate.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_clear_users_cache.json b/x-pack/plugins/console_extensions/spec/xpack_clear_users_cache.json
index 1099c5603eaf..43e9e6c5dd87 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_clear_users_cache.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_clear_users_cache.json
@@ -1,5 +1,5 @@
{
- "_xpack/security/realm/{realms}/_clear_cache": {
+ "_xpack/security/realm/{ids}/_clear_cache": {
"methods": [
"POST"
],
@@ -7,7 +7,8 @@
"usernames": ""
},
"patterns": [
- "_xpack/security/realm/{realms}/_clear_cache"
- ]
+ "_xpack/security/realm/{ids}/_clear_cache"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-clear-cache.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_graph_explore.json b/x-pack/plugins/console_extensions/spec/xpack_graph_explore.json
index 8c47cdc954e9..4b1a13092897 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_graph_explore.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_graph_explore.json
@@ -10,6 +10,7 @@
"query": {},
"vertices": [{}],
"connections": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/graph-explore-api.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_license.json b/x-pack/plugins/console_extensions/spec/xpack_license.json
index eca370ceda5d..516bd254ff68 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_license.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_license.json
@@ -8,7 +8,8 @@
},
"patterns": [
"_xpack/license"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-license.html"
},
"DELETE _xpack/license": {
"methods": [
@@ -16,7 +17,8 @@
],
"patterns": [
"_xpack/license"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-license.html"
},
"PUT _xpack/license": {
"methods": [
@@ -30,7 +32,8 @@
],
"data_autocomplete_rules": {
"licenses": []
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/update-license.html"
},
"_xpack/license/trial_status": {
"methods": [
@@ -38,7 +41,8 @@
],
"patterns": [
"_xpack/license/trial_status"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-trial-status.html"
},
"_xpack/license/start_trial": {
"methods": [
@@ -46,7 +50,8 @@
],
"patterns": [
"_xpack/license/start_trial"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/start-trial.html"
},
"_xpack/license/start_basic": {
"url_params": {
@@ -57,6 +62,7 @@
],
"patterns": [
"_xpack/license/start_basic"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/start-basic.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_migration.json b/x-pack/plugins/console_extensions/spec/xpack_migration.json
index fe70069d1752..bb25cea0ed93 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_migration.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_migration.json
@@ -6,7 +6,8 @@
"patterns": [
"_xpack/migration/assistance",
"_xpack/migration/assistance/{index}"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/migration-api-assistance.html"
},
"_xpack/migration/upgrade/{index}": {
"url_params": {
@@ -17,7 +18,8 @@
],
"patterns": [
"_xpack/migration/upgrade/{index}"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/migration-api-upgrade.html"
},
"_xpack/migration/deprecations": {
"methods": [
@@ -26,6 +28,7 @@
"patterns": [
"_xpack/migration/deprecations",
"{index}/_xpack/migration/deprecations"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/migration-api-deprecation.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ml_calendar.json b/x-pack/plugins/console_extensions/spec/xpack_ml_calendar.json
index 3dbb7765d740..08dfbfe809c1 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ml_calendar.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ml_calendar.json
@@ -1,53 +1,58 @@
{
- "_xpack/ml/calendars/{calendar_id}": {
+ "_xpack/ml/calendars/{id}": {
"methods": [
"GET"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}",
+ "_xpack/ml/calendars/{id}",
"_xpack/ml/calendars/_all"
],
"data_autocomplete_rules": {
"from": 0,
"size": 100
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-calendar.html"
},
- "PUT _xpack/ml/calendars/{calendar_id}": {
+ "PUT _xpack/ml/calendars/{id}": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}"
+ "_xpack/ml/calendars/{id}"
],
"data_autocomplete_rules": {
"description": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-put-calendar.html"
},
- "DELETE _xpack/ml/calendars/{calendar_id}": {
+ "DELETE _xpack/ml/calendars/{id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}"
- ]
+ "_xpack/ml/calendars/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-calendar.html"
},
- "_xpack/ml/calendars/{calendar_id}/jobs/{job_id}": {
+ "_xpack/ml/calendars/{id}/jobs/{id}": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}/jobs/{job_id}"
- ]
+ "_xpack/ml/calendars/{id}/jobs/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-put-calendar-job.html"
},
- "DELETE _xpack/ml/calendars/{calendar_id}/jobs/{job_id}": {
+ "DELETE _xpack/ml/calendars/{id}/jobs/{id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}/jobs/{job_id}"
- ]
+ "_xpack/ml/calendars/{id}/jobs/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-calendar-job.html"
},
- "_xpack/ml/calendars/{calendar_id}/events": {
+ "_xpack/ml/calendars/{id}/events": {
"methods": [
"GET"
],
@@ -56,27 +61,30 @@
"size": 100
},
"patterns": [
- "_xpack/ml/calendars/{calendar_id}/events",
+ "_xpack/ml/calendars/{id}/events",
"_xpack/ml/calendars/_all/events"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-calendar-event.html"
},
- "POST _xpack/ml/calendars/{calendar_id}/events": {
+ "POST _xpack/ml/calendars/{id}/events": {
"methods": [
"POST"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}/events"
+ "_xpack/ml/calendars/{id}/events"
],
"data_autocomplete_rules": {
"events": [{}]
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-post-calendar-event.html"
},
- "_xpack/ml/calendars/{calendar_id}/events/{event_id}": {
+ "_xpack/ml/calendars/{id}/events/{event_id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/ml/calendars/{calendar_id}/events/{event_id}"
- ]
+ "_xpack/ml/calendars/{id}/events/{event_id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-calendar-event.html"
}
}
\ No newline at end of file
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ml_datafeed.json b/x-pack/plugins/console_extensions/spec/xpack_ml_datafeed.json
index 54f58a10c56b..24880fb56e87 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ml_datafeed.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ml_datafeed.json
@@ -1,20 +1,21 @@
{
- "_xpack/ml/datafeeds/{datafeed_id}": {
+ "_xpack/ml/datafeeds/{id}": {
"methods": [
"GET"
],
"patterns": [
"_xpack/ml/datafeeds/",
- "_xpack/ml/datafeeds/{datafeed_id}",
+ "_xpack/ml/datafeeds/{id}",
"_xpack/ml/datafeeds/_all"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-datafeed.html"
},
- "PUT _xpack/ml/datafeeds/{datafeed_id}": {
+ "PUT _xpack/ml/datafeeds/{id}": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}"
+ "_xpack/ml/datafeeds/{id}"
],
"data_autocomplete_rules": {
"aggregations": {},
@@ -27,56 +28,62 @@
"script_field": {},
"scroll_size": 1000,
"types": []
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-put-datafeed.html"
},
- "DELETE _xpack/ml/datafeeds/{datafeed_id}": {
+ "DELETE _xpack/ml/datafeeds/{id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}"
- ]
+ "_xpack/ml/datafeeds/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-datafeed.html"
},
- "_xpack/ml/datafeeds/{datafeed_id}/_start": {
+ "_xpack/ml/datafeeds/{id}/_start": {
"methods": [
"POST"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}/_start"
- ]
+ "_xpack/ml/datafeeds/{id}/_start"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-start-datafeed.html"
},
- "_xpack/ml/datafeeds/{datafeed_id}/_stop": {
+ "_xpack/ml/datafeeds/{id}/_stop": {
"methods": [
"POST"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}/_stop"
- ]
+ "_xpack/ml/datafeeds/{id}/_stop"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-stop-datafeed.html"
},
- "_xpack/ml/datafeeds/{datafeed_id}/stats": {
+ "_xpack/ml/datafeeds/{id}/stats": {
"methods": [
"GET"
],
"patterns": [
"_xpack/ml/datafeeds/stats",
- "_xpack/ml/datafeeds/{datafeed_id}/stats",
+ "_xpack/ml/datafeeds/{id}/stats",
"_xpack/ml/datafeeds/_all/stats"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-datafeed-stats.html"
},
- "_xpack/ml/datafeeds/{datafeed_id}/_preview": {
+ "_xpack/ml/datafeeds/{id}/_preview": {
"methods": [
"GET"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}_preview"
- ]
+ "_xpack/ml/datafeeds/{id}_preview"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-preview-datafeed.html"
},
- "_xpack/ml/datafeeds/{datafeed_id}/_update": {
+ "_xpack/ml/datafeeds/{id}/_update": {
"methods": [
"POST"
],
"patterns": [
- "_xpack/ml/datafeeds/{datafeed_id}/_update"
+ "_xpack/ml/datafeeds/{id}/_update"
],
"data_autocomplete_rules": {
"aggregations": {},
@@ -89,6 +96,7 @@
"script_field": {},
"scroll_size": 1000,
"types": []
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-update-datafeed.html"
}
}
\ No newline at end of file
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ml_jobs.json b/x-pack/plugins/console_extensions/spec/xpack_ml_jobs.json
index 41487c8a7f4f..426a2e7da9c3 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ml_jobs.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ml_jobs.json
@@ -1,7 +1,7 @@
{
- "PUT _xpack/ml/anomaly_detectors/{job_id}": {
+ "PUT _xpack/ml/anomaly_detectors/{id}": {
"methods": ["PUT"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}"],
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}"],
"data_autocomplete_rules": {
"analysis_config": {},
"background_persist_interval": "",
@@ -14,53 +14,61 @@
"renormalization_window_days": 1,
"results_index_name": "",
"results_retention_days": 1
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-put-job.html"
},
- "DELETE _xpack/ml/anomaly_detectors/{job_id}": {
+ "DELETE _xpack/ml/anomaly_detectors/{id}": {
"methods": ["DELETE"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_open": {
+ "_xpack/ml/anomaly_detectors/{id}/_open": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_open"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_open"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-open-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_close": {
+ "_xpack/ml/anomaly_detectors/{id}/_close": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_close"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_close"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-close-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}": {
+ "_xpack/ml/anomaly_detectors/{id}": {
"methods": ["GET"],
"patterns": [
"_xpack/ml/anomaly_detectors/",
- "_xpack/ml/anomaly_detectors/{job_id}",
+ "_xpack/ml/anomaly_detectors/{id}",
"_xpack/ml/anomaly_detectors/_all"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/stats": {
+ "_xpack/ml/anomaly_detectors/{id}/stats": {
"methods": ["GET"],
"patterns": [
"_xpack/ml/anomaly_detectors/stats",
- "_xpack/ml/anomaly_detectors/{job_id}/stats",
+ "_xpack/ml/anomaly_detectors/{id}/stats",
"_xpack/ml/anomaly_detectors/_all/stats"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-job-stats.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_flush": {
+ "_xpack/ml/anomaly_detectors/{id}/_flush": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_flush"],
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_flush"],
"url_params": {
"advance_time": "",
"calc_interim": ["true", "false"],
"end": "",
"start": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-flush-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_data": {
+ "_xpack/ml/anomaly_detectors/{id}/_data": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_data"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_data"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-post-data.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_update": {
+ "_xpack/ml/anomaly_detectors/{id}/_update": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_update"],
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_update"],
"data_autocomplete_rules": {
"analysis_limits": {},
"background_persist_interval": "",
@@ -72,10 +80,12 @@
"renormalization_window_days": 1,
"results_index_name": "",
"results_retention_days": 1
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-update-job.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/_forecast": {
+ "_xpack/ml/anomaly_detectors/{id}/_forecast": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/_forecast"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/_forecast"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-forecast.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ml_model_snapshot.json b/x-pack/plugins/console_extensions/spec/xpack_ml_model_snapshot.json
index 680587e502b2..4a6d663f2d15 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ml_model_snapshot.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ml_model_snapshot.json
@@ -1,13 +1,14 @@
{
- "DELETE _xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}": {
+ "DELETE _xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}": {
"methods": ["DELETE"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}"]
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-delete-snapshot.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/model_snapshots": {
+ "_xpack/ml/anomaly_detectors/{id}/model_snapshots": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/model_snapshots",
- "_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}"
+ "_xpack/ml/anomaly_detectors/{id}/model_snapshots",
+ "_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}"
],
"data_autocomplete_rules": {
"desc": [true, false],
@@ -16,21 +17,24 @@
"size": 1000,
"sort": "",
"start": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-snapshot.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert": {
+ "_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}/_revert": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert"],
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}/_revert"],
"data_autocomplete_rules": {
"delete_intervening_results": [true, false]
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-revert-snapshot.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update": {
+ "_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}/_update": {
"methods": ["POST"],
- "patterns": ["_xpack/ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update"],
+ "patterns": ["_xpack/ml/anomaly_detectors/{id}/model_snapshots/{id}/_update"],
"data_autocomplete_rules": {
"description": "",
"retain": [true, false]
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-update-snapshot.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ml_results.json b/x-pack/plugins/console_extensions/spec/xpack_ml_results.json
index 0587ad05686f..e0daea0a60bd 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ml_results.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ml_results.json
@@ -1,9 +1,9 @@
{
- "_xpack/ml/anomaly_detectors/{job_id}/results/buckets": {
+ "_xpack/ml/anomaly_detectors/{id}/results/buckets": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/results/buckets",
- "_xpack/ml/anomaly_detectors/{job_id}/results/buckets/{timestamp}"
+ "_xpack/ml/anomaly_detectors/{id}/results/buckets",
+ "_xpack/ml/anomaly_detectors/{id}/results/buckets/{timestamp}"
],
"data_autocomplete_rules": {
"desc": [true, false],
@@ -17,12 +17,13 @@
},
"sort": "",
"start": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-bucket.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/results/overall_buckets": {
+ "_xpack/ml/anomaly_detectors/{id}/results/overall_buckets": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/results/overall_buckets",
+ "_xpack/ml/anomaly_detectors/{id}/results/overall_buckets",
"_xpack/ml/anomaly_detectors/_all/results/overall_buckets"
],
"data_autocomplete_rules": {
@@ -33,25 +34,27 @@
"overall_score": 0,
"start": "",
"top_n": 0
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-overall-buckets.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/results/categories": {
+ "_xpack/ml/anomaly_detectors/{id}/results/categories": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/results/categories",
- "_xpack/ml/anomaly_detectors/{job_id}/results/categories/{category_id}"
+ "_xpack/ml/anomaly_detectors/{id}/results/categories",
+ "_xpack/ml/anomaly_detectors/{id}/results/categories/{id}"
],
"data_autocomplete_rules": {
"page": {
"from": 0,
"size": 100
}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-category.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/results/influencers": {
+ "_xpack/ml/anomaly_detectors/{id}/results/influencers": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/results/influencers"
+ "_xpack/ml/anomaly_detectors/{id}/results/influencers"
],
"data_autocomplete_rules": {
"desc": [true, false],
@@ -64,12 +67,13 @@
},
"sort": "",
"start": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-influencer.html"
},
- "_xpack/ml/anomaly_detectors/{job_id}/results/records": {
+ "_xpack/ml/anomaly_detectors/{id}/results/records": {
"methods": ["GET"],
"patterns": [
- "_xpack/ml/anomaly_detectors/{job_id}/results/records"
+ "_xpack/ml/anomaly_detectors/{id}/results/records"
],
"data_autocomplete_rules": {
"desc": [true, false],
@@ -82,6 +86,7 @@
},
"sort": "",
"start": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/ml-get-record.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_oauth2_token.json b/x-pack/plugins/console_extensions/spec/xpack_oauth2_token.json
index c9432405f5bb..8dc064d0bd26 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_oauth2_token.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_oauth2_token.json
@@ -7,13 +7,15 @@
"password": "",
"scope": "",
"username": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-tokens.html"
},
"DELETE _xpack/security/oauth2/token": {
"methods": ["DELETE"],
"patterns": ["_xpack/security/oauth2/token"],
"data_autocomplete_rules": {
"token": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-tokens.html"
}
}
\ No newline at end of file
diff --git a/x-pack/plugins/console_extensions/spec/xpack_role.json b/x-pack/plugins/console_extensions/spec/xpack_role.json
index b10046f2644f..928c2a945979 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_role.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_role.json
@@ -1,11 +1,12 @@
{
"_xpack/security/role": {
"methods": ["GET"],
- "patterns": ["_xpack/security/role", "_xpack/security/role/{name}"]
+ "patterns": ["_xpack/security/role", "_xpack/security/role/{id}"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-roles.html"
},
- "_xpack/security/role/{name}": {
+ "_xpack/security/role/{id}": {
"methods": ["PUT", "POST"],
- "patterns": ["_xpack/security/role/{name}"],
+ "patterns": ["_xpack/security/role/{id}"],
"data_autocomplete_rules": {
"cluster": [],
"indices": [
@@ -18,14 +19,16 @@
],
"run_as": [],
"metadata": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-roles.html"
},
- "_xpack/security/role/{name}/_clear_cache": {
+ "_xpack/security/role/{id}/_clear_cache": {
"methods": [
"POST"
],
"patterns": [
- "_xpack/security/role/{name}/_clear_cache"
- ]
+ "_xpack/security/role/{id}/_clear_cache"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-roles.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_role_mapping.json b/x-pack/plugins/console_extensions/spec/xpack_role_mapping.json
index 23f0839c07db..fa8d0a50de28 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_role_mapping.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_role_mapping.json
@@ -3,21 +3,24 @@
"methods": ["GET"],
"patterns": [
"_xpack/security/role_mapping",
- "_xpack/security/role_mapping/{name}"
- ]
+ "_xpack/security/role_mapping/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-role-mapping.html"
},
- "_xpack/security/role_mapping/{name}": {
+ "_xpack/security/role_mapping/{id}": {
"methods": ["PUT", "POST"],
- "patterns": ["_xpack/security/role_mapping/{name}"],
+ "patterns": ["_xpack/security/role_mapping/{id}"],
"data_autocomplete_rules": {
"enabled": true,
"metadata": {},
"roles": [],
"rules": {}
},
- "DELETE _xpack/security/role_mapping/{name}": {
- "methods": ["DELETE"],
- "patterns": ["_xpack/security/role_mapping/{name}"]
- }
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-role-mapping.html"
+ },
+ "DELETE _xpack/security/role_mapping/{id}": {
+ "methods": ["DELETE"],
+ "patterns": ["_xpack/security/role_mapping/{id}"],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-role-mapping.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_rollup.json b/x-pack/plugins/console_extensions/spec/xpack_rollup.json
index 2accaed23ab4..c905fc374902 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_rollup.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_rollup.json
@@ -1,18 +1,19 @@
{
- "_xpack/rollup/job/{job_id}": {
+ "_xpack/rollup/job/{id}": {
"patterns": [
- "_xpack/rollup/job/{job_id}"
+ "_xpack/rollup/job/{id}"
],
"methods": [
"GET"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-job.html"
},
- "PUT _xpack/rollup/job/{job_id}": {
+ "PUT _xpack/rollup/job/{id}": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/rollup/job/{job_id}"
+ "_xpack/rollup/job/{id}"
],
"data_autocomplete_rules": {
"index_pattern": "",
@@ -21,11 +22,12 @@
"page_size": 100,
"groups": {},
"metrics": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-job-config.html"
},
- "DELETE _xpack/rollup/job/{job_id}": {
+ "DELETE _xpack/rollup/job/{id}": {
"patterns": [
- "_xpack/rollup/job/{job_id}"
+ "_xpack/rollup/job/{id}"
],
"methods": [
"DELETE"
@@ -37,23 +39,26 @@
"page_size": 100,
"groups": {},
"metrics": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-delete-job.html"
},
- "_xpack/rollup/job/{job_id}/_start": {
+ "_xpack/rollup/job/{id}/_start": {
"patterns": [
- "_xpack/rollup/job/{job_id}/_start"
+ "_xpack/rollup/job/{id}/_start"
],
"methods": [
"POST"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-start-job.html"
},
- "_xpack/rollup/job/{job_id}/_stop": {
+ "_xpack/rollup/job/{id}/_stop": {
"patterns": [
- "_xpack/rollup/job/{job_id}/_stop"
+ "_xpack/rollup/job/{id}/_stop"
],
"methods": [
"POST"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-stop-job.html"
},
"_xpack/rollup/data/{index}": {
"patterns": [
@@ -61,7 +66,8 @@
],
"methods": [
"GET"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-get-rollup-caps.html"
},
"{index}/_rollup_search": {
"patterns": [
@@ -73,6 +79,7 @@
"data_autocomplete_rules": {
"query": {},
"aggregations": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/rollup-search.html"
}
}
\ No newline at end of file
diff --git a/x-pack/plugins/console_extensions/spec/xpack_ssl_certificates.json b/x-pack/plugins/console_extensions/spec/xpack_ssl_certificates.json
index 1e6bfeddbdcb..8c88f922d27a 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_ssl_certificates.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_ssl_certificates.json
@@ -5,6 +5,7 @@
],
"patterns": [
"_xpack/ssl/certificates"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-ssl.html"
}
}
diff --git a/x-pack/plugins/console_extensions/spec/xpack_user.json b/x-pack/plugins/console_extensions/spec/xpack_user.json
index b7c8668b38cb..a016d699622a 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_user.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_user.json
@@ -1,53 +1,58 @@
{
- "POST _xpack/security/user/{name}": {
+ "POST _xpack/security/user/{id}": {
"methods": [
"PUT",
"POST"
],
"patterns": [
- "_xpack/security/user/{name}"
+ "_xpack/security/user/{id}"
],
"data_autocomplete_rules": {
"metadata": {},
"password": "",
"fullname": "",
"roles": []
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
- "_xpack/security/user/{name}/_enable": {
+ "_xpack/security/user/{id}/_enable": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/security/user/{name}/_enable"
- ]
+ "_xpack/security/user/{id}/_enable"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
- "_xpack/security/user/{name}/_disable": {
+ "_xpack/security/user/{id}/_disable": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/security/user/{name}/_disable"
- ]
+ "_xpack/security/user/{id}/_disable"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
- "_xpack/security/user/{name}/_password": {
+ "_xpack/security/user/{id}/_password": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/security/user/{name}/_password"
+ "_xpack/security/user/{id}/_password"
],
"data_autocomplete_rules": {
"password": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
- "DELETE _xpack/security/user/{name}": {
+ "DELETE _xpack/security/user/{id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/security/user/{name}"
- ]
+ "_xpack/security/user/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
"_xpack/security/user": {
"methods": [
@@ -55,8 +60,9 @@
],
"patterns": [
"_xpack/security/user",
- "_xpack/security/user/{name}"
- ]
+ "_xpack/security/user/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
"_xpack/security/user/_password": {
"methods": [
@@ -64,11 +70,12 @@
],
"patterns": [
"_xpack/security/user/_password",
- "_xpack/security/user/{username}/_password"
+ "_xpack/security/user/{id}/_password"
],
"data_autocomplete_rules": {
"password": ""
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
},
"_xpack/security/user/_has_privileges": {
"methods": [
@@ -76,6 +83,7 @@
],
"patterns": [
"_xpack/security/user/_has_privileges"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/security-api-users.html"
}
}
\ No newline at end of file
diff --git a/x-pack/plugins/console_extensions/spec/xpack_watcher.json b/x-pack/plugins/console_extensions/spec/xpack_watcher.json
index e65c19c1f53c..97a512ad86f4 100644
--- a/x-pack/plugins/console_extensions/spec/xpack_watcher.json
+++ b/x-pack/plugins/console_extensions/spec/xpack_watcher.json
@@ -1,21 +1,23 @@
{
- "_xpack/watcher/watch/{watch_id}": {
+ "_xpack/watcher/watch/{id}": {
"methods": [
"GET"
],
"patterns": [
- "_xpack/watcher/watch/{watch_id}"
- ]
+ "_xpack/watcher/watch/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-get-watch.html"
},
- "DELETE _xpack/watcher/watch/{watch_id}": {
+ "DELETE _xpack/watcher/watch/{id}": {
"methods": [
"DELETE"
],
"patterns": [
- "_xpack/watcher/watch/{watch_id}"
- ]
+ "_xpack/watcher/watch/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-delete-watch.html"
},
- "PUT _xpack/watcher/watch/{watch_id}": {
+ "PUT _xpack/watcher/watch/{id}": {
"methods": [
"PUT"
],
@@ -23,7 +25,7 @@
"active": ["true", "false"]
},
"patterns": [
- "_xpack/watcher/watch/{watch_id}"
+ "_xpack/watcher/watch/{id}"
],
"data_autocomplete_rules": {
"metadata": {},
@@ -32,7 +34,8 @@
"condition": {},
"throttle_period": 5,
"actions": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-put-watch.html"
},
"_xpack/watcher/watch/_execute": {
"methods": [
@@ -43,7 +46,7 @@
},
"patterns": [
"_xpack/watcher/watch/_execute",
- "_xpack/watcher/watch/{watch_id}/_execute"
+ "_xpack/watcher/watch/{id}/_execute"
],
"data_autocomplete_rules": {
"trigger_data": {},
@@ -52,32 +55,36 @@
"watch": {},
"alternative_input": {},
"action_modes": {}
- }
+ },
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-execute-watch.html"
},
- "_xpack/watcher/watch/{watch_id}/_ack": {
+ "_xpack/watcher/watch/{id}/_ack": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/watcher/watch/{watch_id}/_ack",
- "_xpack/watcher/watch/{watch_id}/_ack/{action_id}"
- ]
+ "_xpack/watcher/watch/{id}/_ack",
+ "_xpack/watcher/watch/{id}/_ack/{id}"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-ack-watch.html"
},
- "_xpack/watcher/watch/{watch_id}/_activate": {
+ "_xpack/watcher/watch/{id}/_activate": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/watcher/watch/{watch_id}/_activate"
- ]
+ "_xpack/watcher/watch/{id}/_activate"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-activate-watch.html"
},
- "_xpack/watcher/watch/{watch_id}/_deactivate": {
+ "_xpack/watcher/watch/{id}/_deactivate": {
"methods": [
"PUT"
],
"patterns": [
- "_xpack/watcher/watch/{watch_id}/_deactivate"
- ]
+ "_xpack/watcher/watch/{id}/_deactivate"
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-deactivate-watch.html"
},
"_xpack/watcher/stats": {
"url_params": {
@@ -88,7 +95,8 @@
],
"patterns": [
"_xpack/watcher/stats"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-stats.html"
},
"_xpack/watcher/_start": {
"methods": [
@@ -96,7 +104,8 @@
],
"patterns": [
"_xpack/watcher/_start"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-start.html"
},
"_xpack/watcher/_stop": {
"methods": [
@@ -104,7 +113,8 @@
],
"patterns": [
"_xpack/watcher/_stop"
- ]
+ ],
+ "documentation": "https://www.elastic.co/guide/en/elasticsearch/reference/master/watcher-api-stop.html"
},
"_xpack/watcher/_restart": {
"methods": [