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": [