[
  {
    "path": ".github/workflows/publish.yaml",
    "content": "name: Publish To Vscode\r\non:\r\n  push:\r\n    branches:\r\n      - master\r\n\r\njobs:\r\n  publish:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n      - name: Checkout\r\n        uses: actions/checkout@v2\r\n\r\n      - name: Install Node.js\r\n        uses: actions/setup-node@v1\r\n        with:\r\n          node-version: 16.x\r\n      - run: npm i\r\n\r\n      - name: Publish\r\n        run: npm run deploy\r\n        env:\r\n          VSCE_PAT: ${{ secrets.VSCE_PAT }}\r\n          REPO_URL: \"${{ github.server_url }}/${{ github.repository }}\"\r\n          BRANCH: \"${GITHUB_REF##*/}\"\r\n"
  },
  {
    "path": ".github/workflows/runTests.yaml",
    "content": "name: Run Tests\non:\n  push:\n    branches:\n      - master\n  pull_request:\n    branches: [ master ]\njobs:\n  prepare:\n    runs-on: ubuntu-latest\n    name: Run Tests\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n\n      - name: Install Node\n        uses: actions/setup-node@v1\n        with:\n          node-version: '16.x'\n\n      - name: Install Dependencies\n        run: npm i\n\n      - name: Run Tests\n        run: npm run test"
  },
  {
    "path": ".gitignore",
    "content": "out\r\nnode_modules\r\n.vscode\r\n.DS_Store\r\npackage-lock.json\r\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nnpm version patch --commit-hooks false --git-tag-version false --force\ngit add ."
  },
  {
    "path": ".prettierrc.json",
    "content": "{\n    \"bracketSpacing\": true,\n    \"jsxSingleQuote\": true,\n    \"tabWidth\": 4,\n    \"arrowParens\": \"avoid\",\n    \"endOfLine\": \"auto\",\n    \"htmlWhitespaceSensitivity\": \"css\",\n    \"jsxBracketSameLine\": false,\n    \"proseWrap\": \"preserve\",\n    \"semi\": true,\n    \"singleQuote\": true,\n    \"printWidth\": 160,\n    \"useTabs\": false,\n    \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": ".vscodeignore",
    "content": ".vscode/**\r\n.vscode-test/**\r\nout/test/**\r\ntest/**\r\nsrc/**\r\n**/*.map\r\n.gitignore\r\ntsconfig.json\r\nvsc-extension-quickstart.md\r\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "## [0.13]\r\n\r\n-   show simple documention of urls endpoints and its external links to [elastic.co](https://elastic.co) on hover.\r\n\r\n## [0.12]\r\n\r\n-   [@KenDobbins](https://github.com/KenDobbins): Allow ctrl+enter to run command\r\n-   better request body selection (blank line allowed)\r\n-   simple protocol (https) support\r\n\r\n## [0.11]\r\n\r\n-   [@jgowdyelastic](https://github.com/jgowdyelastic): Using tabSize setting for json indentation\r\n-   minor bugfix\r\n\r\n## [0.10]\r\n\r\n-   adding requested feature: [keybindings](https://github.com/hsen-dev/vscode-elastic/issues/5)\r\n-   fix some decorations issues\r\n\r\n## [0.9]\r\n\r\n-   [@tsouza](https://github.com/tsouza): add IntelliSense/autocomplete for es6\r\n-   bug fixes\r\n\r\n## [0.8]\r\n\r\n-   [@tsouza](https://github.com/tsouza): add simple IntelliSense/autocomplete for methods path\r\n-   [@heatwave](https://github.com/heatwave): bug fixes\r\n\r\n## [0.7]\r\n\r\n-   Get Payload from File ([requested feature](https://github.com/hsen-dev/vscode-elastic/issues/4))\r\n\r\n## [0.6]\r\n\r\n-   fixed issue [#1](https://github.com/hsen-dev/vscode-elastic/issues/1): elasticsearch logo style guides\r\n-   adding [requested feature](https://github.com/hsen-dev/vscode-elastic/issues/3): `elastic.showResultAsDocument`: Show result in a new json file, or show in default view.\r\n-   some bug fixes\r\n-   better syntax highlight\r\n\r\n## [0.5]\r\n\r\n-   big changes: migrate execution of query to CodeLens.\r\n-   add Json validator and `Auto indent` command.\r\n\r\n## [0.4]\r\n\r\n-   bug fixes\r\n-   add context menu for `copy JSON path` and `copy JSON content`\r\n\r\n## [0.3]\r\n\r\n-   bug fixes\r\n-   better output ui\r\n-   add `_cat` toolbar\r\n-   work with `Elasticsearch` file type without `.es` extention\r\n\r\n## [0.2]\r\n\r\n-   bug fixes\r\n-   better output ui\r\n\r\n## [0.1]\r\n\r\n-   initial release\r\n"
  },
  {
    "path": "LICENSE",
    "content": "This is free and unencumbered software released into the public domain.\r\n\r\nAnyone is free to copy, modify, publish, use, compile, sell, or\r\ndistribute this software, either in source code form or as a compiled\r\nbinary, for any purpose, commercial or non-commercial, and by any\r\nmeans.\r\n\r\nIn jurisdictions that recognize copyright laws, the author or authors\r\nof this software dedicate any and all copyright interest in the\r\nsoftware to the public domain. We make this dedication for the benefit\r\nof the public at large and to the detriment of our heirs and\r\nsuccessors. We intend this dedication to be an overt act of\r\nrelinquishment in perpetuity of all present and future rights to this\r\nsoftware under copyright law.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\nOTHER DEALINGS IN THE SOFTWARE.\r\n\r\nFor more information, please refer to <http://unlicense.org>\r\n"
  },
  {
    "path": "README.md",
    "content": "## Elasticsearch for VSCode\r\n\r\n[![.github/workflows/runTests.yaml](/../../actions/workflows/runTests.yaml/badge.svg)](/../../actions/workflows/runTests.yaml)\r\n[![.github/workflows/publish.yaml](/../../actions/workflows/publish.yaml/badge.svg)](/../../actions/workflows/publish.yaml)\r\n\r\n\r\nWelcome to Elasticsearch for VSCode! An extension for developing elasticsearch queries.\r\n\r\n![shot](shots/all.gif)\r\n\r\n## Using\r\n\r\n-   Open an existing file with a `.es` file extenion or open a new text file (`ctrl+n`) and change the language mode to `Elasticsearch (es)` by pressing `ctrl+k,m` and select `es`. Elasticsearch queries and funtionalities are enabled in the es language mode in Visual Studio Code editor.\r\n-   For https endpoints, just add protocol type in url : `https://host`\r\n-   For auth protected clusters, you can use `http://user:pass@host:9200` as the endpoint url to have it auth.\r\n\r\n### Submit requests\r\n\r\nSimple way:\r\n\r\n```text\r\nGET /my-index/_search\r\n{\r\n    \"size\":7,\r\n    \"query\": {\r\n        \"match\" : {\r\n            \"message\" : {\r\n                \"query\" : \"this is a test\"\r\n            }\r\n        }\r\n    }\r\n}\r\n```\r\n\r\nGet payload from file [[#4](https://github.com/hsen-dev/vscode-elastic/issues/4)]:\r\n\r\n```text\r\nPUT /my-index\r\n!./opt/elasticsearch/mapping.json\r\n```\r\n\r\n## Commands\r\n\r\n-   **Elasticsearch: Set Host** to create connection profile and connect.\r\n\r\n## Keymaps\r\n\r\n-   **Alt + Enter** / **Ctrl + Enter** to execute selected query.\r\n\r\n## Roadmap\r\n\r\n-   Work with multi host\r\n-   User Authentication\r\n-   IntelliSense like kibana autocomplete\r\n"
  },
  {
    "path": "build/restSpecIndex.js",
    "content": "/*jslint esversion: 6*/\r\nconst del = require('del');\r\nconst fs = require('fs');\r\nconst jsesc = require('jsesc');\r\n(function () {\r\n    'use strict';\r\n    const restSpecPath = '../src/rest-spec';\r\n    const SRC_ROOT = `${__dirname}/${restSpecPath}`;\r\n\r\n    del.sync(`${SRC_ROOT}/**/*.ts`);\r\n    fs.writeFileSync(`${SRC_ROOT}/json.d.ts`, 'declare module \"*.json\" { const value: any; export default value; }');\r\n\r\n    const requireDir = require('require-dir');\r\n    const restSpec = requireDir(restSpecPath, { recurse: true });\r\n\r\n    let rootIndex = '';\r\n\r\n    let versions = Object.keys(restSpec);\r\n    versions.forEach(version => {\r\n        rootIndex += `import * as ${version} from './${version}';\\n`;\r\n        let endpointNames = Object.keys(restSpec[version]);\r\n        let versionIndex = endpointNames\r\n            .map(endpointName => `const def_${endpointName.replace(/\\./g, '_')} = JSON.parse('${jsesc(JSON.stringify(restSpec[version][endpointName]))}')`)\r\n            .join(';\\n');\r\n\r\n        versionIndex += `\\n\\nexport default {\\n`;\r\n        versionIndex += endpointNames\r\n            .map(endpointName => `  '${endpointName}': def_${endpointName.replace(/\\./g, '_')}` + (endpointName != '_common' ? `['${endpointName}']` : ''))\r\n            .join(',\\n');\r\n        versionIndex += '\\n}';\r\n        fs.writeFileSync(`${SRC_ROOT}/${version}/index.ts`, versionIndex, 'utf-8');\r\n    });\r\n\r\n    rootIndex += `\\nexport default {\\n`;\r\n    rootIndex += versions.map(version => `  '${version.substring(1).replace(/_/g, '.')}': ${version}`).join(',\\n');\r\n    rootIndex += '\\n}';\r\n\r\n    fs.writeFileSync(`${SRC_ROOT}/index.ts`, rootIndex, 'utf-8');\r\n})();\r\n"
  },
  {
    "path": "grammar/es.configuration.json",
    "content": "{\r\n\t\"comments\": {\r\n\t\t\"lineComment\": \"//\",\r\n\t\t\"blockComment\": [\r\n\t\t\t\"/*\",\r\n\t\t\t\"*/\"\r\n\t\t]\r\n\t},\r\n\t\"brackets\": [\r\n\t\t[\r\n\t\t\t\"{\",\r\n\t\t\t\"}\"\r\n\t\t],\r\n\t\t[\r\n\t\t\t\"[\",\r\n\t\t\t\"]\"\r\n\t\t]\r\n\t],\r\n\t\"autoClosingPairs\": [\r\n\t\t{\r\n\t\t\t\"open\": \"{\",\r\n\t\t\t\"close\": \"}\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"open\": \"[\",\r\n\t\t\t\"close\": \"]\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"open\": \"(\",\r\n\t\t\t\"close\": \")\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"open\": \"'\",\r\n\t\t\t\"close\": \"'\",\r\n\t\t\t\"notIn\": [\r\n\t\t\t\t\"string\",\r\n\t\t\t\t\"comment\"\r\n\t\t\t]\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"open\": \"\\\"\",\r\n\t\t\t\"close\": \"\\\"\",\r\n\t\t\t\"notIn\": [\r\n\t\t\t\t\"string\"\r\n\t\t\t]\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"open\": \"/**\",\r\n\t\t\t\"close\": \" */\",\r\n\t\t\t\"notIn\": [\r\n\t\t\t\t\"string\"\r\n\t\t\t]\r\n\t\t}\r\n\t]\r\n}"
  },
  {
    "path": "grammar/es.tmLanguage",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\r\n<plist version=\"1.0\">\r\n<dict>\r\n\t<key>fileTypes</key>\r\n\t<array>\r\n\t\t<string>es</string>\r\n\t\t<string>json</string>\r\n\t\t<string>sublime-settings</string>\r\n\t\t<string>sublime-menu</string>\r\n\t\t<string>sublime-keymap</string>\r\n\t\t<string>sublime-mousemap</string>\r\n\t\t<string>sublime-theme</string>\r\n\t\t<string>sublime-build</string>\r\n\t\t<string>sublime-project</string>\r\n\t\t<string>sublime-completions</string>\r\n\t</array>\r\n\t<key>foldingStartMarker</key>\r\n\t<string>(?x)       # turn on extended mode\r\n  ^        # a line beginning with\r\n  \\s*      # some optional space\r\n  [{\\[]    # the start of an object or array\r\n  (?!      # but not followed by\r\n    .*     # whatever\r\n    [}\\]]  # and the close of an object or array\r\n    ,?     # an optional comma\r\n    \\s*    # some optional space\r\n    $      # at the end of the line\r\n  )\r\n  |        # ...or...\r\n  [{\\[]    # the start of an object or array\r\n  \\s*      # some optional space\r\n  $        # at the end of the line</string>\r\n\t<key>foldingStopMarker</key>\r\n\t<string>(?x)     # turn on extended mode\r\n  ^      # a line beginning with\r\n  \\s*    # some optional space\r\n  [}\\]]  # and the close of an object or array</string>\r\n\t<key>keyEquivalent</key>\r\n\t<string>^~J</string>\r\n\t<key>name</key>\r\n\t<string>JSON (Javascript Next)</string>\r\n\t<key>patterns</key>\r\n\t<array>\r\n\t\t<dict>\r\n\t\t\t<key>include</key>\r\n\t\t\t<string>#value</string>\r\n\t\t</dict>\r\n\t</array>\r\n\t<key>repository</key>\r\n\t<dict>\r\n\t\t<key>array</key>\r\n\t\t<dict>\r\n\t\t\t<key>begin</key>\r\n\t\t\t<string>\\[</string>\r\n\t\t\t<key>beginCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.array.begin.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>end</key>\r\n\t\t\t<string>\\]</string>\r\n\t\t\t<key>endCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.array.end.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>meta.structure.array.json</string>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#value</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>,</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.separator.array.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>[^\\s\\]]</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>invalid.illegal.expected-array-separator.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>comments</key>\r\n\t\t<dict>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>begin</key>\r\n\t\t\t\t\t<string>/\\*\\*(?!/)</string>\r\n\t\t\t\t\t<key>captures</key>\r\n\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t<key>0</key>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>punctuation.definition.comment.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</dict>\r\n\t\t\t\t\t<key>end</key>\r\n\t\t\t\t\t<string>\\*/</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>comment.block.documentation.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>begin</key>\r\n\t\t\t\t\t<string>/\\*</string>\r\n\t\t\t\t\t<key>captures</key>\r\n\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t<key>0</key>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>punctuation.definition.comment.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</dict>\r\n\t\t\t\t\t<key>end</key>\r\n\t\t\t\t\t<string>\\*/</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>comment.block.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>captures</key>\r\n\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t<key>1</key>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>punctuation.definition.comment.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>(//).*$\\n?</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>comment.line.double-slash.js</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>constant</key>\r\n\t\t<dict>\r\n\t\t\t<key>match</key>\r\n\t\t\t<string>\\b(?:true|false|null)\\b</string>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>constant.language.json</string>\r\n\t\t</dict>\r\n\t\t<key>number</key>\r\n\t\t<dict>\r\n\t\t\t<key>match</key>\r\n\t\t\t<string>(?x)        # turn on extended mode\r\n  -?        # an optional minus\r\n  (?:\r\n    0       # a zero\r\n    |       # ...or...\r\n    [1-9]   # a 1-9 character\r\n    \\d*     # followed by zero or more digits\r\n  )\r\n  (?:\r\n    (?:\r\n      \\.    # a period\r\n      \\d+   # followed by one or more digits\r\n    )?\r\n    (?:\r\n      [eE]  # an e character\r\n      [+-]? # followed by an option +/-\r\n      \\d+   # followed by one or more digits\r\n    )?      # make exponent optional\r\n  )?        # make decimal portion optional</string>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>constant.numeric.json</string>\r\n\t\t</dict>\r\n\t\t<key>object</key>\r\n\t\t<dict>\r\n\t\t\t<key>begin</key>\r\n\t\t\t<string>\\{</string>\r\n\t\t\t<key>beginCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.dictionary.begin.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>end</key>\r\n\t\t\t<string>\\}</string>\r\n\t\t\t<key>endCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.dictionary.end.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>meta.structure.dictionary.json</string>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>comment</key>\r\n\t\t\t\t\t<string>the JSON object key</string>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#objectkey</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#comments</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>begin</key>\r\n\t\t\t\t\t<string>:</string>\r\n\t\t\t\t\t<key>beginCaptures</key>\r\n\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t<key>0</key>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>punctuation.separator.dictionary.key-value.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</dict>\r\n\t\t\t\t\t<key>end</key>\r\n\t\t\t\t\t<string>(,)|(?=\\})</string>\r\n\t\t\t\t\t<key>endCaptures</key>\r\n\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t<key>1</key>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>punctuation.separator.dictionary.pair.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>meta.structure.dictionary.value.json</string>\r\n\t\t\t\t\t<key>patterns</key>\r\n\t\t\t\t\t<array>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>comment</key>\r\n\t\t\t\t\t\t\t<string>the JSON object value</string>\r\n\t\t\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t\t\t<string>#value</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t\t<dict>\r\n\t\t\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t\t\t<string>[^\\s,]</string>\r\n\t\t\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t\t\t<string>invalid.illegal.expected-dictionary-separator.json</string>\r\n\t\t\t\t\t\t</dict>\r\n\t\t\t\t\t</array>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>[^\\s\\}]</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>invalid.illegal.expected-dictionary-separator.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>string</key>\r\n\t\t<dict>\r\n\t\t\t<key>begin</key>\r\n\t\t\t<string>\"</string>\r\n\t\t\t<key>beginCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.string.begin.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>end</key>\r\n\t\t\t<string>\"</string>\r\n\t\t\t<key>endCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.definition.string.end.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>string.quoted.double.json</string>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#stringcontent</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>objectkey</key>\r\n\t\t<dict>\r\n\t\t\t<key>begin</key>\r\n\t\t\t<string>\"</string>\r\n\t\t\t<key>beginCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.support.type.property-name.begin.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>end</key>\r\n\t\t\t<string>\"</string>\r\n\t\t\t<key>endCaptures</key>\r\n\t\t\t<dict>\r\n\t\t\t\t<key>0</key>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>punctuation.support.type.property-name.end.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</dict>\r\n\t\t\t<key>name</key>\r\n\t\t\t<string>string.json support.type.property-name.json</string>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#stringcontent</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>stringcontent</key>\r\n\t\t<dict>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>(?x)                # turn on extended mode\r\n  \\\\                # a literal backslash\r\n  (?:               # ...followed by...\r\n    [\"\\\\/bfnrt]     # one of these characters\r\n    |               # ...or...\r\n    u               # a u\r\n    [0-9a-fA-F]{4}) # and four hex digits</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>constant.character.escape.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>match</key>\r\n\t\t\t\t\t<string>\\\\.</string>\r\n\t\t\t\t\t<key>name</key>\r\n\t\t\t\t\t<string>invalid.illegal.unrecognized-string-escape.json</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t\t<key>value</key>\r\n\t\t<dict>\r\n\t\t\t<key>patterns</key>\r\n\t\t\t<array>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#constant</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#number</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#string</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#array</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#object</string>\r\n\t\t\t\t</dict>\r\n\t\t\t\t<dict>\r\n\t\t\t\t\t<key>include</key>\r\n\t\t\t\t\t<string>#comments</string>\r\n\t\t\t\t</dict>\r\n\t\t\t</array>\r\n\t\t</dict>\r\n\t</dict>\r\n\t<key>scopeName</key>\r\n\t<string>source.es</string>\r\n\t<key>uuid</key>\r\n\t<string>8f97457b-516e-48ce-83c7-08ae12fb327a</string>\r\n</dict>\r\n</plist>\r\n"
  },
  {
    "path": "media/jquery.contextMenu.css",
    "content": "@charset \"UTF-8\";\r\n/*!\r\n * jQuery contextMenu - Plugin for simple contextMenu handling\r\n *\r\n * Version: v2.4.2\r\n *\r\n * Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)\r\n * Web: http://swisnl.github.io/jQuery-contextMenu/\r\n *\r\n * Copyright (c) 2011-2017 SWIS BV and contributors\r\n *\r\n * Licensed under\r\n *   MIT License http://www.opensource.org/licenses/mit-license\r\n *\r\n * Date: 2017-01-02T09:03:00.383Z\r\n */\r\n@-webkit-keyframes cm-spin {\r\n  0% {\r\n    -webkit-transform: translateY(-50%) rotate(0deg);\r\n            transform: translateY(-50%) rotate(0deg);\r\n  }\r\n  100% {\r\n    -webkit-transform: translateY(-50%) rotate(359deg);\r\n            transform: translateY(-50%) rotate(359deg);\r\n  }\r\n}\r\n@-o-keyframes cm-spin {\r\n  0% {\r\n    -webkit-transform: translateY(-50%) rotate(0deg);\r\n         -o-transform: translateY(-50%) rotate(0deg);\r\n            transform: translateY(-50%) rotate(0deg);\r\n  }\r\n  100% {\r\n    -webkit-transform: translateY(-50%) rotate(359deg);\r\n         -o-transform: translateY(-50%) rotate(359deg);\r\n            transform: translateY(-50%) rotate(359deg);\r\n  }\r\n}\r\n@keyframes cm-spin {\r\n  0% {\r\n    -webkit-transform: translateY(-50%) rotate(0deg);\r\n         -o-transform: translateY(-50%) rotate(0deg);\r\n            transform: translateY(-50%) rotate(0deg);\r\n  }\r\n  100% {\r\n    -webkit-transform: translateY(-50%) rotate(359deg);\r\n         -o-transform: translateY(-50%) rotate(359deg);\r\n            transform: translateY(-50%) rotate(359deg);\r\n  }\r\n}\r\n\r\n@font-face {\r\n  font-family: \"context-menu-icons\";\r\n  font-style: normal; \r\n  font-weight: normal;\r\n\r\n  src: url(\"font/context-menu-icons.eot?3lfph\");\r\n  src: url(\"font/context-menu-icons.eot?3lfph#iefix\") format(\"embedded-opentype\"), url(\"font/context-menu-icons.woff2?3lfph\") format(\"woff2\"), url(\"font/context-menu-icons.woff?3lfph\") format(\"woff\"), url(\"font/context-menu-icons.ttf?3lfph\") format(\"truetype\");\r\n}\r\n\r\n.context-menu-icon-add:before {\r\n  content: \"\\EA01\";\r\n}\r\n\r\n.context-menu-icon-copy:before {\r\n  content: \"\\EA02\";\r\n}\r\n\r\n.context-menu-icon-cut:before {\r\n  content: \"\\EA03\";\r\n}\r\n\r\n.context-menu-icon-delete:before {\r\n  content: \"\\EA04\";\r\n}\r\n\r\n.context-menu-icon-edit:before {\r\n  content: \"\\EA05\";\r\n}\r\n\r\n.context-menu-icon-loading:before {\r\n  content: \"\\EA06\";\r\n}\r\n\r\n.context-menu-icon-paste:before {\r\n  content: \"\\EA07\";\r\n}\r\n\r\n.context-menu-icon-quit:before {\r\n  content: \"\\EA08\";\r\n}\r\n\r\n.context-menu-icon::before {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 0;\r\n  width: 2em; \r\n  font-family: \"context-menu-icons\";\r\n  font-size: 1em;\r\n  font-style: normal;\r\n  font-weight: normal;\r\n  line-height: 1;\r\n  color: #2980b9;\r\n  text-align: center;\r\n  -webkit-transform: translateY(-50%);\r\n      -ms-transform: translateY(-50%);\r\n       -o-transform: translateY(-50%);\r\n          transform: translateY(-50%);\r\n\r\n  -webkit-font-smoothing: antialiased;\r\n  -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n.context-menu-icon.context-menu-hover:before {\r\n  color: #fff;\r\n}\r\n\r\n.context-menu-icon.context-menu-disabled::before {\r\n  color: #bbb;\r\n}\r\n\r\n.context-menu-icon.context-menu-icon-loading:before {\r\n  -webkit-animation: cm-spin 2s infinite;\r\n       -o-animation: cm-spin 2s infinite;\r\n          animation: cm-spin 2s infinite;\r\n}\r\n\r\n.context-menu-icon.context-menu-icon--fa {\r\n  display: list-item;\r\n  font-family: inherit;\r\n}\r\n.context-menu-icon.context-menu-icon--fa::before {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 0;\r\n  width: 2em; \r\n  font-family: FontAwesome;\r\n  font-size: 1em;\r\n  font-style: normal;\r\n  font-weight: normal;\r\n  line-height: 1;\r\n  color: #2980b9;\r\n  text-align: center;\r\n  -webkit-transform: translateY(-50%);\r\n      -ms-transform: translateY(-50%);\r\n       -o-transform: translateY(-50%);\r\n          transform: translateY(-50%);\r\n\r\n  -webkit-font-smoothing: antialiased;\r\n  -moz-osx-font-smoothing: grayscale;\r\n}\r\n.context-menu-icon.context-menu-icon--fa.context-menu-hover:before {\r\n  color: #fff;\r\n}\r\n.context-menu-icon.context-menu-icon--fa.context-menu-disabled::before {\r\n  color: #bbb;\r\n}\r\n\r\n.context-menu-list {\r\n  position: absolute; \r\n  display: inline-block;\r\n  min-width: 13em;\r\n  max-width: 26em;\r\n  padding: .25em 0;\r\n  margin: .3em;\r\n  font-family: inherit;\r\n  font-size: inherit;\r\n  list-style-type: none;\r\n  background: #fff;\r\n  border: 1px solid #bebebe;\r\n  border-radius: .2em;\r\n  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .5);\r\n          box-shadow: 0 2px 5px rgba(0, 0, 0, .5);\r\n}\r\n\r\n.context-menu-item {\r\n  position: relative;\r\n  padding: .2em 2em;\r\n  color: #2f2f2f;\r\n  -webkit-user-select: none;\r\n     -moz-user-select: none;\r\n      -ms-user-select: none;\r\n          user-select: none; \r\n  background-color: #fff;\r\n}\r\n\r\n.context-menu-separator {\r\n  padding: 0; \r\n  margin: .35em 0;\r\n  border-bottom: 1px solid #e6e6e6;\r\n}\r\n\r\n.context-menu-item > label > input,\r\n.context-menu-item > label > textarea {\r\n  -webkit-user-select: text;\r\n     -moz-user-select: text;\r\n      -ms-user-select: text;\r\n          user-select: text;\r\n}\r\n\r\n.context-menu-item.context-menu-hover {\r\n  color: #fff;\r\n  cursor: pointer; \r\n  background-color: #2980b9;\r\n}\r\n\r\n.context-menu-item.context-menu-disabled {\r\n  color: #bbb;\r\n  cursor: default; \r\n  background-color: #fff;\r\n}\r\n\r\n.context-menu-input.context-menu-hover {\r\n  color: #2f2f2f; \r\n  cursor: default;\r\n}\r\n\r\n.context-menu-submenu:after {\r\n  position: absolute;\r\n  top: 50%;\r\n  right: .5em;\r\n  z-index: 1; \r\n  width: 0;\r\n  height: 0;\r\n  content: '';\r\n  border-color: transparent transparent transparent #2f2f2f;\r\n  border-style: solid;\r\n  border-width: .25em 0 .25em .25em;\r\n  -webkit-transform: translateY(-50%);\r\n      -ms-transform: translateY(-50%);\r\n       -o-transform: translateY(-50%);\r\n          transform: translateY(-50%);\r\n}\r\n\r\n/**\r\n * Inputs\r\n */\r\n.context-menu-item.context-menu-input {\r\n  padding: .3em .6em;\r\n}\r\n\r\n/* vertically align inside labels */\r\n.context-menu-input > label > * {\r\n  vertical-align: top;\r\n}\r\n\r\n/* position checkboxes and radios as icons */\r\n.context-menu-input > label > input[type=\"checkbox\"],\r\n.context-menu-input > label > input[type=\"radio\"] {\r\n  position: relative;\r\n  top: .12em; \r\n  margin-right: .4em;\r\n}\r\n\r\n.context-menu-input > label {\r\n  margin: 0;\r\n}\r\n\r\n.context-menu-input > label,\r\n.context-menu-input > label > input[type=\"text\"],\r\n.context-menu-input > label > textarea,\r\n.context-menu-input > label > select {\r\n  display: block;\r\n  width: 100%; \r\n  -webkit-box-sizing: border-box;\r\n     -moz-box-sizing: border-box;\r\n          box-sizing: border-box;\r\n}\r\n\r\n.context-menu-input > label > textarea {\r\n  height: 7em;\r\n}\r\n\r\n.context-menu-item > .context-menu-list {\r\n  top: .3em; \r\n  /* re-positioned by js */\r\n  right: -.3em;\r\n  display: none;\r\n}\r\n\r\n.context-menu-item.context-menu-visible > .context-menu-list {\r\n  display: block;\r\n}\r\n\r\n.context-menu-accesskey {\r\n  text-decoration: underline;\r\n}\r\n"
  },
  {
    "path": "media/jquery.contextMenu.js",
    "content": "/*!\r\n * jQuery contextMenu v2.4.2 - Plugin for simple contextMenu handling\r\n *\r\n * Version: v2.4.2\r\n *\r\n * Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)\r\n * Web: http://swisnl.github.io/jQuery-contextMenu/\r\n *\r\n * Copyright (c) 2011-2017 SWIS BV and contributors\r\n *\r\n * Licensed under\r\n *   MIT License http://www.opensource.org/licenses/mit-license\r\n *   GPL v3 http://opensource.org/licenses/GPL-3.0\r\n *\r\n * Date: 2017-01-02T09:03:00.678Z\r\n */\r\n\r\n// jscs:disable\r\n/* jshint ignore:start */\r\n(function (factory) {\r\n    if (typeof define === 'function' && define.amd) {\r\n        // AMD. Register as anonymous module.\r\n        define(['jquery'], factory);\r\n    } else if (typeof exports === 'object') {\r\n        // Node / CommonJS\r\n        factory(require('jquery'));\r\n    } else {\r\n        // Browser globals.\r\n        factory(jQuery);\r\n    }\r\n})(function ($) {\r\n\r\n    'use strict';\r\n\r\n    // TODO: -\r\n    // ARIA stuff: menuitem, menuitemcheckbox und menuitemradio\r\n    // create <menu> structure if $.support[htmlCommand || htmlMenuitem] and !opt.disableNative\r\n\r\n    // determine html5 compatibility\r\n    $.support.htmlMenuitem = ('HTMLMenuItemElement' in window);\r\n    $.support.htmlCommand = ('HTMLCommandElement' in window);\r\n    $.support.eventSelectstart = ('onselectstart' in document.documentElement);\r\n    /* // should the need arise, test for css user-select\r\n     $.support.cssUserSelect = (function(){\r\n     var t = false,\r\n     e = document.createElement('div');\r\n\r\n     $.each('Moz|Webkit|Khtml|O|ms|Icab|'.split('|'), function(i, prefix) {\r\n     var propCC = prefix + (prefix ? 'U' : 'u') + 'serSelect',\r\n     prop = (prefix ? ('-' + prefix.toLowerCase() + '-') : '') + 'user-select';\r\n\r\n     e.style.cssText = prop + ': text;';\r\n     if (e.style[propCC] == 'text') {\r\n     t = true;\r\n     return false;\r\n     }\r\n\r\n     return true;\r\n     });\r\n\r\n     return t;\r\n     })();\r\n     */\r\n\r\n\r\n    if (!$.ui || !$.widget) {\r\n        // duck punch $.cleanData like jQueryUI does to get that remove event\r\n        $.cleanData = (function (orig) {\r\n            return function (elems) {\r\n                var events, elem, i;\r\n                for (i = 0; elems[i] != null; i++) {\r\n                    elem = elems[i];\r\n                    try {\r\n                        // Only trigger remove when necessary to save time\r\n                        events = $._data(elem, 'events');\r\n                        if (events && events.remove) {\r\n                            $(elem).triggerHandler('remove');\r\n                        }\r\n\r\n                        // Http://bugs.jquery.com/ticket/8235\r\n                    } catch (e) {}\r\n                }\r\n                orig(elems);\r\n            };\r\n        })($.cleanData);\r\n    }\r\n    /* jshint ignore:end */\r\n    // jscs:enable\r\n\r\n    var // currently active contextMenu trigger\r\n        $currentTrigger = null,\r\n    // is contextMenu initialized with at least one menu?\r\n        initialized = false,\r\n    // window handle\r\n        $win = $(window),\r\n    // number of registered menus\r\n        counter = 0,\r\n    // mapping selector to namespace\r\n        namespaces = {},\r\n    // mapping namespace to options\r\n        menus = {},\r\n    // custom command type handlers\r\n        types = {},\r\n    // default values\r\n        defaults = {\r\n            // selector of contextMenu trigger\r\n            selector: null,\r\n            // where to append the menu to\r\n            appendTo: null,\r\n            // method to trigger context menu [\"right\", \"left\", \"hover\"]\r\n            trigger: 'right',\r\n            // hide menu when mouse leaves trigger / menu elements\r\n            autoHide: false,\r\n            // ms to wait before showing a hover-triggered context menu\r\n            delay: 200,\r\n            // flag denoting if a second trigger should simply move (true) or rebuild (false) an open menu\r\n            // as long as the trigger happened on one of the trigger-element's child nodes\r\n            reposition: true,\r\n\r\n\t          //ability to select submenu\r\n\t          selectableSubMenu: false,\r\n            \r\n            // Default classname configuration to be able avoid conflicts in frameworks\r\n            classNames : {\r\n                hover: 'context-menu-hover', // Item hover\r\n                disabled: 'context-menu-disabled', // Item disabled\r\n                visible: 'context-menu-visible', // Item visible\r\n                notSelectable: 'context-menu-not-selectable', // Item not selectable\r\n\r\n                icon: 'context-menu-icon',\r\n                iconEdit: 'context-menu-icon-edit',\r\n                iconCut: 'context-menu-icon-cut',\r\n                iconCopy: 'context-menu-icon-copy',\r\n                iconPaste: 'context-menu-icon-paste',\r\n                iconDelete: 'context-menu-icon-delete',\r\n                iconAdd: 'context-menu-icon-add',\r\n                iconQuit: 'context-menu-icon-quit',\r\n                iconLoadingClass: 'context-menu-icon-loading'\r\n            },\r\n\r\n            // determine position to show menu at\r\n            determinePosition: function ($menu) {\r\n                // position to the lower middle of the trigger element\r\n                if ($.ui && $.ui.position) {\r\n                    // .position() is provided as a jQuery UI utility\r\n                    // (...and it won't work on hidden elements)\r\n                    $menu.css('display', 'block').position({\r\n                        my: 'center top',\r\n                        at: 'center bottom',\r\n                        of: this,\r\n                        offset: '0 5',\r\n                        collision: 'fit'\r\n                    }).css('display', 'none');\r\n                } else {\r\n                    // determine contextMenu position\r\n                    var offset = this.offset();\r\n                    offset.top += this.outerHeight();\r\n                    offset.left += this.outerWidth() / 2 - $menu.outerWidth() / 2;\r\n                    $menu.css(offset);\r\n                }\r\n            },\r\n            // position menu\r\n            position: function (opt, x, y) {\r\n                var offset;\r\n                // determine contextMenu position\r\n                if (!x && !y) {\r\n                    opt.determinePosition.call(this, opt.$menu);\r\n                    return;\r\n                } else if (x === 'maintain' && y === 'maintain') {\r\n                    // x and y must not be changed (after re-show on command click)\r\n                    offset = opt.$menu.position();\r\n                } else {\r\n                    // x and y are given (by mouse event)\r\n                    offset = {top: y, left: x};\r\n                }\r\n\r\n                // correct offset if viewport demands it\r\n                var bottom = $win.scrollTop() + $win.height(),\r\n                    right = $win.scrollLeft() + $win.width(),\r\n                    height = opt.$menu.outerHeight(),\r\n                    width = opt.$menu.outerWidth();\r\n\r\n                if (offset.top + height > bottom) {\r\n                    offset.top -= height;\r\n                }\r\n\r\n                if (offset.top < 0) {\r\n                    offset.top = 0;\r\n                }\r\n\r\n                if (offset.left + width > right) {\r\n                    offset.left -= width;\r\n                }\r\n\r\n                if (offset.left < 0) {\r\n                    offset.left = 0;\r\n                }\r\n\r\n                opt.$menu.css(offset);\r\n            },\r\n            // position the sub-menu\r\n            positionSubmenu: function ($menu) {\r\n                if ($menu === undefined) {\r\n                    // When user hovers over item (which has sub items) handle.focusItem will call this.\r\n                    // but the submenu does not exist yet if opt.items is a promise. just return, will\r\n                    // call positionSubmenu after promise is completed.\r\n                    return;\r\n                }\r\n                if ($.ui && $.ui.position) {\r\n                    // .position() is provided as a jQuery UI utility\r\n                    // (...and it won't work on hidden elements)\r\n                    $menu.css('display', 'block').position({\r\n                        my: 'left top-5',\r\n                        at: 'right top',\r\n                        of: this,\r\n                        collision: 'flipfit fit'\r\n                    }).css('display', '');\r\n                } else {\r\n                    // determine contextMenu position\r\n                    var offset = {\r\n                        top: -9,\r\n                        left: this.outerWidth() - 5\r\n                    };\r\n                    $menu.css(offset);\r\n                }\r\n            },\r\n            // offset to add to zIndex\r\n            zIndex: 1,\r\n            // show hide animation settings\r\n            animation: {\r\n                duration: 50,\r\n                show: 'slideDown',\r\n                hide: 'slideUp'\r\n            },\r\n            // events\r\n            events: {\r\n                show: $.noop,\r\n                hide: $.noop\r\n            },\r\n            // default callback\r\n            callback: null,\r\n            // list of contextMenu items\r\n            items: {}\r\n        },\r\n    // mouse position for hover activation\r\n        hoveract = {\r\n            timer: null,\r\n            pageX: null,\r\n            pageY: null\r\n        },\r\n    // determine zIndex\r\n        zindex = function ($t) {\r\n            var zin = 0,\r\n                $tt = $t;\r\n\r\n            while (true) {\r\n                zin = Math.max(zin, parseInt($tt.css('z-index'), 10) || 0);\r\n                $tt = $tt.parent();\r\n                if (!$tt || !$tt.length || 'html body'.indexOf($tt.prop('nodeName').toLowerCase()) > -1) {\r\n                    break;\r\n                }\r\n            }\r\n            return zin;\r\n        },\r\n    // event handlers\r\n        handle = {\r\n            // abort anything\r\n            abortevent: function (e) {\r\n                e.preventDefault();\r\n                e.stopImmediatePropagation();\r\n            },\r\n            // contextmenu show dispatcher\r\n            contextmenu: function (e) {\r\n                var $this = $(this);\r\n\r\n                // disable actual context-menu if we are using the right mouse button as the trigger\r\n                if (e.data.trigger === 'right') {\r\n                    e.preventDefault();\r\n                    e.stopImmediatePropagation();\r\n                }\r\n\r\n                // abort native-triggered events unless we're triggering on right click\r\n                if ((e.data.trigger !== 'right' && e.data.trigger !== 'demand') && e.originalEvent) {\r\n                    return;\r\n                }\r\n\r\n                // Let the current contextmenu decide if it should show or not based on its own trigger settings\r\n                if (e.mouseButton !== undefined && e.data) {\r\n                    if (!(e.data.trigger === 'left' && e.mouseButton === 0) && !(e.data.trigger === 'right' && e.mouseButton === 2)) {\r\n                        // Mouse click is not valid.\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                // abort event if menu is visible for this trigger\r\n                if ($this.hasClass('context-menu-active')) {\r\n                    return;\r\n                }\r\n\r\n                if (!$this.hasClass('context-menu-disabled')) {\r\n                    // theoretically need to fire a show event at <menu>\r\n                    // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#context-menus\r\n                    // var evt = jQuery.Event(\"show\", { data: data, pageX: e.pageX, pageY: e.pageY, relatedTarget: this });\r\n                    // e.data.$menu.trigger(evt);\r\n\r\n                    $currentTrigger = $this;\r\n                    if (e.data.build) {\r\n                        var built = e.data.build($currentTrigger, e);\r\n                        // abort if build() returned false\r\n                        if (built === false) {\r\n                            return;\r\n                        }\r\n\r\n                        // dynamically build menu on invocation\r\n                        e.data = $.extend(true, {}, defaults, e.data, built || {});\r\n\r\n                        // abort if there are no items to display\r\n                        if (!e.data.items || $.isEmptyObject(e.data.items)) {\r\n                            // Note: jQuery captures and ignores errors from event handlers\r\n                            if (window.console) {\r\n                                (console.error || console.log).call(console, 'No items specified to show in contextMenu');\r\n                            }\r\n\r\n                            throw new Error('No Items specified');\r\n                        }\r\n\r\n                        // backreference for custom command type creation\r\n                        e.data.$trigger = $currentTrigger;\r\n\r\n                        op.create(e.data);\r\n                    }\r\n                    var showMenu = false;\r\n                    for (var item in e.data.items) {\r\n                        if (e.data.items.hasOwnProperty(item)) {\r\n                            var visible;\r\n                            if ($.isFunction(e.data.items[item].visible)) {\r\n                                visible = e.data.items[item].visible.call($(e.currentTarget), item, e.data);\r\n                            } else if (typeof e.data.items[item] !== 'undefined' && e.data.items[item].visible) {\r\n                                visible = e.data.items[item].visible === true;\r\n                            } else {\r\n                                visible = true;\r\n                            }\r\n                            if (visible) {\r\n                                showMenu = true;\r\n                            }\r\n                        }\r\n                    }\r\n                    if (showMenu) {\r\n                        // show menu\r\n                        op.show.call($this, e.data, e.pageX, e.pageY);\r\n                    }\r\n                }\r\n            },\r\n            // contextMenu left-click trigger\r\n            click: function (e) {\r\n                e.preventDefault();\r\n                e.stopImmediatePropagation();\r\n                $(this).trigger($.Event('contextmenu', {data: e.data, pageX: e.pageX, pageY: e.pageY}));\r\n            },\r\n            // contextMenu right-click trigger\r\n            mousedown: function (e) {\r\n                // register mouse down\r\n                var $this = $(this);\r\n\r\n                // hide any previous menus\r\n                if ($currentTrigger && $currentTrigger.length && !$currentTrigger.is($this)) {\r\n                    $currentTrigger.data('contextMenu').$menu.trigger('contextmenu:hide');\r\n                }\r\n\r\n                // activate on right click\r\n                if (e.button === 2) {\r\n                    $currentTrigger = $this.data('contextMenuActive', true);\r\n                }\r\n            },\r\n            // contextMenu right-click trigger\r\n            mouseup: function (e) {\r\n                // show menu\r\n                var $this = $(this);\r\n                if ($this.data('contextMenuActive') && $currentTrigger && $currentTrigger.length && $currentTrigger.is($this) && !$this.hasClass('context-menu-disabled')) {\r\n                    e.preventDefault();\r\n                    e.stopImmediatePropagation();\r\n                    $currentTrigger = $this;\r\n                    $this.trigger($.Event('contextmenu', {data: e.data, pageX: e.pageX, pageY: e.pageY}));\r\n                }\r\n\r\n                $this.removeData('contextMenuActive');\r\n            },\r\n            // contextMenu hover trigger\r\n            mouseenter: function (e) {\r\n                var $this = $(this),\r\n                    $related = $(e.relatedTarget),\r\n                    $document = $(document);\r\n\r\n                // abort if we're coming from a menu\r\n                if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\r\n                    return;\r\n                }\r\n\r\n                // abort if a menu is shown\r\n                if ($currentTrigger && $currentTrigger.length) {\r\n                    return;\r\n                }\r\n\r\n                hoveract.pageX = e.pageX;\r\n                hoveract.pageY = e.pageY;\r\n                hoveract.data = e.data;\r\n                $document.on('mousemove.contextMenuShow', handle.mousemove);\r\n                hoveract.timer = setTimeout(function () {\r\n                    hoveract.timer = null;\r\n                    $document.off('mousemove.contextMenuShow');\r\n                    $currentTrigger = $this;\r\n                    $this.trigger($.Event('contextmenu', {\r\n                        data: hoveract.data,\r\n                        pageX: hoveract.pageX,\r\n                        pageY: hoveract.pageY\r\n                    }));\r\n                }, e.data.delay);\r\n            },\r\n            // contextMenu hover trigger\r\n            mousemove: function (e) {\r\n                hoveract.pageX = e.pageX;\r\n                hoveract.pageY = e.pageY;\r\n            },\r\n            // contextMenu hover trigger\r\n            mouseleave: function (e) {\r\n                // abort if we're leaving for a menu\r\n                var $related = $(e.relatedTarget);\r\n                if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\r\n                    return;\r\n                }\r\n\r\n                try {\r\n                    clearTimeout(hoveract.timer);\r\n                } catch (e) {\r\n                }\r\n\r\n                hoveract.timer = null;\r\n            },\r\n            // click on layer to hide contextMenu\r\n            layerClick: function (e) {\r\n                var $this = $(this),\r\n                    root = $this.data('contextMenuRoot'),\r\n                    button = e.button,\r\n                    x = e.pageX,\r\n                    y = e.pageY,\r\n                    target,\r\n                    offset;\r\n\r\n                e.preventDefault();\r\n                e.stopImmediatePropagation();\r\n\r\n                setTimeout(function () {\r\n                    var $window;\r\n                    var triggerAction = ((root.trigger === 'left' && button === 0) || (root.trigger === 'right' && button === 2));\r\n\r\n                    // find the element that would've been clicked, wasn't the layer in the way\r\n                    if (document.elementFromPoint && root.$layer) {\r\n                        root.$layer.hide();\r\n                        target = document.elementFromPoint(x - $win.scrollLeft(), y - $win.scrollTop());\r\n                        \r\n                        // also need to try and focus this element if we're in a contenteditable area,\r\n                        // as the layer will prevent the browser mouse action we want\r\n                        if (target.isContentEditable) {\r\n                           var range = document.createRange(),\r\n                              sel = window.getSelection();\r\n                           range.selectNode(target);\r\n                           range.collapse(true);\r\n                           sel.removeAllRanges();\r\n                           sel.addRange(range);\r\n                        }\r\n                        \r\n                        root.$layer.show();\r\n                    }\r\n\r\n                    if (root.reposition && triggerAction) {\r\n                        if (document.elementFromPoint) {\r\n                            if (root.$trigger.is(target) || root.$trigger.has(target).length) {\r\n                                root.position.call(root.$trigger, root, x, y);\r\n                                return;\r\n                            }\r\n                        } else {\r\n                            offset = root.$trigger.offset();\r\n                            $window = $(window);\r\n                            // while this looks kinda awful, it's the best way to avoid\r\n                            // unnecessarily calculating any positions\r\n                            offset.top += $window.scrollTop();\r\n                            if (offset.top <= e.pageY) {\r\n                                offset.left += $window.scrollLeft();\r\n                                if (offset.left <= e.pageX) {\r\n                                    offset.bottom = offset.top + root.$trigger.outerHeight();\r\n                                    if (offset.bottom >= e.pageY) {\r\n                                        offset.right = offset.left + root.$trigger.outerWidth();\r\n                                        if (offset.right >= e.pageX) {\r\n                                            // reposition\r\n                                            root.position.call(root.$trigger, root, x, y);\r\n                                            return;\r\n                                        }\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (target && triggerAction) {\r\n                        root.$trigger.one('contextmenu:hidden', function () {\r\n                            $(target).contextMenu({ x: x, y: y, button: button });\r\n                        });\r\n                    }\r\n\r\n                    if (root != null && root.$menu != null) {\r\n                        root.$menu.trigger('contextmenu:hide');\r\n                    }\r\n                }, 50);\r\n            },\r\n            // key handled :hover\r\n            keyStop: function (e, opt) {\r\n                if (!opt.isInput) {\r\n                    e.preventDefault();\r\n                }\r\n\r\n                e.stopPropagation();\r\n            },\r\n            key: function (e) {\r\n\r\n                var opt = {};\r\n\r\n                // Only get the data from $currentTrigger if it exists\r\n                if ($currentTrigger) {\r\n                    opt = $currentTrigger.data('contextMenu') || {};\r\n                }\r\n                // If the trigger happen on a element that are above the contextmenu do this\r\n                if (opt.zIndex === undefined) {\r\n                    opt.zIndex = 0;\r\n\t\t\t\t}\r\n                var targetZIndex = 0;\r\n                var getZIndexOfTriggerTarget = function (target) {\r\n\t\t\t\t\tif (target.style.zIndex !== '') {\r\n\t\t\t\t\t\ttargetZIndex = target.style.zIndex;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (target.offsetParent !== null && target.offsetParent !== undefined) {\r\n\t\t\t\t\t\t\tgetZIndexOfTriggerTarget(target.offsetParent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (target.parentElement !== null && target.parentElement !== undefined) {\r\n\t\t\t\t\t\t\tgetZIndexOfTriggerTarget(target.parentElement);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n                };\r\n                getZIndexOfTriggerTarget(e.target);\r\n                // If targetZIndex is heigher then opt.zIndex dont progress any futher.\r\n                // This is used to make sure that if you are using a dialog with a input / textarea / contenteditable div\r\n                // and its above the contextmenu it wont steal keys events\r\n                if (targetZIndex > opt.zIndex) {\r\n                    return;\r\n\t\t\t\t}\r\n                switch (e.keyCode) {\r\n                    case 9:\r\n                    case 38: // up\r\n                        handle.keyStop(e, opt);\r\n                        // if keyCode is [38 (up)] or [9 (tab) with shift]\r\n                        if (opt.isInput) {\r\n                            if (e.keyCode === 9 && e.shiftKey) {\r\n                                e.preventDefault();\r\n                                if(opt.$selected) {\r\n                                    opt.$selected.find('input, textarea, select').blur();\r\n                                }\r\n                                if (opt.$menu != null) opt.$menu.trigger('prevcommand');\r\n                                return;\r\n                            } else if (e.keyCode === 38 && opt.$selected.find('input, textarea, select').prop('type') === 'checkbox') {\r\n                                // checkboxes don't capture this key\r\n                                e.preventDefault();\r\n                                return;\r\n                            }\r\n                        } else if (e.keyCode !== 9 || e.shiftKey) {\r\n                            if (opt.$menu != null) opt.$menu.trigger('prevcommand');\r\n                            return;\r\n                        }\r\n                        break;\r\n                    // omitting break;\r\n                    // case 9: // tab - reached through omitted break;\r\n                    case 40: // down\r\n                        handle.keyStop(e, opt);\r\n                        if (opt.isInput) {\r\n                            if (e.keyCode === 9) {\r\n                                e.preventDefault();\r\n                                if(opt.$selected) {\r\n                                    opt.$selected.find('input, textarea, select').blur();\r\n                                }\r\n                                if (opt.$menu != null) opt.$menu.trigger('nextcommand');\r\n                                return;\r\n                            } else if (e.keyCode === 40 && opt.$selected.find('input, textarea, select').prop('type') === 'checkbox') {\r\n                                // checkboxes don't capture this key\r\n                                e.preventDefault();\r\n                                return;\r\n                            }\r\n                        } else {\r\n                            if (opt.$menu != null) opt.$menu.trigger('nextcommand');\r\n                            return;\r\n                        }\r\n                        break;\r\n\r\n                    case 37: // left\r\n                        handle.keyStop(e, opt);\r\n                        if (opt.isInput || !opt.$selected || !opt.$selected.length) {\r\n                            break;\r\n                        }\r\n\r\n                        if (!opt.$selected.parent().hasClass('context-menu-root')) {\r\n                            var $parent = opt.$selected.parent().parent();\r\n                            opt.$selected.trigger('contextmenu:blur');\r\n                            opt.$selected = $parent;\r\n                            return;\r\n                        }\r\n                        break;\r\n\r\n                    case 39: // right\r\n                        handle.keyStop(e, opt);\r\n                        if (opt.isInput || !opt.$selected || !opt.$selected.length) {\r\n                            break;\r\n                        }\r\n\r\n                        var itemdata = opt.$selected.data('contextMenu') || {};\r\n                        if (itemdata.$menu && opt.$selected.hasClass('context-menu-submenu')) {\r\n                            opt.$selected = null;\r\n                            itemdata.$selected = null;\r\n                            itemdata.$menu.trigger('nextcommand');\r\n                            return;\r\n                        }\r\n                        break;\r\n\r\n                    case 35: // end\r\n                    case 36: // home\r\n                        if (opt.$selected && opt.$selected.find('input, textarea, select').length) {\r\n                            return;\r\n                        } else {\r\n                            (opt.$selected && opt.$selected.parent() || opt.$menu)\r\n                                .children(':not(.' + opt.classNames.disabled + ', .' + opt.classNames.notSelectable + ')')[e.keyCode === 36 ? 'first' : 'last']()\r\n                                .trigger('contextmenu:focus');\r\n                            e.preventDefault();\r\n                            return;\r\n                        }\r\n                        break;\r\n\r\n                    case 13: // enter\r\n                        handle.keyStop(e, opt);\r\n                        if (opt.isInput) {\r\n                            if (opt.$selected && !opt.$selected.is('textarea, select')) {\r\n                                e.preventDefault();\r\n                                return;\r\n                            }\r\n                            break;\r\n                        }\r\n                        if (typeof opt.$selected !== 'undefined' && opt.$selected !== null) {\r\n                            opt.$selected.trigger('mouseup');\r\n                        }\r\n                        return;\r\n\r\n                    case 32: // space\r\n                    case 33: // page up\r\n                    case 34: // page down\r\n                        // prevent browser from scrolling down while menu is visible\r\n                        handle.keyStop(e, opt);\r\n                        return;\r\n\r\n                    case 27: // esc\r\n                        handle.keyStop(e, opt);\r\n                        if (opt.$menu != null) opt.$menu.trigger('contextmenu:hide');\r\n                        return;\r\n\r\n                    default: // 0-9, a-z\r\n                        var k = (String.fromCharCode(e.keyCode)).toUpperCase();\r\n                        if (opt.accesskeys && opt.accesskeys[k]) {\r\n                            // according to the specs accesskeys must be invoked immediately\r\n                            opt.accesskeys[k].$node.trigger(opt.accesskeys[k].$menu ? 'contextmenu:focus' : 'mouseup');\r\n                            return;\r\n                        }\r\n                        break;\r\n                }\r\n                // pass event to selected item,\r\n                // stop propagation to avoid endless recursion\r\n                e.stopPropagation();\r\n                if (typeof opt.$selected !== 'undefined' && opt.$selected !== null) {\r\n                    opt.$selected.trigger(e);\r\n                }\r\n            },\r\n            // select previous possible command in menu\r\n            prevItem: function (e) {\r\n                e.stopPropagation();\r\n                var opt = $(this).data('contextMenu') || {};\r\n                var root = $(this).data('contextMenuRoot') || {};\r\n\r\n                // obtain currently selected menu\r\n                if (opt.$selected) {\r\n                    var $s = opt.$selected;\r\n                    opt = opt.$selected.parent().data('contextMenu') || {};\r\n                    opt.$selected = $s;\r\n                }\r\n\r\n                var $children = opt.$menu.children(),\r\n                    $prev = !opt.$selected || !opt.$selected.prev().length ? $children.last() : opt.$selected.prev(),\r\n                    $round = $prev;\r\n\r\n                // skip disabled or hidden elements\r\n                while ($prev.hasClass(root.classNames.disabled) || $prev.hasClass(root.classNames.notSelectable) || $prev.is(':hidden')) {\r\n                    if ($prev.prev().length) {\r\n                        $prev = $prev.prev();\r\n                    } else {\r\n                        $prev = $children.last();\r\n                    }\r\n                    if ($prev.is($round)) {\r\n                        // break endless loop\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                // leave current\r\n                if (opt.$selected) {\r\n                    handle.itemMouseleave.call(opt.$selected.get(0), e);\r\n                }\r\n\r\n                // activate next\r\n                handle.itemMouseenter.call($prev.get(0), e);\r\n\r\n                // focus input\r\n                var $input = $prev.find('input, textarea, select');\r\n                if ($input.length) {\r\n                    $input.focus();\r\n                }\r\n            },\r\n            // select next possible command in menu\r\n            nextItem: function (e) {\r\n                e.stopPropagation();\r\n                var opt = $(this).data('contextMenu') || {};\r\n                var root = $(this).data('contextMenuRoot') || {};\r\n\r\n                // obtain currently selected menu\r\n                if (opt.$selected) {\r\n                    var $s = opt.$selected;\r\n                    opt = opt.$selected.parent().data('contextMenu') || {};\r\n                    opt.$selected = $s;\r\n                }\r\n\r\n                var $children = opt.$menu.children(),\r\n                    $next = !opt.$selected || !opt.$selected.next().length ? $children.first() : opt.$selected.next(),\r\n                    $round = $next;\r\n\r\n                // skip disabled\r\n                while ($next.hasClass(root.classNames.disabled) || $next.hasClass(root.classNames.notSelectable) || $next.is(':hidden')) {\r\n                    if ($next.next().length) {\r\n                        $next = $next.next();\r\n                    } else {\r\n                        $next = $children.first();\r\n                    }\r\n                    if ($next.is($round)) {\r\n                        // break endless loop\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                // leave current\r\n                if (opt.$selected) {\r\n                    handle.itemMouseleave.call(opt.$selected.get(0), e);\r\n                }\r\n\r\n                // activate next\r\n                handle.itemMouseenter.call($next.get(0), e);\r\n\r\n                // focus input\r\n                var $input = $next.find('input, textarea, select');\r\n                if ($input.length) {\r\n                    $input.focus();\r\n                }\r\n            },\r\n            // flag that we're inside an input so the key handler can act accordingly\r\n            focusInput: function () {\r\n                var $this = $(this).closest('.context-menu-item'),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                root.$selected = opt.$selected = $this;\r\n                root.isInput = opt.isInput = true;\r\n            },\r\n            // flag that we're inside an input so the key handler can act accordingly\r\n            blurInput: function () {\r\n                var $this = $(this).closest('.context-menu-item'),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                root.isInput = opt.isInput = false;\r\n            },\r\n            // :hover on menu\r\n            menuMouseenter: function () {\r\n                var root = $(this).data().contextMenuRoot;\r\n                root.hovering = true;\r\n            },\r\n            // :hover on menu\r\n            menuMouseleave: function (e) {\r\n                var root = $(this).data().contextMenuRoot;\r\n                if (root.$layer && root.$layer.is(e.relatedTarget)) {\r\n                    root.hovering = false;\r\n                }\r\n            },\r\n            // :hover done manually so key handling is possible\r\n            itemMouseenter: function (e) {\r\n                var $this = $(this),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                root.hovering = true;\r\n\r\n                // abort if we're re-entering\r\n                if (e && root.$layer && root.$layer.is(e.relatedTarget)) {\r\n                    e.preventDefault();\r\n                    e.stopImmediatePropagation();\r\n                }\r\n\r\n                // make sure only one item is selected\r\n                (opt.$menu ? opt : root).$menu\r\n                    .children('.' + root.classNames.hover).trigger('contextmenu:blur')\r\n                    .children('.hover').trigger('contextmenu:blur');\r\n\r\n                if ($this.hasClass(root.classNames.disabled) || $this.hasClass(root.classNames.notSelectable)) {\r\n                    opt.$selected = null;\r\n                    return;\r\n                }\r\n\r\n                $this.trigger('contextmenu:focus');\r\n            },\r\n            // :hover done manually so key handling is possible\r\n            itemMouseleave: function (e) {\r\n                var $this = $(this),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                if (root !== opt && root.$layer && root.$layer.is(e.relatedTarget)) {\r\n                    if (typeof root.$selected !== 'undefined' && root.$selected !== null) {\r\n                        root.$selected.trigger('contextmenu:blur');\r\n                    }\r\n                    e.preventDefault();\r\n                    e.stopImmediatePropagation();\r\n                    root.$selected = opt.$selected = opt.$node;\r\n                    return;\r\n                }\r\n\r\n                $this.trigger('contextmenu:blur');\r\n            },\r\n            // contextMenu item click\r\n            itemClick: function (e) {\r\n                var $this = $(this),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot,\r\n                    key = data.contextMenuKey,\r\n                    callback;\r\n\r\n                // abort if the key is unknown or disabled or is a menu\r\n                if (!opt.items[key] || $this.is('.' + root.classNames.disabled + ', .context-menu-separator, .' + root.classNames.notSelectable) || ($this.is('.context-menu-submenu') && root.selectableSubMenu === false )) {\r\n                    return;\r\n                }\r\n\r\n                e.preventDefault();\r\n                e.stopImmediatePropagation();\r\n\r\n                if ($.isFunction(opt.callbacks[key]) && Object.prototype.hasOwnProperty.call(opt.callbacks, key)) {\r\n                    // item-specific callback\r\n                    callback = opt.callbacks[key];\r\n                } else if ($.isFunction(root.callback)) {\r\n                    // default callback\r\n                    callback = root.callback;\r\n                } else {\r\n                    // no callback, no action\r\n                    return;\r\n                }\r\n\r\n                // hide menu if callback doesn't stop that\r\n                if (callback.call(root.$trigger, key, root) !== false) {\r\n                    root.$menu.trigger('contextmenu:hide');\r\n                } else if (root.$menu.parent().length) {\r\n                    op.update.call(root.$trigger, root);\r\n                }\r\n            },\r\n            // ignore click events on input elements\r\n            inputClick: function (e) {\r\n                e.stopImmediatePropagation();\r\n            },\r\n            // hide <menu>\r\n            hideMenu: function (e, data) {\r\n                var root = $(this).data('contextMenuRoot');\r\n                op.hide.call(root.$trigger, root, data && data.force);\r\n            },\r\n            // focus <command>\r\n            focusItem: function (e) {\r\n                e.stopPropagation();\r\n                var $this = $(this),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                if ($this.hasClass(root.classNames.disabled) || $this.hasClass(root.classNames.notSelectable)) {\r\n                    return;\r\n                }\r\n\r\n                $this\r\n                    .addClass([root.classNames.hover, root.classNames.visible].join(' '))\r\n                    // select other items and included items\r\n                    .parent().find('.context-menu-item').not($this)\r\n                    .removeClass(root.classNames.visible)\r\n                    .filter('.' + root.classNames.hover)\r\n                    .trigger('contextmenu:blur');\r\n\r\n                // remember selected\r\n                opt.$selected = root.$selected = $this;\r\n\r\n                // position sub-menu - do after show so dumb $.ui.position can keep up\r\n                if (opt.$node) {\r\n                    root.positionSubmenu.call(opt.$node, opt.$menu);\r\n                }\r\n            },\r\n            // blur <command>\r\n            blurItem: function (e) {\r\n                e.stopPropagation();\r\n                var $this = $(this),\r\n                    data = $this.data(),\r\n                    opt = data.contextMenu,\r\n                    root = data.contextMenuRoot;\r\n\r\n                if (opt.autoHide) { // for tablets and touch screens this needs to remain\r\n                    $this.removeClass(root.classNames.visible);\r\n                }\r\n                $this.removeClass(root.classNames.hover);\r\n                opt.$selected = null;\r\n            }\r\n        },\r\n    // operations\r\n        op = {\r\n            show: function (opt, x, y) {\r\n                var $trigger = $(this),\r\n                    css = {};\r\n\r\n                // hide any open menus\r\n                $('#context-menu-layer').trigger('mousedown');\r\n\r\n                // backreference for callbacks\r\n                opt.$trigger = $trigger;\r\n\r\n                // show event\r\n                if (opt.events.show.call($trigger, opt) === false) {\r\n                    $currentTrigger = null;\r\n                    return;\r\n                }\r\n\r\n                // create or update context menu\r\n                op.update.call($trigger, opt);\r\n\r\n                // position menu\r\n                opt.position.call($trigger, opt, x, y);\r\n\r\n                // make sure we're in front\r\n                if (opt.zIndex) {\r\n                  var additionalZValue = opt.zIndex;\r\n                  // If opt.zIndex is a function, call the function to get the right zIndex.\r\n                  if (typeof opt.zIndex === 'function') {\r\n                      additionalZValue = opt.zIndex.call($trigger, opt);\r\n                  }\r\n                  css.zIndex = zindex($trigger) + additionalZValue;\r\n                }\r\n\r\n                // add layer\r\n                op.layer.call(opt.$menu, opt, css.zIndex);\r\n\r\n                // adjust sub-menu zIndexes\r\n                opt.$menu.find('ul').css('zIndex', css.zIndex + 1);\r\n\r\n                // position and show context menu\r\n                opt.$menu.css(css)[opt.animation.show](opt.animation.duration, function () {\r\n                    $trigger.trigger('contextmenu:visible');\r\n                });\r\n                // make options available and set state\r\n                $trigger\r\n                    .data('contextMenu', opt)\r\n                    .addClass('context-menu-active');\r\n\r\n                // register key handler\r\n                $(document).off('keydown.contextMenu').on('keydown.contextMenu', handle.key);\r\n                // register autoHide handler\r\n                if (opt.autoHide) {\r\n                    // mouse position handler\r\n                    $(document).on('mousemove.contextMenuAutoHide', function (e) {\r\n                        // need to capture the offset on mousemove,\r\n                        // since the page might've been scrolled since activation\r\n                        var pos = $trigger.offset();\r\n                        pos.right = pos.left + $trigger.outerWidth();\r\n                        pos.bottom = pos.top + $trigger.outerHeight();\r\n\r\n                        if (opt.$layer && !opt.hovering && (!(e.pageX >= pos.left && e.pageX <= pos.right) || !(e.pageY >= pos.top && e.pageY <= pos.bottom))) {\r\n                            /* Additional hover check after short time, you might just miss the edge of the menu */\r\n                            setTimeout(function () {\r\n                                if (!opt.hovering && opt.$menu != null) { opt.$menu.trigger('contextmenu:hide'); }\r\n                            }, 50);\r\n                        }\r\n                    });\r\n                }\r\n            },\r\n            hide: function (opt, force) {\r\n                var $trigger = $(this);\r\n                if (!opt) {\r\n                    opt = $trigger.data('contextMenu') || {};\r\n                }\r\n\r\n                // hide event\r\n                if (!force && opt.events && opt.events.hide.call($trigger, opt) === false) {\r\n                    return;\r\n                }\r\n\r\n                // remove options and revert state\r\n                $trigger\r\n                    .removeData('contextMenu')\r\n                    .removeClass('context-menu-active');\r\n\r\n                if (opt.$layer) {\r\n                    // keep layer for a bit so the contextmenu event can be aborted properly by opera\r\n                    setTimeout((function ($layer) {\r\n                        return function () {\r\n                            $layer.remove();\r\n                        };\r\n                    })(opt.$layer), 10);\r\n\r\n                    try {\r\n                        delete opt.$layer;\r\n                    } catch (e) {\r\n                        opt.$layer = null;\r\n                    }\r\n                }\r\n\r\n                // remove handle\r\n                $currentTrigger = null;\r\n                // remove selected\r\n                opt.$menu.find('.' + opt.classNames.hover).trigger('contextmenu:blur');\r\n                opt.$selected = null;\r\n                // collapse all submenus\r\n                opt.$menu.find('.' + opt.classNames.visible).removeClass(opt.classNames.visible);\r\n                // unregister key and mouse handlers\r\n                // $(document).off('.contextMenuAutoHide keydown.contextMenu'); // http://bugs.jquery.com/ticket/10705\r\n                $(document).off('.contextMenuAutoHide').off('keydown.contextMenu');\r\n                // hide menu\r\n                if(opt.$menu){\r\n                    opt.$menu[opt.animation.hide](opt.animation.duration, function () {\r\n                        // tear down dynamically built menu after animation is completed.\r\n                        if (opt.build) {\r\n                            opt.$menu.remove();\r\n                            $.each(opt, function (key) {\r\n                                switch (key) {\r\n                                    case 'ns':\r\n                                    case 'selector':\r\n                                    case 'build':\r\n                                    case 'trigger':\r\n                                        return true;\r\n\r\n                                    default:\r\n                                        opt[key] = undefined;\r\n                                        try {\r\n                                            delete opt[key];\r\n                                        } catch (e) {\r\n                                        }\r\n                                        return true;\r\n                                }\r\n                            });\r\n                        }\r\n\r\n                        setTimeout(function () {\r\n                            $trigger.trigger('contextmenu:hidden');\r\n                        }, 10);\r\n                    });\r\n                }\r\n            },\r\n            create: function (opt, root) {\r\n                if (root === undefined) {\r\n                    root = opt;\r\n                }\r\n                // create contextMenu\r\n                opt.$menu = $('<ul class=\"context-menu-list\"></ul>').addClass(opt.className || '').data({\r\n                    'contextMenu': opt,\r\n                    'contextMenuRoot': root\r\n                });\r\n\r\n                $.each(['callbacks', 'commands', 'inputs'], function (i, k) {\r\n                    opt[k] = {};\r\n                    if (!root[k]) {\r\n                        root[k] = {};\r\n                    }\r\n                });\r\n\r\n                if(!root.accesskeys){\r\n                    root.accesskeys = {};\r\n                }\r\n\r\n                function createNameNode(item) {\r\n                    var $name = $('<span></span>');\r\n                    if (item._accesskey) {\r\n                        if (item._beforeAccesskey) {\r\n                            $name.append(document.createTextNode(item._beforeAccesskey));\r\n                        }\r\n                        $('<span></span>')\r\n                            .addClass('context-menu-accesskey')\r\n                            .text(item._accesskey)\r\n                            .appendTo($name);\r\n                        if (item._afterAccesskey) {\r\n                            $name.append(document.createTextNode(item._afterAccesskey));\r\n                        }\r\n                    } else {\r\n                        if (item.isHtmlName) {\r\n                            // restrict use with access keys\r\n                            if (typeof item.accesskey !== 'undefined') {\r\n                                throw new Error('accesskeys are not compatible with HTML names and cannot be used together in the same item');\r\n                            }\r\n                            $name.html(item.name);\r\n                        } else {\r\n                            $name.text(item.name);\r\n                        }\r\n                    }\r\n                    return $name;\r\n                }\r\n\r\n                // create contextMenu items\r\n                $.each(opt.items, function (key, item) {\r\n                    var $t = $('<li class=\"context-menu-item\"></li>').addClass(item.className || ''),\r\n                        $label = null,\r\n                        $input = null;\r\n\r\n                    // iOS needs to see a click-event bound to an element to actually\r\n                    // have the TouchEvents infrastructure trigger the click event\r\n                    $t.on('click', $.noop);\r\n\r\n                    // Make old school string seperator a real item so checks wont be\r\n                    // akward later.\r\n                    // And normalize 'cm_separator' into 'cm_seperator'.\r\n                    if (typeof item === 'string' || item.type === 'cm_separator') {\r\n                        item = { type : 'cm_seperator' };\r\n                    }\r\n\r\n                    item.$node = $t.data({\r\n                        'contextMenu': opt,\r\n                        'contextMenuRoot': root,\r\n                        'contextMenuKey': key\r\n                    });\r\n\r\n                    // register accesskey\r\n                    // NOTE: the accesskey attribute should be applicable to any element, but Safari5 and Chrome13 still can't do that\r\n                    if (typeof item.accesskey !== 'undefined') {\r\n                        var aks = splitAccesskey(item.accesskey);\r\n                        for (var i = 0, ak; ak = aks[i]; i++) {\r\n                            if (!root.accesskeys[ak]) {\r\n                                root.accesskeys[ak] = item;\r\n                                var matched = item.name.match(new RegExp('^(.*?)(' + ak + ')(.*)$', 'i'));\r\n                                if (matched) {\r\n                                    item._beforeAccesskey = matched[1];\r\n                                    item._accesskey = matched[2];\r\n                                    item._afterAccesskey = matched[3];\r\n                                }\r\n                                break;\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (item.type && types[item.type]) {\r\n                        // run custom type handler\r\n                        types[item.type].call($t, item, opt, root);\r\n                        // register commands\r\n                        $.each([opt, root], function (i, k) {\r\n                            k.commands[key] = item;\r\n                            // Overwrite only if undefined or the item is appended to the root. This so it\r\n                            // doesn't overwrite callbacks of root elements if the name is the same.\r\n                            if ($.isFunction(item.callback) && (k.callbacks[key] === undefined || opt.type === undefined)) {\r\n                                k.callbacks[key] = item.callback;\r\n                            }\r\n                        });\r\n                    } else {\r\n                        // add label for input\r\n                        if (item.type === 'cm_seperator') {\r\n                            $t.addClass('context-menu-separator ' + root.classNames.notSelectable);\r\n                        } else if (item.type === 'html') {\r\n                            $t.addClass('context-menu-html ' + root.classNames.notSelectable);\r\n                        } else if (item.type === 'sub') {\r\n                           // We don't want to execute the next else-if if it is a sub.\r\n                        } else if (item.type) {\r\n                            $label = $('<label></label>').appendTo($t);\r\n                            createNameNode(item).appendTo($label);\r\n\r\n                            $t.addClass('context-menu-input');\r\n                            opt.hasTypes = true;\r\n                            $.each([opt, root], function (i, k) {\r\n                                k.commands[key] = item;\r\n                                k.inputs[key] = item;\r\n                            });\r\n                        } else if (item.items) {\r\n                            item.type = 'sub';\r\n                        }\r\n\r\n                        switch (item.type) {\r\n                            case 'cm_seperator':\r\n                                break;\r\n\r\n                            case 'text':\r\n                                $input = $('<input type=\"text\" value=\"1\" name=\"\" />')\r\n                                    .attr('name', 'context-menu-input-' + key)\r\n                                    .val(item.value || '')\r\n                                    .appendTo($label);\r\n                                break;\r\n\r\n                            case 'textarea':\r\n                                $input = $('<textarea name=\"\"></textarea>')\r\n                                    .attr('name', 'context-menu-input-' + key)\r\n                                    .val(item.value || '')\r\n                                    .appendTo($label);\r\n\r\n                                if (item.height) {\r\n                                    $input.height(item.height);\r\n                                }\r\n                                break;\r\n\r\n                            case 'checkbox':\r\n                                $input = $('<input type=\"checkbox\" value=\"1\" name=\"\" />')\r\n                                    .attr('name', 'context-menu-input-' + key)\r\n                                    .val(item.value || '')\r\n                                    .prop('checked', !!item.selected)\r\n                                    .prependTo($label);\r\n                                break;\r\n\r\n                            case 'radio':\r\n                                $input = $('<input type=\"radio\" value=\"1\" name=\"\" />')\r\n                                    .attr('name', 'context-menu-input-' + item.radio)\r\n                                    .val(item.value || '')\r\n                                    .prop('checked', !!item.selected)\r\n                                    .prependTo($label);\r\n                                break;\r\n\r\n                            case 'select':\r\n                                $input = $('<select name=\"\"></select>')\r\n                                    .attr('name', 'context-menu-input-' + key)\r\n                                    .appendTo($label);\r\n                                if (item.options) {\r\n                                    $.each(item.options, function (value, text) {\r\n                                        $('<option></option>').val(value).text(text).appendTo($input);\r\n                                    });\r\n                                    $input.val(item.selected);\r\n                                }\r\n                                break;\r\n\r\n                            case 'sub':\r\n                                createNameNode(item).appendTo($t);\r\n                                item.appendTo = item.$node;\r\n                                $t.data('contextMenu', item).addClass('context-menu-submenu');\r\n                                item.callback = null;\r\n\r\n                                // If item contains items, and this is a promise, we should create it later\r\n                                // check if subitems is of type promise. If it is a promise we need to create\r\n                                // it later, after promise has been resolved.\r\n                                if ('function' === typeof item.items.then) {\r\n                                  // probably a promise, process it, when completed it will create the sub menu's.\r\n                                  op.processPromises(item, root, item.items);\r\n                                } else {\r\n                                  // normal submenu.\r\n                                  op.create(item, root);\r\n                                }\r\n                                break;\r\n\r\n                            case 'html':\r\n                                $(item.html).appendTo($t);\r\n                                break;\r\n\r\n                            default:\r\n                                $.each([opt, root], function (i, k) {\r\n                                    k.commands[key] = item;\r\n                                    // Overwrite only if undefined or the item is appended to the root. This so it\r\n                                    // doesn't overwrite callbacks of root elements if the name is the same.\r\n                                    if ($.isFunction(item.callback) && (k.callbacks[key] === undefined || opt.type === undefined)) {\r\n                                        k.callbacks[key] = item.callback;\r\n                                    }\r\n                                });\r\n                                createNameNode(item).appendTo($t);\r\n                                break;\r\n                        }\r\n\r\n                        // disable key listener in <input>\r\n                        if (item.type && item.type !== 'sub' && item.type !== 'html' && item.type !== 'cm_seperator') {\r\n                            $input\r\n                                .on('focus', handle.focusInput)\r\n                                .on('blur', handle.blurInput);\r\n\r\n                            if (item.events) {\r\n                                $input.on(item.events, opt);\r\n                            }\r\n                        }\r\n\r\n                        // add icons\r\n                        if (item.icon) {\r\n                            if ($.isFunction(item.icon)) {\r\n                                item._icon = item.icon.call(this, this, $t, key, item);\r\n                            } else {\r\n                                if ( typeof(item.icon) === 'string' && item.icon.substring(0,3) === 'fa-' ) {\r\n                                    // to enable font awesome\r\n                                    item._icon = root.classNames.icon + ' ' + root.classNames.icon + '--fa fa ' + item.icon;\r\n                                } else {\r\n                                    item._icon = root.classNames.icon + ' ' + root.classNames.icon + '-' + item.icon;\r\n                                }\r\n                            }\r\n                            $t.addClass(item._icon);\r\n                        }\r\n                    }\r\n\r\n                    // cache contained elements\r\n                    item.$input = $input;\r\n                    item.$label = $label;\r\n\r\n                    // attach item to menu\r\n                    $t.appendTo(opt.$menu);\r\n\r\n                    // Disable text selection\r\n                    if (!opt.hasTypes && $.support.eventSelectstart) {\r\n                        // browsers support user-select: none,\r\n                        // IE has a special event for text-selection\r\n                        // browsers supporting neither will not be preventing text-selection\r\n                        $t.on('selectstart.disableTextSelect', handle.abortevent);\r\n                    }\r\n                });\r\n                // attach contextMenu to <body> (to bypass any possible overflow:hidden issues on parents of the trigger element)\r\n                if (!opt.$node) {\r\n                    opt.$menu.css('display', 'none').addClass('context-menu-root');\r\n                }\r\n                opt.$menu.appendTo(opt.appendTo || document.body);\r\n            },\r\n            resize: function ($menu, nested) {\r\n                var domMenu;\r\n                // determine widths of submenus, as CSS won't grow them automatically\r\n                // position:absolute within position:absolute; min-width:100; max-width:200; results in width: 100;\r\n                // kinda sucks hard...\r\n\r\n                // determine width of absolutely positioned element\r\n                $menu.css({position: 'absolute', display: 'block'});\r\n                // don't apply yet, because that would break nested elements' widths\r\n                $menu.data('width',\r\n                    (domMenu = $menu.get(0)).getBoundingClientRect ?\r\n                        Math.ceil(domMenu.getBoundingClientRect().width) :\r\n                        $menu.outerWidth() + 1); // outerWidth() returns rounded pixels\r\n                // reset styles so they allow nested elements to grow/shrink naturally\r\n                $menu.css({\r\n                    position: 'static',\r\n                    minWidth: '0px',\r\n                    maxWidth: '100000px'\r\n                });\r\n                // identify width of nested menus\r\n                $menu.find('> li > ul').each(function () {\r\n                    op.resize($(this), true);\r\n                });\r\n                // reset and apply changes in the end because nested\r\n                // elements' widths wouldn't be calculatable otherwise\r\n                if (!nested) {\r\n                    $menu.find('ul').addBack().css({\r\n                        position: '',\r\n                        display: '',\r\n                        minWidth: '',\r\n                        maxWidth: ''\r\n                    }).outerWidth(function () {\r\n                        return $(this).data('width');\r\n                    });\r\n                }\r\n            },\r\n            update: function (opt, root) {\r\n                var $trigger = this;\r\n                if (root === undefined) {\r\n                    root = opt;\r\n                    op.resize(opt.$menu);\r\n                }\r\n                // re-check disabled for each item\r\n                opt.$menu.children().each(function () {\r\n                    var $item = $(this),\r\n                        key = $item.data('contextMenuKey'),\r\n                        item = opt.items[key],\r\n                        disabled = ($.isFunction(item.disabled) && item.disabled.call($trigger, key, root)) || item.disabled === true,\r\n                        visible;\r\n                    if ($.isFunction(item.visible)) {\r\n                        visible = item.visible.call($trigger, key, root);\r\n                    } else if (typeof item.visible !== 'undefined') {\r\n                        visible = item.visible === true;\r\n                    } else {\r\n                        visible = true;\r\n                    }\r\n                    $item[visible ? 'show' : 'hide']();\r\n\r\n                    // dis- / enable item\r\n                    $item[disabled ? 'addClass' : 'removeClass'](root.classNames.disabled);\r\n\r\n                    if ($.isFunction(item.icon)) {\r\n                        $item.removeClass(item._icon);\r\n                        item._icon = item.icon.call(this, $trigger, $item, key, item);\r\n                        $item.addClass(item._icon);\r\n                    }\r\n\r\n                    if (item.type) {\r\n                        // dis- / enable input elements\r\n                        $item.find('input, select, textarea').prop('disabled', disabled);\r\n\r\n                        // update input states\r\n                        switch (item.type) {\r\n                            case 'text':\r\n                            case 'textarea':\r\n                                item.$input.val(item.value || '');\r\n                                break;\r\n\r\n                            case 'checkbox':\r\n                            case 'radio':\r\n                                item.$input.val(item.value || '').prop('checked', !!item.selected);\r\n                                break;\r\n\r\n                            case 'select':\r\n                                item.$input.val(item.selected || '');\r\n                                break;\r\n                        }\r\n                    }\r\n\r\n                    if (item.$menu) {\r\n                        // update sub-menu\r\n                        op.update.call($trigger, item, root);\r\n                    }\r\n                });\r\n            },\r\n            layer: function (opt, zIndex) {\r\n                // add transparent layer for click area\r\n                // filter and background for Internet Explorer, Issue #23\r\n                var $layer = opt.$layer = $('<div id=\"context-menu-layer\" style=\"position:fixed; z-index:' + zIndex + '; top:0; left:0; opacity: 0; filter: alpha(opacity=0); background-color: #000;\"></div>')\r\n                    .css({height: $win.height(), width: $win.width(), display: 'block'})\r\n                    .data('contextMenuRoot', opt)\r\n                    .insertBefore(this)\r\n                    .on('contextmenu', handle.abortevent)\r\n                    .on('mousedown', handle.layerClick);\r\n\r\n                // IE6 doesn't know position:fixed;\r\n                if (document.body.style.maxWidth === undefined) { // IE6 doesn't support maxWidth\r\n                    $layer.css({\r\n                        'position': 'absolute',\r\n                        'height': $(document).height()\r\n                    });\r\n                }\r\n\r\n                return $layer;\r\n            },\r\n            processPromises: function (opt, root, promise) {\r\n                // Start\r\n                opt.$node.addClass(root.classNames.iconLoadingClass);\r\n\r\n                function completedPromise(opt,root,items) {\r\n                    // Completed promise (dev called promise.resolve). We now have a list of items which can\r\n                    // be used to create the rest of the context menu.\r\n                    if (items === undefined) {\r\n                        // Null result, dev should have checked\r\n                        errorPromise(undefined);//own error object\r\n                    }\r\n                    finishPromiseProcess(opt,root, items);\r\n                }\r\n                function errorPromise(opt,root,errorItem) {\r\n                    // User called promise.reject() with an error item, if not, provide own error item.\r\n                    if (errorItem === undefined) {\r\n                        errorItem = { \"error\": { name: \"No items and no error item\", icon: \"context-menu-icon context-menu-icon-quit\" } };\r\n                        if (window.console) {\r\n                            (console.error || console.log).call(console, 'When you reject a promise, provide an \"items\" object, equal to normal sub-menu items');\r\n                        }\r\n                    } else if(typeof errorItem === 'string'){\r\n\t\t\t\t\t\t            errorItem = { \"error\": { name: errorItem } };\r\n\t\t\t\t\t          }\r\n                    finishPromiseProcess(opt,root,errorItem);\r\n                }\r\n                function finishPromiseProcess(opt,root,items) {\r\n                    if(root.$menu === undefined || !root.$menu.is(':visible')){\r\n                        return;\r\n                    }\r\n                    opt.$node.removeClass(root.classNames.iconLoadingClass);\r\n                    opt.items = items;\r\n                    op.create(opt, root, true); // Create submenu\r\n                    op.update(opt, root); // Correctly update position if user is already hovered over menu item\r\n                    root.positionSubmenu.call(opt.$node, opt.$menu); // positionSubmenu, will only do anything if user already hovered over menu item that just got new subitems.\r\n                }\r\n\r\n                // Wait for promise completion. .then(success, error, notify) (we don't track notify). Bind the opt\r\n                // and root to avoid scope problems\r\n                promise.then(completedPromise.bind(this, opt, root), errorPromise.bind(this, opt, root));\r\n            }\r\n        };\r\n\r\n    // split accesskey according to http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#assigned-access-key\r\n    function splitAccesskey(val) {\r\n        var t = val.split(/\\s+/),\r\n            keys = [];\r\n\r\n        for (var i = 0, k; k = t[i]; i++) {\r\n            k = k.charAt(0).toUpperCase(); // first character only\r\n            // theoretically non-accessible characters should be ignored, but different systems, different keyboard layouts, ... screw it.\r\n            // a map to look up already used access keys would be nice\r\n            keys.push(k);\r\n        }\r\n\r\n        return keys;\r\n    }\r\n\r\n// handle contextMenu triggers\r\n    $.fn.contextMenu = function (operation) {\r\n        var $t = this, $o = operation;\r\n        if (this.length > 0) {  // this is not a build on demand menu\r\n            if (operation === undefined) {\r\n                this.first().trigger('contextmenu');\r\n            } else if (operation.x !== undefined && operation.y !== undefined) {\r\n                this.first().trigger($.Event('contextmenu', { pageX: operation.x, pageY: operation.y, mouseButton: operation.button }));\r\n            } else if (operation === 'hide') {\r\n                var $menu = this.first().data('contextMenu') ? this.first().data('contextMenu').$menu : null;\r\n                if($menu){\r\n                    $menu.trigger('contextmenu:hide');\r\n                }\r\n            } else if (operation === 'destroy') {\r\n                $.contextMenu('destroy', {context: this});\r\n            } else if ($.isPlainObject(operation)) {\r\n                operation.context = this;\r\n                $.contextMenu('create', operation);\r\n            } else if (operation) {\r\n                this.removeClass('context-menu-disabled');\r\n            } else if (!operation) {\r\n                this.addClass('context-menu-disabled');\r\n            }\r\n        } else {\r\n            $.each(menus, function () {\r\n                if (this.selector === $t.selector) {\r\n                    $o.data = this;\r\n\r\n                    $.extend($o.data, {trigger: 'demand'});\r\n                }\r\n            });\r\n\r\n            handle.contextmenu.call($o.target, $o);\r\n        }\r\n\r\n        return this;\r\n    };\r\n\r\n    // manage contextMenu instances\r\n    $.contextMenu = function (operation, options) {\r\n        if (typeof operation !== 'string') {\r\n            options = operation;\r\n            operation = 'create';\r\n        }\r\n\r\n        if (typeof options === 'string') {\r\n            options = {selector: options};\r\n        } else if (options === undefined) {\r\n            options = {};\r\n        }\r\n\r\n        // merge with default options\r\n        var o = $.extend(true, {}, defaults, options || {});\r\n        var $document = $(document);\r\n        var $context = $document;\r\n        var _hasContext = false;\r\n\r\n        if (!o.context || !o.context.length) {\r\n            o.context = document;\r\n        } else {\r\n            // you never know what they throw at you...\r\n            $context = $(o.context).first();\r\n            o.context = $context.get(0);\r\n            _hasContext = !$(o.context).is(document);\r\n        }\r\n\r\n        switch (operation) {\r\n            case 'create':\r\n                // no selector no joy\r\n                if (!o.selector) {\r\n                    throw new Error('No selector specified');\r\n                }\r\n                // make sure internal classes are not bound to\r\n                if (o.selector.match(/.context-menu-(list|item|input)($|\\s)/)) {\r\n                    throw new Error('Cannot bind to selector \"' + o.selector + '\" as it contains a reserved className');\r\n                }\r\n                if (!o.build && (!o.items || $.isEmptyObject(o.items))) {\r\n                    throw new Error('No Items specified');\r\n                }\r\n                counter++;\r\n                o.ns = '.contextMenu' + counter;\r\n                if (!_hasContext) {\r\n                    namespaces[o.selector] = o.ns;\r\n                }\r\n                menus[o.ns] = o;\r\n\r\n                // default to right click\r\n                if (!o.trigger) {\r\n                    o.trigger = 'right';\r\n                }\r\n\r\n                if (!initialized) {\r\n                    var itemClick = o.itemClickEvent === 'click' ? 'click.contextMenu' : 'mouseup.contextMenu';\r\n                    var contextMenuItemObj = {\r\n                            // 'mouseup.contextMenu': handle.itemClick,\r\n                            // 'click.contextMenu': handle.itemClick,\r\n                            'contextmenu:focus.contextMenu': handle.focusItem,\r\n                            'contextmenu:blur.contextMenu': handle.blurItem,\r\n                            'contextmenu.contextMenu': handle.abortevent,\r\n                            'mouseenter.contextMenu': handle.itemMouseenter,\r\n                            'mouseleave.contextMenu': handle.itemMouseleave\r\n                        };\r\n                    contextMenuItemObj[itemClick] = handle.itemClick;\r\n                    // make sure item click is registered first\r\n                    $document\r\n                        .on({\r\n                            'contextmenu:hide.contextMenu': handle.hideMenu,\r\n                            'prevcommand.contextMenu': handle.prevItem,\r\n                            'nextcommand.contextMenu': handle.nextItem,\r\n                            'contextmenu.contextMenu': handle.abortevent,\r\n                            'mouseenter.contextMenu': handle.menuMouseenter,\r\n                            'mouseleave.contextMenu': handle.menuMouseleave\r\n                        }, '.context-menu-list')\r\n                        .on('mouseup.contextMenu', '.context-menu-input', handle.inputClick)\r\n                        .on(contextMenuItemObj, '.context-menu-item');\r\n\r\n                    initialized = true;\r\n                }\r\n\r\n                // engage native contextmenu event\r\n                $context\r\n                    .on('contextmenu' + o.ns, o.selector, o, handle.contextmenu);\r\n\r\n                if (_hasContext) {\r\n                    // add remove hook, just in case\r\n                    $context.on('remove' + o.ns, function () {\r\n                        $(this).contextMenu('destroy');\r\n                    });\r\n                }\r\n\r\n                switch (o.trigger) {\r\n                    case 'hover':\r\n                        $context\r\n                            .on('mouseenter' + o.ns, o.selector, o, handle.mouseenter)\r\n                            .on('mouseleave' + o.ns, o.selector, o, handle.mouseleave);\r\n                        break;\r\n\r\n                    case 'left':\r\n                        $context.on('click' + o.ns, o.selector, o, handle.click);\r\n                        break;\r\n                    /*\r\n                     default:\r\n                     // http://www.quirksmode.org/dom/events/contextmenu.html\r\n                     $document\r\n                     .on('mousedown' + o.ns, o.selector, o, handle.mousedown)\r\n                     .on('mouseup' + o.ns, o.selector, o, handle.mouseup);\r\n                     break;\r\n                     */\r\n                }\r\n\r\n                // create menu\r\n                if (!o.build) {\r\n                    op.create(o);\r\n                }\r\n                break;\r\n\r\n            case 'destroy':\r\n                var $visibleMenu;\r\n                if (_hasContext) {\r\n                    // get proper options\r\n                    var context = o.context;\r\n                    $.each(menus, function (ns, o) {\r\n                        \r\n                        if (!o) {\r\n                            return true;\r\n                        }\r\n\r\n                        // Is this menu equest to the context called from\r\n                        if (!$(context).is(o.selector)) {\r\n                            return true;\r\n                        }\r\n\r\n                        $visibleMenu = $('.context-menu-list').filter(':visible');\r\n                        if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is($(o.context).find(o.selector))) {\r\n                            $visibleMenu.trigger('contextmenu:hide', {force: true});\r\n                        }\r\n\r\n                        try {\r\n                            if (menus[o.ns].$menu) {\r\n                                menus[o.ns].$menu.remove();\r\n                            }\r\n\r\n                            delete menus[o.ns];\r\n                        } catch (e) {\r\n                            menus[o.ns] = null;\r\n                        }\r\n\r\n                        $(o.context).off(o.ns);\r\n\r\n                        return true;\r\n                    });\r\n                } else if (!o.selector) {\r\n                    $document.off('.contextMenu .contextMenuAutoHide');\r\n                    $.each(menus, function (ns, o) {\r\n                        $(o.context).off(o.ns);\r\n                    });\r\n\r\n                    namespaces = {};\r\n                    menus = {};\r\n                    counter = 0;\r\n                    initialized = false;\r\n\r\n                    $('#context-menu-layer, .context-menu-list').remove();\r\n                } else if (namespaces[o.selector]) {\r\n                    $visibleMenu = $('.context-menu-list').filter(':visible');\r\n                    if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is(o.selector)) {\r\n                        $visibleMenu.trigger('contextmenu:hide', {force: true});\r\n                    }\r\n\r\n                    try {\r\n                        if (menus[namespaces[o.selector]].$menu) {\r\n                            menus[namespaces[o.selector]].$menu.remove();\r\n                        }\r\n\r\n                        delete menus[namespaces[o.selector]];\r\n                    } catch (e) {\r\n                        menus[namespaces[o.selector]] = null;\r\n                    }\r\n\r\n                    $document.off(namespaces[o.selector]);\r\n                }\r\n                break;\r\n\r\n            case 'html5':\r\n                // if <command> or <menuitem> are not handled by the browser,\r\n                // or options was a bool true,\r\n                // initialize $.contextMenu for them\r\n                if ((!$.support.htmlCommand && !$.support.htmlMenuitem) || (typeof options === 'boolean' && options)) {\r\n                    $('menu[type=\"context\"]').each(function () {\r\n                        if (this.id) {\r\n                            $.contextMenu({\r\n                                selector: '[contextmenu=' + this.id + ']',\r\n                                items: $.contextMenu.fromMenu(this)\r\n                            });\r\n                        }\r\n                    }).css('display', 'none');\r\n                }\r\n                break;\r\n\r\n            default:\r\n                throw new Error('Unknown operation \"' + operation + '\"');\r\n        }\r\n\r\n        return this;\r\n    };\r\n\r\n// import values into <input> commands\r\n    $.contextMenu.setInputValues = function (opt, data) {\r\n        if (data === undefined) {\r\n            data = {};\r\n        }\r\n\r\n        $.each(opt.inputs, function (key, item) {\r\n            switch (item.type) {\r\n                case 'text':\r\n                case 'textarea':\r\n                    item.value = data[key] || '';\r\n                    break;\r\n\r\n                case 'checkbox':\r\n                    item.selected = data[key] ? true : false;\r\n                    break;\r\n\r\n                case 'radio':\r\n                    item.selected = (data[item.radio] || '') === item.value;\r\n                    break;\r\n\r\n                case 'select':\r\n                    item.selected = data[key] || '';\r\n                    break;\r\n            }\r\n        });\r\n    };\r\n\r\n// export values from <input> commands\r\n    $.contextMenu.getInputValues = function (opt, data) {\r\n        if (data === undefined) {\r\n            data = {};\r\n        }\r\n\r\n        $.each(opt.inputs, function (key, item) {\r\n            switch (item.type) {\r\n                case 'text':\r\n                case 'textarea':\r\n                case 'select':\r\n                    data[key] = item.$input.val();\r\n                    break;\r\n\r\n                case 'checkbox':\r\n                    data[key] = item.$input.prop('checked');\r\n                    break;\r\n\r\n                case 'radio':\r\n                    if (item.$input.prop('checked')) {\r\n                        data[item.radio] = item.value;\r\n                    }\r\n                    break;\r\n            }\r\n        });\r\n\r\n        return data;\r\n    };\r\n\r\n// find <label for=\"xyz\">\r\n    function inputLabel(node) {\r\n        return (node.id && $('label[for=\"' + node.id + '\"]').val()) || node.name;\r\n    }\r\n\r\n// convert <menu> to items object\r\n    function menuChildren(items, $children, counter) {\r\n        if (!counter) {\r\n            counter = 0;\r\n        }\r\n\r\n        $children.each(function () {\r\n            var $node = $(this),\r\n                node = this,\r\n                nodeName = this.nodeName.toLowerCase(),\r\n                label,\r\n                item;\r\n\r\n            // extract <label><input>\r\n            if (nodeName === 'label' && $node.find('input, textarea, select').length) {\r\n                label = $node.text();\r\n                $node = $node.children().first();\r\n                node = $node.get(0);\r\n                nodeName = node.nodeName.toLowerCase();\r\n            }\r\n\r\n            /*\r\n             * <menu> accepts flow-content as children. that means <embed>, <canvas> and such are valid menu items.\r\n             * Not being the sadistic kind, $.contextMenu only accepts:\r\n             * <command>, <menuitem>, <hr>, <span>, <p> <input [text, radio, checkbox]>, <textarea>, <select> and of course <menu>.\r\n             * Everything else will be imported as an html node, which is not interfaced with contextMenu.\r\n             */\r\n\r\n            // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#concept-command\r\n            switch (nodeName) {\r\n                // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#the-menu-element\r\n                case 'menu':\r\n                    item = {name: $node.attr('label'), items: {}};\r\n                    counter = menuChildren(item.items, $node.children(), counter);\r\n                    break;\r\n\r\n                // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-a-element-to-define-a-command\r\n                case 'a':\r\n                // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-button-element-to-define-a-command\r\n                case 'button':\r\n                    item = {\r\n                        name: $node.text(),\r\n                        disabled: !!$node.attr('disabled'),\r\n                        callback: (function () {\r\n                            return function () {\r\n                                $node.click();\r\n                            };\r\n                        })()\r\n                    };\r\n                    break;\r\n\r\n                // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-command-element-to-define-a-command\r\n\r\n                case 'menuitem':\r\n                case 'command':\r\n                    switch ($node.attr('type')) {\r\n                        case undefined:\r\n                        case 'command':\r\n                        case 'menuitem':\r\n                            item = {\r\n                                name: $node.attr('label'),\r\n                                disabled: !!$node.attr('disabled'),\r\n                                icon: $node.attr('icon'),\r\n                                callback: (function () {\r\n                                    return function () {\r\n                                        $node.click();\r\n                                    };\r\n                                })()\r\n                            };\r\n                            break;\r\n\r\n                        case 'checkbox':\r\n                            item = {\r\n                                type: 'checkbox',\r\n                                disabled: !!$node.attr('disabled'),\r\n                                name: $node.attr('label'),\r\n                                selected: !!$node.attr('checked')\r\n                            };\r\n                            break;\r\n                        case 'radio':\r\n                            item = {\r\n                                type: 'radio',\r\n                                disabled: !!$node.attr('disabled'),\r\n                                name: $node.attr('label'),\r\n                                radio: $node.attr('radiogroup'),\r\n                                value: $node.attr('id'),\r\n                                selected: !!$node.attr('checked')\r\n                            };\r\n                            break;\r\n\r\n                        default:\r\n                            item = undefined;\r\n                    }\r\n                    break;\r\n\r\n                case 'hr':\r\n                    item = '-------';\r\n                    break;\r\n\r\n                case 'input':\r\n                    switch ($node.attr('type')) {\r\n                        case 'text':\r\n                            item = {\r\n                                type: 'text',\r\n                                name: label || inputLabel(node),\r\n                                disabled: !!$node.attr('disabled'),\r\n                                value: $node.val()\r\n                            };\r\n                            break;\r\n\r\n                        case 'checkbox':\r\n                            item = {\r\n                                type: 'checkbox',\r\n                                name: label || inputLabel(node),\r\n                                disabled: !!$node.attr('disabled'),\r\n                                selected: !!$node.attr('checked')\r\n                            };\r\n                            break;\r\n\r\n                        case 'radio':\r\n                            item = {\r\n                                type: 'radio',\r\n                                name: label || inputLabel(node),\r\n                                disabled: !!$node.attr('disabled'),\r\n                                radio: !!$node.attr('name'),\r\n                                value: $node.val(),\r\n                                selected: !!$node.attr('checked')\r\n                            };\r\n                            break;\r\n\r\n                        default:\r\n                            item = undefined;\r\n                            break;\r\n                    }\r\n                    break;\r\n\r\n                case 'select':\r\n                    item = {\r\n                        type: 'select',\r\n                        name: label || inputLabel(node),\r\n                        disabled: !!$node.attr('disabled'),\r\n                        selected: $node.val(),\r\n                        options: {}\r\n                    };\r\n                    $node.children().each(function () {\r\n                        item.options[this.value] = $(this).text();\r\n                    });\r\n                    break;\r\n\r\n                case 'textarea':\r\n                    item = {\r\n                        type: 'textarea',\r\n                        name: label || inputLabel(node),\r\n                        disabled: !!$node.attr('disabled'),\r\n                        value: $node.val()\r\n                    };\r\n                    break;\r\n\r\n                case 'label':\r\n                    break;\r\n\r\n                default:\r\n                    item = {type: 'html', html: $node.clone(true)};\r\n                    break;\r\n            }\r\n\r\n            if (item) {\r\n                counter++;\r\n                items['key' + counter] = item;\r\n            }\r\n        });\r\n\r\n        return counter;\r\n    }\r\n\r\n// convert html5 menu\r\n    $.contextMenu.fromMenu = function (element) {\r\n        var $this = $(element),\r\n            items = {};\r\n\r\n        menuChildren(items, $this.children());\r\n\r\n        return items;\r\n    };\r\n\r\n// make defaults accessible\r\n    $.contextMenu.defaults = defaults;\r\n    $.contextMenu.types = types;\r\n// export internal functions - undocumented, for hacking only!\r\n    $.contextMenu.handle = handle;\r\n    $.contextMenu.op = op;\r\n    $.contextMenu.menus = menus;\r\n\r\n\r\n});\r\n"
  },
  {
    "path": "media/json-formatter.js",
    "content": "(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory();\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine(\"JSONFormatter\", [], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"JSONFormatter\"] = factory();\r\n\telse\r\n\t\troot[\"JSONFormatter\"] = factory();\r\n})(this, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId])\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\texports: {},\r\n/******/ \t\t\tid: moduleId,\r\n/******/ \t\t\tloaded: false\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.loaded = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"dist\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n\tmodule.exports = __webpack_require__(1);\r\n\r\n\r\n/***/ },\r\n/* 1 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n\t\"use strict\";\r\n\t__webpack_require__(2);\r\n\tvar helpers_ts_1 = __webpack_require__(6);\r\n\tvar DATE_STRING_REGEX = /(^\\d{1,4}[\\.|\\\\/|-]\\d{1,2}[\\.|\\\\/|-]\\d{1,4})(\\s*(?:0?[1-9]:[0-5]|1(?=[012])\\d:[0-5])\\d\\s*[ap]m)?$/;\r\n\tvar PARTIAL_DATE_REGEX = /\\d{2}:\\d{2}:\\d{2} GMT-\\d{4}/;\r\n\tvar JSON_DATE_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\r\n\t// When toggleing, don't animated removal or addition of more than a few items\r\n\tvar MAX_ANIMATED_TOGGLE_ITEMS = 10;\r\n\tvar requestAnimationFrame = window.requestAnimationFrame || function (cb) { cb(); return 0; };\r\n\t;\r\n\tvar _defaultConfig = {\r\n\t    hoverPreviewEnabled: false,\r\n\t    hoverPreviewArrayCount: 100,\r\n\t    hoverPreviewFieldCount: 5,\r\n\t    animateOpen: true,\r\n\t    animateClose: true,\r\n\t    theme: null\r\n\t};\r\n\tmodule.exports = (function () {\r\n\t    /**\r\n\t     * @param {object} json The JSON object you want to render. It has to be an\r\n\t     * object or array. Do NOT pass raw JSON string.\r\n\t     *\r\n\t     * @param {number} [open=1] his number indicates up to how many levels the\r\n\t     * rendered tree should expand. Set it to `0` to make the whole tree collapsed\r\n\t     * or set it to `Infinity` to expand the tree deeply\r\n\t     *\r\n\t     * @param {object} [config=defaultConfig] -\r\n\t     *  defaultConfig = {\r\n\t     *   hoverPreviewEnabled: false,\r\n\t     *   hoverPreviewArrayCount: 100,\r\n\t     *   hoverPreviewFieldCount: 5\r\n\t     * }\r\n\t     *\r\n\t     * Available configurations:\r\n\t     *  #####Hover Preview\r\n\t     * * `hoverPreviewEnabled`:  enable preview on hover\r\n\t     * * `hoverPreviewArrayCount`: number of array items to show in preview Any\r\n\t     *    array larger than this number will be shown as `Array[XXX]` where `XXX`\r\n\t     *    is length of the array.\r\n\t     * * `hoverPreviewFieldCount`: number of object properties to show for object\r\n\t     *   preview. Any object with more properties that thin number will be\r\n\t     *   truncated.\r\n\t     *\r\n\t     * @param {string} [key=undefined] The key that this object in it's parent\r\n\t     * context\r\n\t    */\r\n\t    function JSONFormatter(json, open, config, key) {\r\n\t        if (open === void 0) { open = 1; }\r\n\t        if (config === void 0) { config = _defaultConfig; }\r\n\t        this.json = json;\r\n\t        this.open = open;\r\n\t        this.config = config;\r\n\t        this.key = key;\r\n\t        // Hold the open state after the toggler is used\r\n\t        this._isOpen = null;\r\n\t        // Setting default values for config object\r\n\t        if (this.config.hoverPreviewEnabled === undefined) {\r\n\t            this.config.hoverPreviewEnabled = _defaultConfig.hoverPreviewEnabled;\r\n\t        }\r\n\t        if (this.config.hoverPreviewArrayCount === undefined) {\r\n\t            this.config.hoverPreviewArrayCount = _defaultConfig.hoverPreviewArrayCount;\r\n\t        }\r\n\t        if (this.config.hoverPreviewFieldCount === undefined) {\r\n\t            this.config.hoverPreviewFieldCount = _defaultConfig.hoverPreviewFieldCount;\r\n\t        }\r\n\t    }\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isOpen\", {\r\n\t        /*\r\n\t         * is formatter open?\r\n\t        */\r\n\t        get: function () {\r\n\t            if (this._isOpen !== null) {\r\n\t                return this._isOpen;\r\n\t            }\r\n\t            else {\r\n\t                return this.open > 0;\r\n\t            }\r\n\t        },\r\n\t        /*\r\n\t         * set open state (from toggler)\r\n\t        */\r\n\t        set: function (value) {\r\n\t            this._isOpen = value;\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isDate\", {\r\n\t        /*\r\n\t         * is this a date string?\r\n\t        */\r\n\t        get: function () {\r\n\t            return (this.type === 'string') &&\r\n\t                (DATE_STRING_REGEX.test(this.json) ||\r\n\t                    JSON_DATE_REGEX.test(this.json) ||\r\n\t                    PARTIAL_DATE_REGEX.test(this.json));\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isUrl\", {\r\n\t        /*\r\n\t         * is this a URL string?\r\n\t        */\r\n\t        get: function () {\r\n\t            return this.type === 'string' && (this.json.indexOf('http') === 0);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isArray\", {\r\n\t        /*\r\n\t         * is this an array?\r\n\t        */\r\n\t        get: function () {\r\n\t            return Array.isArray(this.json);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isObject\", {\r\n\t        /*\r\n\t         * is this an object?\r\n\t         * Note: In this context arrays are object as well\r\n\t        */\r\n\t        get: function () {\r\n\t            return helpers_ts_1.isObject(this.json);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isEmptyObject\", {\r\n\t        /*\r\n\t         * is this an empty object with no properties?\r\n\t        */\r\n\t        get: function () {\r\n\t            return !this.keys.length && !this.isArray;\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"isEmpty\", {\r\n\t        /*\r\n\t         * is this an empty object or array?\r\n\t        */\r\n\t        get: function () {\r\n\t            return this.isEmptyObject || (this.keys && !this.keys.length && this.isArray);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"hasKey\", {\r\n\t        /*\r\n\t         * did we recieve a key argument?\r\n\t         * This means that the formatter was called as a sub formatter of a parent formatter\r\n\t        */\r\n\t        get: function () {\r\n\t            return typeof this.key !== 'undefined';\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"constructorName\", {\r\n\t        /*\r\n\t         * if this is an object, get constructor function name\r\n\t        */\r\n\t        get: function () {\r\n\t            return helpers_ts_1.getObjectName(this.json);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"type\", {\r\n\t        /*\r\n\t         * get type of this value\r\n\t         * Possible values: all JavaScript primitive types plus \"array\" and \"null\"\r\n\t        */\r\n\t        get: function () {\r\n\t            return helpers_ts_1.getType(this.json);\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    Object.defineProperty(JSONFormatter.prototype, \"keys\", {\r\n\t        /*\r\n\t         * get object keys\r\n\t         * If there is an empty key we pad it wit quotes to make it visible\r\n\t        */\r\n\t        get: function () {\r\n\t            if (this.isObject) {\r\n\t                return Object.keys(this.json).map(function (key) { return key ? key : '\"\"'; });\r\n\t            }\r\n\t            else {\r\n\t                return [];\r\n\t            }\r\n\t        },\r\n\t        enumerable: true,\r\n\t        configurable: true\r\n\t    });\r\n\t    /**\r\n\t     * Toggles `isOpen` state\r\n\t     *\r\n\t    */\r\n\t    JSONFormatter.prototype.toggleOpen = function () {\r\n\t        this.isOpen = !this.isOpen;\r\n\t        if (this.element) {\r\n\t            if (this.isOpen) {\r\n\t                this.appendChildren(this.config.animateOpen);\r\n\t            }\r\n\t            else {\r\n\t                this.removeChildren(this.config.animateClose);\r\n\t            }\r\n\t            this.element.classList.toggle(helpers_ts_1.cssClass('open'));\r\n\t        }\r\n\t    };\r\n\t    /**\r\n\t    * Open all children up to a certain depth.\r\n\t    * Allows actions such as expand all/collapse all\r\n\t    *\r\n\t    */\r\n\t    JSONFormatter.prototype.openAtDepth = function (depth) {\r\n\t        if (depth === void 0) { depth = 1; }\r\n\t        if (depth < 0) {\r\n\t            return;\r\n\t        }\r\n\t        this.open = depth;\r\n\t        this.isOpen = (depth !== 0);\r\n\t        if (this.element) {\r\n\t            this.removeChildren(false);\r\n\t            if (depth === 0) {\r\n\t                this.element.classList.remove(helpers_ts_1.cssClass('open'));\r\n\t            }\r\n\t            else {\r\n\t                this.appendChildren(this.config.animateOpen);\r\n\t                this.element.classList.add(helpers_ts_1.cssClass('open'));\r\n\t            }\r\n\t        }\r\n\t    };\r\n\t    /**\r\n\t     * Generates inline preview\r\n\t     *\r\n\t     * @returns {string}\r\n\t    */\r\n\t    JSONFormatter.prototype.getInlinepreview = function () {\r\n\t        var _this = this;\r\n\t        if (this.isArray) {\r\n\t            // if array length is greater then 100 it shows \"Array[101]\"\r\n\t            if (this.json.length > this.config.hoverPreviewArrayCount) {\r\n\t                return \"Array[\" + this.json.length + \"]\";\r\n\t            }\r\n\t            else {\r\n\t                return \"[\" + this.json.map(helpers_ts_1.getPreview).join(', ') + \"]\";\r\n\t            }\r\n\t        }\r\n\t        else {\r\n\t            var keys = this.keys;\r\n\t            // the first five keys (like Chrome Developer Tool)\r\n\t            var narrowKeys = keys.slice(0, this.config.hoverPreviewFieldCount);\r\n\t            // json value schematic information\r\n\t            var kvs = narrowKeys.map(function (key) { return (key + \":\" + helpers_ts_1.getPreview(_this.json[key])); });\r\n\t            // if keys count greater then 5 then show ellipsis\r\n\t            var ellipsis = keys.length >= this.config.hoverPreviewFieldCount ? '…' : '';\r\n\t            return \"{\" + kvs.join(', ') + ellipsis + \"}\";\r\n\t        }\r\n\t    };\r\n\t    /**\r\n\t     * Renders an HTML element and installs event listeners\r\n\t     *\r\n\t     * @returns {HTMLDivElement}\r\n\t    */\r\n\t    JSONFormatter.prototype.render = function () {\r\n\t        // construct the root element and assign it to this.element\r\n\t        this.element = helpers_ts_1.createElement('div', 'row');\r\n\t        // construct the toggler link\r\n\t        var togglerLink = helpers_ts_1.createElement('a', 'toggler-link');\r\n\t        // if this is an object we need a wrapper span (toggler)\r\n\t        if (this.isObject) {\r\n\t            togglerLink.appendChild(helpers_ts_1.createElement('span', 'toggler'));\r\n\t        }\r\n\t        // if this is child of a parent formatter we need to append the key\r\n\t        if (this.hasKey) {\r\n\t            togglerLink.appendChild(helpers_ts_1.createElement('span', 'key', this.key + \":\"));\r\n\t        }\r\n\t        // Value for objects and arrays\r\n\t        if (this.isObject) {\r\n\t            // construct the value holder element\r\n\t            var value = helpers_ts_1.createElement('span', 'value');\r\n\t            // we need a wrapper span for objects\r\n\t            var objectWrapperSpan = helpers_ts_1.createElement('span');\r\n\t            // get constructor name and append it to wrapper span\r\n\t            var constructorName = helpers_ts_1.createElement('span', 'constructor-name', this.constructorName);\r\n\t            objectWrapperSpan.appendChild(constructorName);\r\n\t            // if it's an array append the array specific elements like brackets and length\r\n\t            if (this.isArray) {\r\n\t                var arrayWrapperSpan = helpers_ts_1.createElement('span');\r\n\t                arrayWrapperSpan.appendChild(helpers_ts_1.createElement('span', 'bracket', '['));\r\n\t                arrayWrapperSpan.appendChild(helpers_ts_1.createElement('span', 'number', (this.json.length)));\r\n\t                arrayWrapperSpan.appendChild(helpers_ts_1.createElement('span', 'bracket', ']'));\r\n\t                objectWrapperSpan.appendChild(arrayWrapperSpan);\r\n\t            }\r\n\t            // append object wrapper span to toggler link\r\n\t            value.appendChild(objectWrapperSpan);\r\n\t            togglerLink.appendChild(value);\r\n\t        }\r\n\t        else {\r\n\t            // make a value holder element\r\n\t            var value = this.isUrl ? helpers_ts_1.createElement('a') : helpers_ts_1.createElement('span');\r\n\t            // add type and other type related CSS classes\r\n\t            value.classList.add(helpers_ts_1.cssClass(this.type));\r\n\t            if (this.isDate) {\r\n\t                value.classList.add(helpers_ts_1.cssClass('date'));\r\n\t            }\r\n\t            if (this.isUrl) {\r\n\t                value.classList.add(helpers_ts_1.cssClass('url'));\r\n\t                value.setAttribute('href', this.json);\r\n\t            }\r\n\t            // Append value content to value element\r\n\t            var valuePreview = helpers_ts_1.getValuePreview(this.json, this.json);\r\n\t            value.appendChild(document.createTextNode(valuePreview));\r\n\t            // append the value element to toggler link\r\n\t            togglerLink.appendChild(value);\r\n\t        }\r\n\t        // if hover preview is enabled, append the inline preview element\r\n\t        if (this.isObject && this.config.hoverPreviewEnabled) {\r\n\t            var preview = helpers_ts_1.createElement('span', 'preview-text');\r\n\t            preview.appendChild(document.createTextNode(this.getInlinepreview()));\r\n\t            togglerLink.appendChild(preview);\r\n\t        }\r\n\t        // construct a children element\r\n\t        var children = helpers_ts_1.createElement('div', 'children');\r\n\t        // set CSS classes for children\r\n\t        if (this.isObject) {\r\n\t            children.classList.add(helpers_ts_1.cssClass('object'));\r\n\t        }\r\n\t        if (this.isArray) {\r\n\t            children.classList.add(helpers_ts_1.cssClass('array'));\r\n\t        }\r\n\t        if (this.isEmpty) {\r\n\t            children.classList.add(helpers_ts_1.cssClass('empty'));\r\n\t        }\r\n\t        // set CSS classes for root element\r\n\t        if (this.config && this.config.theme) {\r\n\t            this.element.classList.add(helpers_ts_1.cssClass(this.config.theme));\r\n\t        }\r\n\t        if (this.isOpen) {\r\n\t            this.element.classList.add(helpers_ts_1.cssClass('open'));\r\n\t        }\r\n\t        // append toggler and children elements to root element\r\n\t        this.element.appendChild(togglerLink);\r\n\t        this.element.appendChild(children);\r\n\t        // if formatter is set to be open call appendChildren\r\n\t        if (this.isObject && this.isOpen) {\r\n\t            this.appendChildren();\r\n\t        }\r\n\t        // add event listener for toggling\r\n\t        if (this.isObject) {\r\n\t            togglerLink.addEventListener('click', this.toggleOpen.bind(this));\r\n\t        }\r\n\t        return this.element;\r\n\t    };\r\n\t    /**\r\n\t     * Appends all the children to children element\r\n\t     * Animated option is used when user triggers this via a click\r\n\t    */\r\n\t    JSONFormatter.prototype.appendChildren = function (animated) {\r\n\t        var _this = this;\r\n\t        if (animated === void 0) { animated = false; }\r\n\t        var children = this.element.querySelector(\"div.\" + helpers_ts_1.cssClass('children'));\r\n\t        if (!children || this.isEmpty) {\r\n\t            return;\r\n\t        }\r\n\t        if (animated) {\r\n\t            var index_1 = 0;\r\n\t            var addAChild_1 = function () {\r\n\t                var key = _this.keys[index_1];\r\n\t                var formatter = new JSONFormatter(_this.json[key], _this.open - 1, _this.config, key);\r\n\t                children.appendChild(formatter.render());\r\n\t                index_1 += 1;\r\n\t                if (index_1 < _this.keys.length) {\r\n\t                    if (index_1 > MAX_ANIMATED_TOGGLE_ITEMS) {\r\n\t                        addAChild_1();\r\n\t                    }\r\n\t                    else {\r\n\t                        requestAnimationFrame(addAChild_1);\r\n\t                    }\r\n\t                }\r\n\t            };\r\n\t            requestAnimationFrame(addAChild_1);\r\n\t        }\r\n\t        else {\r\n\t            this.keys.forEach(function (key) {\r\n\t                var formatter = new JSONFormatter(_this.json[key], _this.open - 1, _this.config, key);\r\n\t                children.appendChild(formatter.render());\r\n\t            });\r\n\t        }\r\n\t    };\r\n\t    /**\r\n\t     * Removes all the children from children element\r\n\t     * Animated option is used when user triggers this via a click\r\n\t    */\r\n\t    JSONFormatter.prototype.removeChildren = function (animated) {\r\n\t        if (animated === void 0) { animated = false; }\r\n\t        var childrenElement = this.element.querySelector(\"div.\" + helpers_ts_1.cssClass('children'));\r\n\t        if (animated) {\r\n\t            var childrenRemoved_1 = 0;\r\n\t            var removeAChild_1 = function () {\r\n\t                if (childrenElement && childrenElement.children.length) {\r\n\t                    childrenElement.removeChild(childrenElement.children[0]);\r\n\t                    childrenRemoved_1 += 1;\r\n\t                    if (childrenRemoved_1 > MAX_ANIMATED_TOGGLE_ITEMS) {\r\n\t                        removeAChild_1();\r\n\t                    }\r\n\t                    else {\r\n\t                        requestAnimationFrame(removeAChild_1);\r\n\t                    }\r\n\t                }\r\n\t            };\r\n\t            requestAnimationFrame(removeAChild_1);\r\n\t        }\r\n\t        else {\r\n\t            if (childrenElement) {\r\n\t                childrenElement.innerHTML = '';\r\n\t            }\r\n\t        }\r\n\t    };\r\n\t    return JSONFormatter;\r\n\t}());\r\n\r\n\r\n/***/ },\r\n/* 2 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n\t// style-loader: Adds some css to the DOM by adding a <style> tag\r\n\t\r\n\t// load the styles\r\n\tvar content = __webpack_require__(3);\r\n\tif(typeof content === 'string') content = [[module.id, content, '']];\r\n\t// add the styles to the DOM\r\n\tvar update = __webpack_require__(5)(content, {\"sourceMap\":true});\r\n\tif(content.locals) module.exports = content.locals;\r\n\t// Hot Module Replacement\r\n\tif(false) {\r\n\t\t// When the styles change, update the <style> tags\r\n\t\tif(!content.locals) {\r\n\t\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js?sourceMap!./../node_modules/less-loader/index.js?sourceMap!./style.less\", function() {\r\n\t\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js?sourceMap!./../node_modules/less-loader/index.js?sourceMap!./style.less\");\r\n\t\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\r\n\t\t\t\tupdate(newContent);\r\n\t\t\t});\r\n\t\t}\r\n\t\t// When the module is disposed, remove the <style> tags\r\n\t\tmodule.hot.dispose(function() { update(); });\r\n\t}\r\n\r\n/***/ },\r\n/* 3 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n\texports = module.exports = __webpack_require__(4)();\r\n\t// imports\r\n\t\r\n\t\r\n\t// module\r\n\texports.push([module.id, \".json-formatter-row {\\n  font-family: monospace;\\n}\\n.json-formatter-row,\\n.json-formatter-row a,\\n.json-formatter-row a:hover {\\n  color: black;\\n  text-decoration: none;\\n}\\n.json-formatter-row .json-formatter-row {\\n  margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty {\\n  opacity: 0.5;\\n  margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n  display: none;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n  content: \\\"No properties\\\";\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n  content: \\\"[]\\\";\\n}\\n.json-formatter-row .json-formatter-string {\\n  color: green;\\n  white-space: pre;\\n  word-wrap: break-word;\\n}\\n.json-formatter-row .json-formatter-number {\\n  color: blue;\\n}\\n.json-formatter-row .json-formatter-boolean {\\n  color: red;\\n}\\n.json-formatter-row .json-formatter-null {\\n  color: #855A00;\\n}\\n.json-formatter-row .json-formatter-undefined {\\n  color: #ca0b69;\\n}\\n.json-formatter-row .json-formatter-function {\\n  color: #FF20ED;\\n}\\n.json-formatter-row .json-formatter-date {\\n  background-color: rgba(0, 0, 0, 0.05);\\n}\\n.json-formatter-row .json-formatter-url {\\n  text-decoration: underline;\\n  color: blue;\\n  cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-bracket {\\n  color: blue;\\n}\\n.json-formatter-row .json-formatter-key {\\n  color: #00008B;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-constructor-name {\\n  cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-toggler {\\n  line-height: 1.2rem;\\n  font-size: 0.7rem;\\n  vertical-align: middle;\\n  opacity: 0.6;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler:after {\\n  display: inline-block;\\n  transition: transform 100ms ease-in;\\n  content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-row > a > .json-formatter-preview-text {\\n  opacity: 0;\\n  transition: opacity 0.15s ease-in;\\n  font-style: italic;\\n}\\n.json-formatter-row:hover > a > .json-formatter-preview-text {\\n  opacity: 0.6;\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n  transform: rotate(90deg);\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n  display: inline-block;\\n}\\n.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n  display: none;\\n}\\n.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n  display: block;\\n}\\n.json-formatter-dark.json-formatter-row {\\n  font-family: monospace;\\n}\\n.json-formatter-dark.json-formatter-row,\\n.json-formatter-dark.json-formatter-row a,\\n.json-formatter-dark.json-formatter-row a:hover {\\n  color: white;\\n  text-decoration: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-row {\\n  margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty {\\n  opacity: 0.5;\\n  margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n  display: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n  content: \\\"No properties\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n  content: \\\"[]\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-string {\\n  color: #31F031;\\n  white-space: pre;\\n  word-wrap: break-word;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-number {\\n  color: #66C2FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-boolean {\\n  color: #EC4242;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-null {\\n  color: #EEC97D;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-undefined {\\n  color: #ef8fbe;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-function {\\n  color: #FD48CB;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-date {\\n  background-color: rgba(255, 255, 255, 0.05);\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-url {\\n  text-decoration: underline;\\n  color: #027BFF;\\n  cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-bracket {\\n  color: #9494FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-key {\\n  color: #23A0DB;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-constructor-name {\\n  cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler {\\n  line-height: 1.2rem;\\n  font-size: 0.7rem;\\n  vertical-align: middle;\\n  opacity: 0.6;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler:after {\\n  display: inline-block;\\n  transition: transform 100ms ease-in;\\n  content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-dark.json-formatter-row > a > .json-formatter-preview-text {\\n  opacity: 0;\\n  transition: opacity 0.15s ease-in;\\n  font-style: italic;\\n}\\n.json-formatter-dark.json-formatter-row:hover > a > .json-formatter-preview-text {\\n  opacity: 0.6;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n  transform: rotate(90deg);\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n  display: inline-block;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n  display: none;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n  display: block;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./src/style.less\",\"/./src/style.less\"],\"names\":[],\"mappings\":\"AA0GA;EA3FE,uBAAA;CCbD;ADcC;;;EACE,aAAA;EACA,sBAAA;CCVH;ADkGD;EApFI,kBAAA;CCXH;ADeG;EACE,aAAA;EACA,kBAAA;CCbL;ADeK;EAAU,cAAA;CCZf;ADaK;EAAgC,yBAAA;CCVrC;ADWK;EAA+B,cAAA;CCRpC;ADkFD;EArEI,aAAA;EACA,iBAAA;EACA,sBAAA;CCVH;AD6ED;EAjE2B,YAAA;CCT1B;AD0ED;EAhE4B,WAAA;CCP3B;ADuED;EA/DyB,eAAA;CCLxB;ADoED;EA9D8B,eAAA;CCH7B;ADiED;EA7D6B,eAAA;CCD5B;AD8DD;EA5DyB,sCAAA;CCCxB;AD2DD;EA1DI,2BAAA;EACA,YAAA;EACA,gBAAA;CCEH;ADsDD;EArD4B,YAAA;CCE3B;ADmDD;EAnDI,eAAA;EACA,gBAAA;EACA,sBAAA;CCGH;AD8CD;EA9CI,gBAAA;CCGH;AD2CD;EA1CI,oBAAA;EACA,kBAAA;EACA,uBAAA;EACA,aAAA;EACA,gBAAA;EACA,sBAAA;CCEH;ADAG;EACE,sBAAA;EACA,oCAAA;EACA,iBAAA;CCEL;AD8BD;EA1BI,WAAA;EACA,kCAAA;EACA,mBAAA;CCDH;ADGC;EACE,aAAA;CCDH;ADKC;EAEI,yBAAA;CCJL;ADEC;EAKI,sBAAA;CCJL;ADDC;EAQI,cAAA;CCJL;ADMG;EACE,eAAA;CCJL;ADeD;EAhGE,uBAAA;CCoFD;ADnFC;;;EACE,aAAA;EACA,sBAAA;CCuFH;ADMD;EAzFI,kBAAA;CCsFH;ADlFG;EACE,aAAA;EACA,kBAAA;CCoFL;ADlFK;EAAU,cAAA;CCqFf;ADpFK;EAAgC,yBAAA;CCuFrC;ADtFK;EAA+B,cAAA;CCyFpC;ADVD;EA1EI,eAAA;EACA,iBAAA;EACA,sBAAA;CCuFH;ADfD;EAtE2B,eAAA;CCwF1B;ADlBD;EArE4B,eAAA;CC0F3B;ADrBD;EApEyB,eAAA;CC4FxB;ADxBD;EAnE8B,eAAA;CC8F7B;AD3BD;EAlE6B,eAAA;CCgG5B;AD9BD;EAjEyB,4CAAA;CCkGxB;ADjCD;EA/DI,2BAAA;EACA,eAAA;EACA,gBAAA;CCmGH;ADtCD;EA1D4B,eAAA;CCmG3B;ADzCD;EAxDI,eAAA;EACA,gBAAA;EACA,sBAAA;CCoGH;AD9CD;EAnDI,gBAAA;CCoGH;ADjDD;EA/CI,oBAAA;EACA,kBAAA;EACA,uBAAA;EACA,aAAA;EACA,gBAAA;EACA,sBAAA;CCmGH;ADjGG;EACE,sBAAA;EACA,oCAAA;EACA,iBAAA;CCmGL;AD9DD;EA/BI,WAAA;EACA,kCAAA;EACA,mBAAA;CCgGH;AD9FC;EACE,aAAA;CCgGH;AD5FC;EAEI,yBAAA;CC6FL;AD/FC;EAKI,sBAAA;CC6FL;ADlGC;EAQI,cAAA;CC6FL;AD3FG;EACE,eAAA;CC6FL\",\"file\":\"style.less\",\"sourcesContent\":[\".theme(\\n  @default-color: black,\\n  @string-color: green,\\n  @number-color: blue,\\n  @boolean-color: red,\\n  @null-color: #855A00,\\n  @undefined-color: rgb(202, 11, 105),\\n  @function-color: #FF20ED,\\n  @rotate-time: 100ms,\\n  @toggler-opacity: 0.6,\\n  @toggler-color: #45376F,\\n  @bracket-color: blue,\\n  @key-color: #00008B,\\n  @url-color: blue ){\\n\\n  font-family: monospace;\\n  &, a, a:hover {\\n    color: @default-color;\\n    text-decoration: none;\\n  }\\n\\n  .json-formatter-row {\\n    margin-left: 1rem;\\n  }\\n\\n  .json-formatter-children {\\n    &.json-formatter-empty {\\n      opacity: 0.5;\\n      margin-left: 1rem;\\n\\n      &:after { display: none; }\\n      &.json-formatter-object:after { content: \\\"No properties\\\"; }\\n      &.json-formatter-array:after { content: \\\"[]\\\"; }\\n    }\\n  }\\n\\n  .json-formatter-string {\\n    color: @string-color;\\n    white-space: pre;\\n    word-wrap: break-word;\\n  }\\n  .json-formatter-number { color: @number-color; }\\n  .json-formatter-boolean { color: @boolean-color; }\\n  .json-formatter-null { color: @null-color; }\\n  .json-formatter-undefined { color: @undefined-color; }\\n  .json-formatter-function { color: @function-color; }\\n  .json-formatter-date { background-color: fade(@default-color, 5%); }\\n  .json-formatter-url {\\n    text-decoration: underline;\\n    color: @url-color;\\n    cursor: pointer;\\n  }\\n\\n  .json-formatter-bracket { color: @bracket-color; }\\n  .json-formatter-key {\\n    color: @key-color;\\n    cursor: pointer;\\n    padding-right: 0.2rem;\\n  }\\n  .json-formatter-constructor-name {\\n    cursor: pointer;\\n  }\\n\\n  .json-formatter-toggler {\\n    line-height: 1.2rem;\\n    font-size: 0.7rem;\\n    vertical-align: middle;\\n    opacity: @toggler-opacity;\\n    cursor: pointer;\\n    padding-right: 0.2rem;\\n\\n    &:after {\\n      display: inline-block;\\n      transition: transform @rotate-time ease-in;\\n      content: \\\"►\\\";\\n    }\\n  }\\n\\n  // Inline preview on hover (optional)\\n  > a > .json-formatter-preview-text {\\n    opacity: 0;\\n    transition: opacity .15s ease-in;\\n    font-style: italic;\\n  }\\n  &:hover > a > .json-formatter-preview-text {\\n    opacity: 0.6;\\n  }\\n\\n  // Open state\\n  &.json-formatter-open {\\n    > .json-formatter-toggler-link .json-formatter-toggler:after{\\n      transform: rotate(90deg);\\n    }\\n    > .json-formatter-children:after {\\n      display: inline-block;\\n    }\\n    > a > .json-formatter-preview-text {\\n      display: none;\\n    }\\n    &.json-formatter-empty:after {\\n      display: block;\\n    }\\n  }\\n}\\n\\n// Default theme\\n.json-formatter-row {\\n  .theme();\\n}\\n\\n// Dark theme\\n.json-formatter-dark.json-formatter-row {\\n  .theme(\\n    @default-color: white,\\n    @string-color: #31F031,\\n    @number-color: #66C2FF,\\n    @boolean-color: #EC4242,\\n    @null-color: #EEC97D,\\n    @undefined-color: rgb(239, 143, 190),\\n    @function-color: #FD48CB,\\n    @rotate-time: 100ms,\\n    @toggler-opacity: 0.6,\\n    @toggler-color: #45376F,\\n    @bracket-color: #9494FF,\\n    @key-color: #23A0DB,\\n    @url-color: #027BFF);\\n}\\n\",\".json-formatter-row {\\n  font-family: monospace;\\n}\\n.json-formatter-row,\\n.json-formatter-row a,\\n.json-formatter-row a:hover {\\n  color: black;\\n  text-decoration: none;\\n}\\n.json-formatter-row .json-formatter-row {\\n  margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty {\\n  opacity: 0.5;\\n  margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n  display: none;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n  content: \\\"No properties\\\";\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n  content: \\\"[]\\\";\\n}\\n.json-formatter-row .json-formatter-string {\\n  color: green;\\n  white-space: pre;\\n  word-wrap: break-word;\\n}\\n.json-formatter-row .json-formatter-number {\\n  color: blue;\\n}\\n.json-formatter-row .json-formatter-boolean {\\n  color: red;\\n}\\n.json-formatter-row .json-formatter-null {\\n  color: #855A00;\\n}\\n.json-formatter-row .json-formatter-undefined {\\n  color: #ca0b69;\\n}\\n.json-formatter-row .json-formatter-function {\\n  color: #FF20ED;\\n}\\n.json-formatter-row .json-formatter-date {\\n  background-color: rgba(0, 0, 0, 0.05);\\n}\\n.json-formatter-row .json-formatter-url {\\n  text-decoration: underline;\\n  color: blue;\\n  cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-bracket {\\n  color: blue;\\n}\\n.json-formatter-row .json-formatter-key {\\n  color: #00008B;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-constructor-name {\\n  cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-toggler {\\n  line-height: 1.2rem;\\n  font-size: 0.7rem;\\n  vertical-align: middle;\\n  opacity: 0.6;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler:after {\\n  display: inline-block;\\n  transition: transform 100ms ease-in;\\n  content: \\\"►\\\";\\n}\\n.json-formatter-row > a > .json-formatter-preview-text {\\n  opacity: 0;\\n  transition: opacity 0.15s ease-in;\\n  font-style: italic;\\n}\\n.json-formatter-row:hover > a > .json-formatter-preview-text {\\n  opacity: 0.6;\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n  transform: rotate(90deg);\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n  display: inline-block;\\n}\\n.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n  display: none;\\n}\\n.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n  display: block;\\n}\\n.json-formatter-dark.json-formatter-row {\\n  font-family: monospace;\\n}\\n.json-formatter-dark.json-formatter-row,\\n.json-formatter-dark.json-formatter-row a,\\n.json-formatter-dark.json-formatter-row a:hover {\\n  color: white;\\n  text-decoration: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-row {\\n  margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty {\\n  opacity: 0.5;\\n  margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n  display: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n  content: \\\"No properties\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n  content: \\\"[]\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-string {\\n  color: #31F031;\\n  white-space: pre;\\n  word-wrap: break-word;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-number {\\n  color: #66C2FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-boolean {\\n  color: #EC4242;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-null {\\n  color: #EEC97D;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-undefined {\\n  color: #ef8fbe;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-function {\\n  color: #FD48CB;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-date {\\n  background-color: rgba(255, 255, 255, 0.05);\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-url {\\n  text-decoration: underline;\\n  color: #027BFF;\\n  cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-bracket {\\n  color: #9494FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-key {\\n  color: #23A0DB;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-constructor-name {\\n  cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler {\\n  line-height: 1.2rem;\\n  font-size: 0.7rem;\\n  vertical-align: middle;\\n  opacity: 0.6;\\n  cursor: pointer;\\n  padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler:after {\\n  display: inline-block;\\n  transition: transform 100ms ease-in;\\n  content: \\\"►\\\";\\n}\\n.json-formatter-dark.json-formatter-row > a > .json-formatter-preview-text {\\n  opacity: 0;\\n  transition: opacity 0.15s ease-in;\\n  font-style: italic;\\n}\\n.json-formatter-dark.json-formatter-row:hover > a > .json-formatter-preview-text {\\n  opacity: 0.6;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n  transform: rotate(90deg);\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n  display: inline-block;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n  display: none;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n  display: block;\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\r\n\t\r\n\t// exports\r\n\r\n\r\n/***/ },\r\n/* 4 */\r\n/***/ function(module, exports) {\r\n\r\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\r\n\r\n/***/ },\r\n/* 5 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t\t// tags it will allow on a page\r\n\t\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\t\r\n\t\t// By default, add <style> tags to the bottom of <head>.\r\n\t\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\t\r\n\t\tvar styles = listToStyles(list);\r\n\t\taddStylesToDom(styles, options);\r\n\t\r\n\t\treturn function update(newList) {\r\n\t\t\tvar mayRemove = [];\r\n\t\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\t\tvar item = styles[i];\r\n\t\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\t\tdomStyle.refs--;\r\n\t\t\t\tmayRemove.push(domStyle);\r\n\t\t\t}\r\n\t\t\tif(newList) {\r\n\t\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\t\taddStylesToDom(newStyles, options);\r\n\t\t\t}\r\n\t\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tfunction addStylesToDom(styles, options) {\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tif(domStyle) {\r\n\t\t\t\tdomStyle.refs++;\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t\t}\r\n\t\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar parts = [];\r\n\t\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction listToStyles(list) {\r\n\t\tvar styles = [];\r\n\t\tvar newStyles = {};\r\n\t\tfor(var i = 0; i < list.length; i++) {\r\n\t\t\tvar item = list[i];\r\n\t\t\tvar id = item[0];\r\n\t\t\tvar css = item[1];\r\n\t\t\tvar media = item[2];\r\n\t\t\tvar sourceMap = item[3];\r\n\t\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\t\tif(!newStyles[id])\r\n\t\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\t\telse\r\n\t\t\t\tnewStyles[id].parts.push(part);\r\n\t\t}\r\n\t\treturn styles;\r\n\t}\r\n\t\r\n\tfunction insertStyleElement(options, styleElement) {\r\n\t\tvar head = getHeadElement();\r\n\t\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\t\tif (options.insertAt === \"top\") {\r\n\t\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\thead.appendChild(styleElement);\r\n\t\t\t}\r\n\t\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t\t} else if (options.insertAt === \"bottom\") {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction removeStyleElement(styleElement) {\r\n\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\t\tif(idx >= 0) {\r\n\t\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction createStyleElement(options) {\r\n\t\tvar styleElement = document.createElement(\"style\");\r\n\t\tstyleElement.type = \"text/css\";\r\n\t\tinsertStyleElement(options, styleElement);\r\n\t\treturn styleElement;\r\n\t}\r\n\t\r\n\tfunction createLinkElement(options) {\r\n\t\tvar linkElement = document.createElement(\"link\");\r\n\t\tlinkElement.rel = \"stylesheet\";\r\n\t\tinsertStyleElement(options, linkElement);\r\n\t\treturn linkElement;\r\n\t}\r\n\t\r\n\tfunction addStyle(obj, options) {\r\n\t\tvar styleElement, update, remove;\r\n\t\r\n\t\tif (options.singleton) {\r\n\t\t\tvar styleIndex = singletonCounter++;\r\n\t\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t\t} else if(obj.sourceMap &&\r\n\t\t\ttypeof URL === \"function\" &&\r\n\t\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\t\ttypeof Blob === \"function\" &&\r\n\t\t\ttypeof btoa === \"function\") {\r\n\t\t\tstyleElement = createLinkElement(options);\r\n\t\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t\tif(styleElement.href)\r\n\t\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tstyleElement = createStyleElement(options);\r\n\t\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t};\r\n\t\t}\r\n\t\r\n\t\tupdate(obj);\r\n\t\r\n\t\treturn function updateStyle(newObj) {\r\n\t\t\tif(newObj) {\r\n\t\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tupdate(obj = newObj);\r\n\t\t\t} else {\r\n\t\t\t\tremove();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tvar replaceText = (function () {\r\n\t\tvar textStore = [];\r\n\t\r\n\t\treturn function (index, replacement) {\r\n\t\t\ttextStore[index] = replacement;\r\n\t\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t\t};\r\n\t})();\r\n\t\r\n\tfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\t\tvar css = remove ? \"\" : obj.css;\r\n\t\r\n\t\tif (styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t\t} else {\r\n\t\t\tvar cssNode = document.createTextNode(css);\r\n\t\t\tvar childNodes = styleElement.childNodes;\r\n\t\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\t\tif (childNodes.length) {\r\n\t\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t\t} else {\r\n\t\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction applyToTag(styleElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar media = obj.media;\r\n\t\r\n\t\tif(media) {\r\n\t\t\tstyleElement.setAttribute(\"media\", media)\r\n\t\t}\r\n\t\r\n\t\tif(styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = css;\r\n\t\t} else {\r\n\t\t\twhile(styleElement.firstChild) {\r\n\t\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t\t}\r\n\t\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction updateLink(linkElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar sourceMap = obj.sourceMap;\r\n\t\r\n\t\tif(sourceMap) {\r\n\t\t\t// http://stackoverflow.com/a/26603875\r\n\t\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t\t}\r\n\t\r\n\t\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\t\r\n\t\tvar oldSrc = linkElement.href;\r\n\t\r\n\t\tlinkElement.href = URL.createObjectURL(blob);\r\n\t\r\n\t\tif(oldSrc)\r\n\t\t\tURL.revokeObjectURL(oldSrc);\r\n\t}\r\n\r\n\r\n/***/ },\r\n/* 6 */\r\n/***/ function(module, exports) {\r\n\r\n\t\"use strict\";\r\n\t/*\r\n\t * Escapes `\"` charachters from string\r\n\t*/\r\n\tfunction escapeString(str) {\r\n\t    return str.replace('\"', '\\\"');\r\n\t}\r\n\t/*\r\n\t * Determines if a value is an object\r\n\t*/\r\n\tfunction isObject(value) {\r\n\t    var type = typeof value;\r\n\t    return !!value && (type == 'object');\r\n\t}\r\n\texports.isObject = isObject;\r\n\t/*\r\n\t * Gets constructor name of an object.\r\n\t * From http://stackoverflow.com/a/332429\r\n\t *\r\n\t*/\r\n\tfunction getObjectName(object) {\r\n\t    if (object === undefined) {\r\n\t        return '';\r\n\t    }\r\n\t    if (object === null) {\r\n\t        return 'Object';\r\n\t    }\r\n\t    if (typeof object === 'object' && !object.constructor) {\r\n\t        return 'Object';\r\n\t    }\r\n\t    var funcNameRegex = /function ([^(]*)/;\r\n\t    var results = (funcNameRegex).exec((object).constructor.toString());\r\n\t    if (results && results.length > 1) {\r\n\t        return results[1];\r\n\t    }\r\n\t    else {\r\n\t        return '';\r\n\t    }\r\n\t}\r\n\texports.getObjectName = getObjectName;\r\n\t/*\r\n\t * Gets type of an object. Returns \"null\" for null objects\r\n\t*/\r\n\tfunction getType(object) {\r\n\t    if (object === null) {\r\n\t        return 'null';\r\n\t    }\r\n\t    return typeof object;\r\n\t}\r\n\texports.getType = getType;\r\n\t/*\r\n\t * Generates inline preview for a JavaScript object based on a value\r\n\t*/\r\n\tfunction getValuePreview(object, value) {\r\n\t    var type = getType(object);\r\n\t    if (type === 'null' || type === 'undefined') {\r\n\t        return type;\r\n\t    }\r\n\t    if (type === 'string') {\r\n\t        value = '\"' + escapeString(value) + '\"';\r\n\t    }\r\n\t    if (type === 'function') {\r\n\t        // Remove content of the function\r\n\t        return object.toString()\r\n\t            .replace(/[\\r\\n]/g, '')\r\n\t            .replace(/\\{.*\\}/, '') + '{…}';\r\n\t    }\r\n\t    return value;\r\n\t}\r\n\texports.getValuePreview = getValuePreview;\r\n\t/*\r\n\t * Generates inline preview for a JavaScript object\r\n\t*/\r\n\tfunction getPreview(object) {\r\n\t    var value = '';\r\n\t    if (isObject(object)) {\r\n\t        value = getObjectName(object);\r\n\t        if (Array.isArray(object))\r\n\t            value += '[' + object.length + ']';\r\n\t    }\r\n\t    else {\r\n\t        value = getValuePreview(object, object);\r\n\t    }\r\n\t    return value;\r\n\t}\r\n\texports.getPreview = getPreview;\r\n\t/*\r\n\t * Generates a prefixed CSS class name\r\n\t*/\r\n\tfunction cssClass(className) {\r\n\t    return \"json-formatter-\" + className;\r\n\t}\r\n\texports.cssClass = cssClass;\r\n\t/*\r\n\t  * Creates a new DOM element wiht given type and class\r\n\t  * TODO: move me to helpers\r\n\t*/\r\n\tfunction createElement(type, className, content) {\r\n\t    var el = document.createElement(type);\r\n\t    if (className) {\r\n\t        el.classList.add(cssClass(className));\r\n\t    }\r\n\t    if (content !== undefined) {\r\n\t        if (content instanceof Node) {\r\n\t            el.appendChild(content);\r\n\t        }\r\n\t        else {\r\n\t            el.appendChild(document.createTextNode(String(content)));\r\n\t        }\r\n\t    }\r\n\t    return el;\r\n\t}\r\n\texports.createElement = createElement;\r\n\r\n\r\n/***/ }\r\n/******/ ])\r\n});\r\n;\r\n//# sourceMappingURL=json-formatter.js.map"
  },
  {
    "path": "media/result.tmpl",
    "content": "<!DOCTYPE html>\r\n<html>\r\n<meta charset='utf-8'>\r\n\r\n<head>\r\n{{{header}}}\r\n    <style>\r\n        .json-formatter-dark.json-formatter-row,\r\n        .code {\r\n            font-family:{{{fontFamily}}};\r\n            font-size: {{{fontSize}}}px;\r\n        }\r\n\r\n        body {\r\n            font-family:{{{fontFamily}}};\r\n            font-size: {{{fontSize}}}px;\r\n        }\r\n    </style>\r\n</head>\r\n\r\n<body>\r\n    <a id=\"commander\"></a>\r\n\r\n    <div class=\"info {{err}}\">\r\n        <table>\r\n            <tbody>\r\n                <tr>\r\n                    <th>Host</th>\r\n                    <td>{{host}}</td>\r\n                </tr>\r\n                <!-- <tr><th>Time Taken</th><td>{{time}}ms</td></tr> -->\r\n                <tr>\r\n                    <td class='msg {{err}}'>{{statusText}}</td>\r\n                    <td></td>\r\n                </tr>\r\n            </tbody>\r\n        </table>\r\n\r\n    </div>\r\n    </div>\r\n\r\n    <div class=\"code\">\r\n        {{{plain}}}\r\n    </div>\r\n\r\n\r\n    <div style=\"display:none\">\r\n        <menu id=\"html5menu\" style=\"display:none\" class=\"showcase\">\r\n            <command label=\"copy JSON path\" onclick=\"copy_path(1)\"></command>\r\n            <command label=\"copy JSON content\" onclick=\"copy_content()\"></command>\r\n        </menu>\r\n    </div>\r\n\r\n    <script>\r\n        const myJSON = {{{json}}};\r\n        const formatter = new JSONFormatter(myJSON, Infinity, { theme: 'dark' });\r\n        document.getElementsByClassName(\"code\")[0].appendChild(formatter.render());\r\n    </script>\r\n    <script>\r\n        $(function () {\r\n            $.contextMenu({\r\n                selector: '.json-formatter-row',\r\n                items: $.contextMenu.fromMenu($('#html5menu'))\r\n            });\r\n        });\r\n    </script>\r\n\r\n    <script>\r\n        $(function () {\r\n            $.contextMenu({\r\n                selector: '.json-formatter-row',\r\n                items: $.contextMenu.fromMenu($('#html5menu'))\r\n            });\r\n        });\r\n\r\n        function copy_path(clip) {\r\n            var r = $(\".context-menu-active\");\r\n            var i = 20;\r\n            var last = '';\r\n            var path = '';\r\n            while (r && i > 0) {\r\n                var a = r.closest(\".json-formatter-row\");\r\n                var t = a.children(\"a\").children(\".json-formatter-key\");\r\n                if (t[0] == undefined)\r\n                    break;\r\n                var str = t[0].textContent;\r\n                var t2 = a.children(\"div\")\r\n                    .attr(\"class\")\r\n                    .replace(\"json-formatter-children\", \"\")\r\n                    .replace(\"json-formatter-object\", \"\")\r\n                    .trim();\r\n\r\n                if (last.length > 0) {\r\n                    if (t2 === 'json-formatter-array') {\r\n                        path = '[' + last + ']' + path;\r\n                    } else {\r\n                        path = '[\"' + last + '\"]' + path;\r\n                    }\r\n                }\r\n                r = a.parent();\r\n                last = str.substring(0, str.length - 1);\r\n                i -= 1;\r\n            }\r\n            path = '[\"' + last + '\"]' + path;\r\n            if (clip == 1) {\r\n                var command = encodeURI('command:extension.setClip?' + JSON.stringify(['${uri}', path]));\r\n                $(\"#commander\").attr(\"href\", command);\r\n                $(\"#commander\")[0].click();\r\n            }\r\n            return path;\r\n        }\r\n\r\n        function copy_content() {\r\n\r\n            var q = copy_path(0);\r\n            q = 'var result = myJSON' + q;\r\n            eval(q);\r\n\r\n            var command = encodeURI('command:extension.setClip?' + JSON.stringify(['${uri}', result]));\r\n            $(\"#commander\").attr(\"href\", command);\r\n            $(\"#commander\")[0].click();\r\n        }\r\n    </script>\r\n\r\n\r\n</body>\r\n\r\n</html>"
  },
  {
    "path": "media/results.css",
    "content": ".info {\r\n    background-color: rgba(85, 85, 85, .85);\r\n    padding: 10px 10px;\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    right: 0;\r\n    border-bottom: 2px solid #66BB6A;\r\n}\r\n\r\n.info.err {\r\n    border-bottom: 2px solid #ef5350;\r\n}\r\n.info.wait {\r\n    border-bottom: 2px solid #fff;\r\n}\r\n\r\n.msg {\r\n    color: #66BB6A;\r\n}\r\n\r\n.msg.err {\r\n    color: #ef5350;\r\n}\r\n\r\n.msg.wait {\r\n    color: #fff;\r\n}\r\n\r\n.sep{\r\n    height: 1px;\r\n    margin: 7px 0 2px 0;\r\n    background-color: rgba(200,200,200,0.1);\r\n}\r\n\r\n.tool.box{\r\n    float: right; \r\n    }\r\n\r\n.tool.btn{\r\n    display: inline-block;\r\n    padding: 3px 7px;\r\n    /*margin: 1px;*/\r\n    /*background-color: rgba(200,200,200,0.1);*/\r\n    color: #aaa;\r\n    /*border: 1px solid rgba(200,200,200,0.1);*/\r\n}\r\n\r\n.tool.btn:hover{\r\n    color: #fff;\r\n    background-color: rgba(200,200,200,0.1);\r\n    /*background-color: #337ab7;*/\r\n    /*border: 1px solid #eee;*/\r\n}\r\n\r\n\r\n.code {\r\n    overflow-y: scroll;\r\n    height: 100%;\r\n    margin-top: 100px;\r\n}\r\n\r\ntd,\r\nth {\r\n    padding: 0px 10px;\r\n    text-align: left;\r\n}"
  },
  {
    "path": "package.json",
    "content": "{\n    \"name\": \"elastic\",\n    \"displayName\": \"Elasticsearch for VSCode\",\n    \"description\": \"Elasticsearch client like Kibana console for vscode\",\n    \"version\": \"1.0.38\",\n    \"publisher\": \"ria\",\n    \"icon\": \"media/elastic.png\",\n    \"main\": \"./out/extension.js\",\n    \"scripts\": {\n        \"vscode:prepublish\": \"npm run package\",\n        \"package\": \"webpack --mode production --devtool hidden-source-map\",\n        \"test\": \"npm run package\",\n        \"compile\": \"webpack\",\n        \"watch\": \"webpack --watch\",\n        \"format\": \"prettier --write \\\"src/**/*.{js,jsx,ts,tsx}\\\"\",\n        \"removeUnusedImports\": \"tslint --config tslint-imports.json --fix --project .\",\n        \"deploy\": \"cross-env-shell \\\"vsce publish --yarn --githubBranch $BRANCH --baseContentUrl $REPO_URL --baseImagesUrl $REPO_URL --pat $VSCE_PAT\\\"\",\n        \"postinstall\": \"husky install\",\n        \"updateDep\": \"npm-check-updates -u\"\n    },\n    \"engines\": {\n        \"vscode\": \"^1.66.0\"\n    },\n    \"galleryBanner\": {\n        \"color\": \"#005571\",\n        \"theme\": \"dark\"\n    },\n    \"categories\": [\n        \"Other\",\n        \"Programming Languages\",\n        \"Snippets\"\n    ],\n    \"keywords\": [\n        \"Elasticsearch\",\n        \"Kibana\",\n        \"Elastic\",\n        \"Elastic client\",\n        \"es\"\n    ],\n    \"tags\": [\n        \"Elasticsearch\",\n        \"Elastic\",\n        \"Kibana\"\n    ],\n    \"bugs\": {\n        \"url\": \"https://github.com/hsen-dev/vscode-elastic/issues\"\n    },\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/hsen-dev/vscode-elastic.git\"\n    },\n    \"activationEvents\": [\n        \"onLanguage:es\",\n        \"onCommand:extension.execute\",\n        \"onCommand:extension.setHost\"\n    ],\n    \"contributes\": {\n        \"commands\": [\n            {\n                \"command\": \"extension.setHost\",\n                \"title\": \"Elasticsearch: Set Host\",\n                \"category\": \"ES\"\n            }\n        ],\n        \"languages\": [\n            {\n                \"id\": \"es\",\n                \"aliases\": [\n                    \"ElasticSearch\",\n                    \"es\",\n                    \"elasticsearch\"\n                ],\n                \"extensions\": [\n                    \"es\"\n                ],\n                \"configuration\": \"./grammar/es.configuration.json\"\n            }\n        ],\n        \"grammars\": [\n            {\n                \"language\": \"es\",\n                \"scopeName\": \"source.es\",\n                \"path\": \"./grammar/es.tmLanguage\"\n            }\n        ],\n        \"configuration\": {\n            \"title\": \"Elasticsearch\",\n            \"properties\": {\n                \"elastic.showResultAsDocument\": {\n                    \"type\": \"boolean\",\n                    \"default\": true,\n                    \"description\": \"Show result in a new json file, or show in default view\"\n                },\n                \"elastic.host\": {\n                    \"type\": \"string\",\n                    \"default\": \"http://localhost:9200\",\n                    \"description\": \"Elasticsearch Host\"\n                }\n            }\n        },\n        \"keybindings\": [\n            {\n                \"key\": \"ctrl+enter\",\n                \"command\": \"extension.execute\",\n                \"when\": \"editorTextFocus && resourceLangId == 'es'\"\n            },\n            {\n                \"command\": \"extension.execute\",\n                \"key\": \"alt+Enter\",\n                \"when\": \"editorTextFocus && resourceLangId==es\"\n            }\n        ]\n    },\n    \"dependencies\": {\n        \"cross-env\": \"^7.0.3\",\n        \"axios\": \"^0.26.1\",\n        \"copy-paste\": \"^1.3.0\",\n        \"json-markup\": \"^1.1.3\",\n        \"jsonc-parser\": \"^3.0.0\",\n        \"mustache\": \"^4.2.0\",\n        \"path\": \"^0.12.7\",\n        \"routington\": \"^1.0.3\",\n        \"semver-closest\": \"^0.1.2\"\n    },\n    \"devDependencies\": {\n        \"@types/copy-paste\": \"^1.1.30\",\n        \"@types/mocha\": \"^9.1.0\",\n        \"@types/node\": \"^17.0.25\",\n        \"@types/vscode\": \"^1.66.0\",\n        \"del\": \"^6.0.0\",\n        \"husky\": \"^7.0.4\",\n        \"jsesc\": \"^3.0.2\",\n        \"mocha\": \"^9.2.2\",\n        \"npm-check-updates\": \"^12.5.9\",\n        \"prettier\": \"^2.6.2\",\n        \"require-dir\": \"^1.2.0\",\n        \"ts-loader\": \"^9.2.8\",\n        \"tslib\": \"^2.3.1\",\n        \"tslint\": \"^6.1.3\",\n        \"tslint-etc\": \"^1.13.10\",\n        \"typescript\": \"^4.6.3\",\n        \"vsce\": \"^2.7.0\",\n        \"vscode-test\": \"^1.6.1\",\n        \"webpack\": \"^5.72.0\",\n        \"webpack-cli\": \"^4.9.2\"\n    }\n}\n"
  },
  {
    "path": "src/ElasticCodeLensProvider.ts",
    "content": "import * as vscode from 'vscode';\r\nimport { ElasticDecoration } from './ElasticDecoration';\r\nimport { ElasticMatches } from './ElasticMatches';\r\n\r\nexport class ElasticCodeLensProvider implements vscode.CodeLensProvider {\r\n    decoration: ElasticDecoration;\r\n    context: vscode.ExtensionContext;\r\n\r\n    public constructor(context: vscode.ExtensionContext) {\r\n        this.context = context;\r\n        this.decoration = new ElasticDecoration(context);\r\n    }\r\n\r\n    public provideCodeLenses(document: vscode.TextDocument, _token: vscode.CancellationToken) {\r\n        var esMatches = new ElasticMatches(vscode.window.activeTextEditor!);\r\n\r\n        var ret: any[] = [];\r\n\r\n        esMatches.Matches.forEach(em => {\r\n            if (em.Error.Text == null) {\r\n                ret.push(\r\n                    new vscode.CodeLens(em.Method.Range, {\r\n                        title: '▶ Run Query',\r\n                        command: 'extension.execute',\r\n                        arguments: [em],\r\n                    }),\r\n                );\r\n\r\n                if (em.HasBody) {\r\n                    var command = {\r\n                        title: '⚡Auto indent',\r\n                        command: 'extension.lint',\r\n                        arguments: [em] as any,\r\n                    };\r\n\r\n                    if (em.File && em.File.Text) {\r\n                        command = {\r\n                            title: '📂Open File',\r\n                            command: 'extension.open',\r\n                            arguments: [em],\r\n                        };\r\n                    }\r\n                    ret.push(new vscode.CodeLens(em.Method.Range, command));\r\n                }\r\n            } else {\r\n                if (em.File) {\r\n                    command = {\r\n                        title: '⚠️File NotExist',\r\n                        command: '',\r\n                        arguments: undefined,\r\n                    };\r\n                    if (em.File.Text) {\r\n                        command = {\r\n                            title: '⚠️Invalid JsonFile',\r\n                            command: '',\r\n                            arguments: undefined,\r\n                        };\r\n                    }\r\n                    ret.push(new vscode.CodeLens(em.Method.Range, command));\r\n                } else if (em.Error.Text != null) {\r\n                    ret.push(\r\n                        new vscode.CodeLens(em.Method.Range, {\r\n                            title: '⚠️Invalid Json',\r\n                            command: '',\r\n                        }),\r\n                    );\r\n                }\r\n            }\r\n        });\r\n        return ret;\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/ElasticCompletionItemProvider.ts",
    "content": "import { ElasticMatch } from './ElasticMatch';\r\nimport { ElasticMatches } from './ElasticMatches';\r\nimport * as vscode from 'vscode';\r\nimport * as os from 'os';\r\nimport { getHost } from './extension';\r\nimport axiosInstance from './axiosInstance';\r\nconst routington = require('routington');\r\nconst closestSemver = require('semver-closest');\r\n\r\nexport class ElasticCompletionItemProvider implements vscode.CompletionItemProvider, vscode.HoverProvider {\r\n    private readonly context: vscode.ExtensionContext;\r\n    private readonly restSpec: any;\r\n\r\n    constructor(context: vscode.ExtensionContext) {\r\n        this.context = context;\r\n        this.restSpec = this.buildRestSpecRouter();\r\n    }\r\n\r\n    private buildRestSpecRouter() {\r\n        const restSpec = require('./rest-spec').default;\r\n        const versions = Object.keys(restSpec);\r\n        const result: any = {};\r\n\r\n        versions.forEach(version => {\r\n            const endpointDescriptions = restSpec[version].default;\r\n            const common = endpointDescriptions._common;\r\n            delete endpointDescriptions._common;\r\n            const endpointNames = Object.keys(endpointDescriptions);\r\n\r\n            const router = (result[version] = routington());\r\n\r\n            endpointNames.forEach(endpointName => {\r\n                const endpointDescription = endpointDescriptions[endpointName];\r\n                if (common) {\r\n                    if (endpointDescription.url.params)\r\n                        Object.keys(common.params).forEach(param => (endpointDescription.url.params[param] = common.params[param]));\r\n                    else endpointDescription.url.params = common.params;\r\n                }\r\n\r\n                const paths = endpointDescription.url.paths.map((path: any) => path.replace(/\\{/g, ':').replace(/\\}/g, ''));\r\n                const methods = endpointDescription.methods;\r\n                methods.forEach((method: any) => paths.forEach((path: any) => (router.define(`${method}${path}`)[0].spec = endpointDescription)));\r\n            });\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    provideCompletionItems(\r\n        document: vscode.TextDocument,\r\n        position: vscode.Position,\r\n        token: vscode.CancellationToken,\r\n    ): vscode.ProviderResult<vscode.CompletionItem[] | vscode.CompletionList> {\r\n        return this.asyncProvideCompletionItems(document, position, token);\r\n    }\r\n\r\n    provideHover(document: vscode.TextDocument, position: vscode.Position): Promise<vscode.Hover | undefined> {\r\n        return this.asyncProvideHover(document, position);\r\n    }\r\n\r\n    private async asyncProvideHover(document: vscode.TextDocument, position: vscode.Position): Promise<vscode.Hover | undefined> {\r\n        let esVersion = (await this.getElasticVersion()) || '6.0.0';\r\n        if (!esVersion) return;\r\n\r\n        let apiVersion = closestSemver(esVersion, Object.keys(this.restSpec));\r\n        let restSpec = this.restSpec[apiVersion];\r\n        if (!restSpec) return;\r\n\r\n        const line = document.lineAt(position);\r\n        var match = ElasticMatch.RegexMatch.exec(line.text);\r\n\r\n        var params = [];\r\n\r\n        if (match != null) {\r\n            let range = line.range;\r\n            var path = match[2].split('?')[0];\r\n            path.split('/').pop();\r\n            const m = restSpec.match(`${match[1]}${path}`);\r\n            if (!m) return;\r\n            if (m.node.spec.body) params.push(`${m.node.spec.body.description}`);\r\n\r\n            if (m.node.spec.url.params) {\r\n                params.push(os.EOL + 'url params:');\r\n                for (var i in m.node.spec.url.params) {\r\n                    var p = m.node.spec.url.params[i];\r\n                    var text = `* ${i} *(${p.type})*`;\r\n                    params.push(text);\r\n                }\r\n            }\r\n\r\n            var htm = [`${m.node.spec.methods.join(' | ')} **${m.node.string}** ([documentation](${m.node.spec.documentation}))`, params.join(os.EOL)];\r\n\r\n            return Promise.resolve<vscode.Hover>(new vscode.Hover(htm, range));\r\n        }\r\n        return;\r\n    }\r\n\r\n    private async asyncProvideCompletionItems(\r\n        document: vscode.TextDocument,\r\n        position: vscode.Position,\r\n        token: vscode.CancellationToken,\r\n    ): Promise<vscode.CompletionItem[] | vscode.CompletionList> {\r\n        let esVersion = await this.getElasticVersion();\r\n        esVersion = '6.0.0';\r\n        if (!esVersion) return [];\r\n\r\n        const editor = vscode.window.activeTextEditor!;\r\n        let esMatch = new ElasticMatches(editor).Selection;\r\n        if (!esMatch) return [];\r\n\r\n        let apiVersion = closestSemver(esVersion, Object.keys(this.restSpec));\r\n        let restSpec = this.restSpec[apiVersion];\r\n        if (!restSpec) return [];\r\n\r\n        if (this.isPathCompletion(esMatch, position)) return this.providePathCompletionItem(esMatch, restSpec);\r\n        else if (this.isPathParamCompletion(esMatch, position)) return this.providePathParamCompletionItem(esMatch, restSpec);\r\n\r\n        console.log(esMatch.Body.Text);\r\n\r\n        return [];\r\n    }\r\n\r\n    private async providePathParamCompletionItem(esMatch: any, restSpec: any): Promise<vscode.CompletionItem[] | vscode.CompletionList> {\r\n        const match = restSpec.match(`${esMatch.Method.Text}${esMatch.Path.Text.split('?')[0]}`);\r\n        if (!match) return [];\r\n        return Object.keys(match.node.spec.url.params).map(param => new vscode.CompletionItem(param));\r\n    }\r\n\r\n    private async providePathCompletionItem(esMatch: any, restSpec: any): Promise<vscode.CompletionItem[] | vscode.CompletionList> {\r\n        let parts = (esMatch.Path.Text as string).split('/').filter(part => part.length);\r\n        let parent = restSpec.child[esMatch.Method.Text];\r\n        let grandParent: any;\r\n\r\n        parts.forEach(part => {\r\n            if (!parent) return;\r\n            grandParent = parent;\r\n            parent = part in parent.child ? parent.child[part] : parent.children[0];\r\n        });\r\n\r\n        if (!parent) return [];\r\n\r\n        let result: any[] = [];\r\n        let variable = parent.children[0];\r\n\r\n        if (variable) {\r\n            if (variable.name == 'index') {\r\n                result = result.concat(\r\n                    (await this.listIndices()).map(index => ({\r\n                        label: index,\r\n                    })),\r\n                );\r\n                result = result.concat(\r\n                    (await this.listAliases()).map(index => ({\r\n                        label: index,\r\n                    })),\r\n                );\r\n            } else if (variable.name == 'name' && grandParent && grandParent.string === '_alias')\r\n                result = result.concat(\r\n                    (await this.listAliases()).map(index => ({\r\n                        label: index,\r\n                    })),\r\n                );\r\n            else if (variable.name == 'repository')\r\n                result = result.concat(\r\n                    (await this.listRepositories()).map(repository => ({\r\n                        label: repository,\r\n                    })),\r\n                );\r\n            else result.push({ label: `<${variable.name}>` });\r\n        }\r\n\r\n        result = result.concat(\r\n            Object.keys(parent.child).map(child => ({\r\n                label: child,\r\n            })),\r\n        );\r\n\r\n        return result.filter(part => part.label.length).map(part => new vscode.CompletionItem(part.label));\r\n    }\r\n\r\n    private isPathCompletion(esMatch: ElasticMatch, position: vscode.Position): boolean {\r\n        return esMatch.Method.Range.start.line === position.line && esMatch.Path.Text[esMatch.Path.Text.length - 1] === '/';\r\n    }\r\n\r\n    private isPathParamCompletion(esMatch: ElasticMatch, position: vscode.Position): boolean {\r\n        return (\r\n            esMatch.Method.Range.start.line === position.line &&\r\n            (esMatch.Path.Text[esMatch.Path.Text.length - 1] === '?' || esMatch.Path.Text[esMatch.Path.Text.length - 1] === '&')\r\n        );\r\n    }\r\n    //private lookupEndpoint(esVersion: string, )\r\n\r\n    private async listIndices(): Promise<string[]> {\r\n        const host = getHost(this.context);\r\n        return await axiosInstance\r\n            .get(`${host}/_cat/indices?format=json`)\r\n            .then(res => res.data.map((entry: any) => entry.index) as string[])\r\n            .catch(() => [] as string[]);\r\n    }\r\n    private async listAliases(): Promise<string[]> {\r\n        const host = getHost(this.context);\r\n        return await axiosInstance\r\n            .get(`${host}/_cat/aliases?format=json`)\r\n            .then(res => res.data.map((entry: any) => entry.alias) as string[])\r\n            .catch(() => [] as string[]);\r\n    }\r\n\r\n    private async listRepositories(): Promise<string[]> {\r\n        const host = getHost(this.context);\r\n        return await axiosInstance\r\n            .get(`${host}/_snapshot`)\r\n            .then(res => Object.keys(res.data) as string[])\r\n            .catch(() => [] as string[]);\r\n    }\r\n\r\n    private async getElasticVersion(): Promise<string | null> {\r\n        const host = getHost(this.context);\r\n        return await axiosInstance\r\n            .get(`${host}`)\r\n            .then(res => res.data.version.number as string)\r\n            .catch(() => null);\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/ElasticContentProvider.ts",
    "content": "import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport fs = require('fs');\r\nconst Mustache = require('mustache');\r\n\r\nexport class ElasticContentProvider implements vscode.TextDocumentContentProvider {\r\n    host!: string;\r\n    time!: number;\r\n    context!: vscode.ExtensionContext;\r\n    statusCode!: number;\r\n    statusText!: string;\r\n    results!: string;\r\n\r\n    searchQuery!: string;\r\n\r\n    public contentUri = vscode.Uri.parse('elasticsearch://results');\r\n    private changeEvent = new vscode.EventEmitter<vscode.Uri>();\r\n\r\n    public provideTextDocumentContent(uri: vscode.Uri, token: vscode.CancellationToken): string | Thenable<string> {\r\n        let json = '';\r\n        let plain = '';\r\n\r\n        const config = vscode.workspace.getConfiguration();\r\n\r\n        if (typeof this.results === 'string' && this.results.startsWith('{')) {\r\n            json = this.results;\r\n        } else if (typeof this.results === 'string' && this.results.indexOf('\\n')) {\r\n            plain = this.results.replace(/\\n/g, '<br/>').replace(/\\r/g, '<br/>');\r\n        } else if (typeof this.results === 'object') {\r\n            json = JSON.stringify(this.results);\r\n        } else {\r\n            plain = this.results;\r\n        }\r\n\r\n        let mediaPath = this.getPath('media');\r\n\r\n        let header = `<script src=\"${mediaPath}/json-formatter.js\"></script>\r\n                  <script src=\"${mediaPath}/jquery.min.js\"></script>\r\n                  <script src=\"${mediaPath}/jquery.contextMenu.js\"></script>\r\n                  <link rel=\"stylesheet\" type=\"text/css\" href=\"${mediaPath}/results.css\">\r\n                  <link rel=\"stylesheet\" type=\"text/css\" href=\"${mediaPath}/jquery.contextMenu.css\">`;\r\n\r\n        let err = '';\r\n        if (this.statusCode != 200) {\r\n            err = 'err';\r\n        }\r\n        if (this.statusCode == 0) {\r\n            err = 'wait';\r\n        }\r\n\r\n        var data = fs.readFileSync(this.getPath('media/result.tmpl'), 'utf-8');\r\n        var result = Mustache.render(data, {\r\n            fontSize: config.get('editor.fontSize'),\r\n            fontFamily: config.get('editor.fontFamily'),\r\n            header: header,\r\n            err: err,\r\n            statusCode: this.statusCode,\r\n            statusText: this.statusText,\r\n            plain: plain,\r\n            json: json,\r\n            host: this.host,\r\n            time: this.time,\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    update(context: any, host: any, results: any, time_el: any, statusCode: any, statusText: any) {\r\n        this.results = results;\r\n        this.host = host;\r\n        this.time = time_el;\r\n        this.context = context;\r\n        this.statusCode = statusCode;\r\n        this.statusText = statusText;\r\n        this.changeEvent.fire(this.contentUri);\r\n    }\r\n    getPath(p: any) {\r\n        return path.join(this.context.extensionPath, p);\r\n    }\r\n\r\n    get onDidChange() {\r\n        return this.changeEvent.event;\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/ElasticDecoration.ts",
    "content": "import * as vscode from 'vscode';\r\nimport { ElasticMatches } from './ElasticMatches';\r\nimport { getHost } from './extension';\r\n\r\nexport class ElasticDecoration {\r\n    pHighlight: vscode.TextEditorDecorationType;\r\n    bHighlight: vscode.TextEditorDecorationType;\r\n    bHighlightSelected: vscode.TextEditorDecorationType;\r\n    mHighlight: vscode.TextEditorDecorationType;\r\n    errHighlight: vscode.TextEditorDecorationType;\r\n\r\n    context: vscode.ExtensionContext;\r\n\r\n    public constructor(context: vscode.ExtensionContext) {\r\n        this.context = context;\r\n        getHost(context);\r\n\r\n        this.pHighlight = vscode.window.createTextEditorDecorationType({\r\n            light: {\r\n                color: 'rgb(0,191,171)',\r\n                // after: { contentText: ' • ' + host, color: 'lightgray' }\r\n            },\r\n            dark: {\r\n                color: 'rgb(0,191,171)',\r\n                // after: { contentText: ' • ' + host, color: 'gray' }\r\n            },\r\n        });\r\n\r\n        this.bHighlight = vscode.window.createTextEditorDecorationType({\r\n            isWholeLine: true,\r\n            light: {\r\n                gutterIconSize: 'contain',\r\n                backgroundColor: 'rgba(200, 200, 200, 0.2)',\r\n                gutterIconPath: this.context.asAbsolutePath('./media/gutter-dis-light.svg'),\r\n            },\r\n            dark: {\r\n                gutterIconSize: 'contain',\r\n                backgroundColor: 'rgba(50, 50, 50, 0.3)',\r\n                gutterIconPath: this.context.asAbsolutePath('./media/gutter-dis-dark.svg'), //vscode.Uri.parse('data:image/svg+xml;base64,PHN2ZyB4b+'),\r\n            },\r\n        });\r\n\r\n        this.bHighlightSelected = vscode.window.createTextEditorDecorationType({\r\n            isWholeLine: true,\r\n            gutterIconPath: this.context.asAbsolutePath('./media/gutter.svg'), //vscode.Uri.parse('data:image/svg+xml;base64,PHN2ZyB4b+'),\r\n            gutterIconSize: 'contain',\r\n            light: {\r\n                backgroundColor: 'rgba(200, 200, 200, 0.2)',\r\n            },\r\n            dark: {\r\n                backgroundColor: 'rgba(50, 50, 50, 0.3)',\r\n            },\r\n        });\r\n\r\n        this.mHighlight = vscode.window.createTextEditorDecorationType({\r\n            rangeBehavior: vscode.DecorationRangeBehavior.ClosedClosed,\r\n            light: {\r\n                color: '#EF5098',\r\n            },\r\n            dark: {\r\n                color: '#EF5098',\r\n            },\r\n            overviewRulerColor: '#0271bc',\r\n            overviewRulerLane: vscode.OverviewRulerLane.Left,\r\n        });\r\n\r\n        this.errHighlight = vscode.window.createTextEditorDecorationType({\r\n            borderWidth: '1px',\r\n            borderStyle: 'solid',\r\n            light: {\r\n                borderColor: 'rgba(255,0,0,0.5)',\r\n                backgroundColor: 'rgba(255,0,0,0.25)',\r\n            },\r\n            dark: {\r\n                borderColor: 'rgba(255,0,0,0.5)',\r\n                backgroundColor: 'rgba(255,0,0,0.25)',\r\n            },\r\n            overviewRulerColor: 'rgba(255,0,0,0.5)',\r\n            overviewRulerLane: vscode.OverviewRulerLane.Left,\r\n        });\r\n    }\r\n\r\n    public UpdateDecoration(esMatches: ElasticMatches) {\r\n        getHost(this.context);\r\n        var editor = esMatches.Editor;\r\n        var matches = esMatches.Matches;\r\n\r\n        editor.setDecorations(\r\n            this.mHighlight,\r\n            matches.map(m => m.Method.Range).filter(x => !!x),\r\n        );\r\n        editor.setDecorations(\r\n            this.pHighlight,\r\n            matches.map(p => p.Path.Range).filter(x => !!x),\r\n        );\r\n        editor.setDecorations(\r\n            this.bHighlight,\r\n            matches\r\n                .filter(x => !x.Selected)\r\n                .map(b => b.Range)\r\n                .filter(x => !!x),\r\n        );\r\n        editor.setDecorations(\r\n            this.errHighlight,\r\n            matches.map(e => e.Error.Range).filter(x => !!x),\r\n        );\r\n        editor.setDecorations(\r\n            this.bHighlightSelected,\r\n            matches.filter(x => x.Selected).map(b => b.Range),\r\n        );\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/ElasticMatch.ts",
    "content": "import * as vscode from 'vscode';\r\nimport * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport stripJsonComments from './helpers';\r\n\r\nexport class ElasticItem {\r\n    public Range!: vscode.Range;\r\n    public Text!: string;\r\n}\r\n\r\nexport class ElasticMatch {\r\n    static RegexMatch: RegExp = /^(GET|POST|DELETE|PUT)\\s+([A-Za-z0-9\\-\\._~:\\/#\\[\\]@!$&'\"%\\(\\)\\*+,;=`?]+)\\s*$/gim;\r\n    Error: ElasticItem;\r\n    Path: ElasticItem;\r\n    Body: ElasticItem;\r\n    Method: ElasticItem;\r\n    File!: ElasticItem;\r\n    Range: vscode.Range;\r\n    HasBody: boolean = false;\r\n    Selected: boolean = false;\r\n    IsBulk: boolean = false;\r\n\r\n    public constructor(headLine: vscode.TextLine, match: RegExpExecArray) {\r\n        let lrange = new vscode.Range(headLine.lineNumber, match[1].length + 1, headLine.lineNumber, headLine.text.length);\r\n        let mrange = new vscode.Range(headLine.lineNumber, 0, headLine.lineNumber, match[1].length);\r\n\r\n        this.Method = { Text: match[1], Range: mrange };\r\n        this.Path = { Text: match[2], Range: lrange };\r\n        this.Body = new ElasticItem();\r\n        this.Error = new ElasticItem();\r\n\r\n        const editor = vscode.window.activeTextEditor!;\r\n\r\n        let lm = 1;\r\n        let txt = '';\r\n        let line = this.Method.Range.start.line + 1;\r\n        let ln = line;\r\n\r\n        let url = match[2].split('?')[0];\r\n        this.IsBulk = url === '_bulk' || url.endsWith('/_bulk');\r\n\r\n        while (editor.document.lineCount > ln) {\r\n            var t = editor.document.lineAt(ln).text;\r\n\r\n            var m = ElasticMatch.RegexMatch.exec(t);\r\n            if (m != null) break;\r\n\r\n            txt += t + '\\n';\r\n            lm = editor.document.lineAt(ln).text.length;\r\n            ln++;\r\n        }\r\n\r\n        txt = txt.substring(0, txt.length - 1);\r\n\r\n        let sp = new vscode.Position(line, 0);\r\n        let ep = new vscode.Position(ln - 1, lm);\r\n        this.Body.Range = new vscode.Range(sp, ep);\r\n\r\n        let jsonText = txt;\r\n\r\n        if (txt.startsWith('!')) {\r\n            this.File = new ElasticItem();\r\n            this.File.Range = new vscode.Range(line, 1, line, editor.document.lineAt(line).text.trim().length);\r\n            var fPath = txt.substring(1).trim();\r\n            if (!path.isAbsolute(fPath)) {\r\n                fPath = path.join(path.dirname(editor.document.uri.fsPath), fPath);\r\n            }\r\n\r\n            if (fs.existsSync(fPath)) {\r\n                jsonText = fs.readFileSync(fPath).toString();\r\n                this.File.Text = fPath;\r\n            }\r\n        }\r\n\r\n        this.Body.Text = jsonText;\r\n\r\n        try {\r\n            if (!this.IsBulk) JSON.parse(stripJsonComments(jsonText));\r\n            this.HasBody = true;\r\n            this.Range = new vscode.Range(this.Method.Range.start, this.Body.Range.end);\r\n        } catch (error: any) {\r\n            // console.error(error.message)\r\n            this.HasBody = false;\r\n            this.Range = new vscode.Range(this.Method.Range.start, this.Path.Range.end);\r\n            this.Error = this.GetErrorFromMessage(txt, error.message);\r\n        }\r\n    }\r\n\r\n    GetErrorFromMessage(text: string, message: string): ElasticItem {\r\n        var res = new ElasticItem();\r\n\r\n        var regexp = /Position\\s(\\d+)/gim;\r\n        var match = regexp.exec(message);\r\n        if (match) {\r\n            var pos = +match[1];\r\n            text = text.substring(0, pos);\r\n            var lines: string[] = text.split('\\n');\r\n            var char = lines[lines.length - 1].length;\r\n            var line = lines.length + this.Method.Range.start.line;\r\n            res.Range = new vscode.Range(line, char, line, char + 1);\r\n        }\r\n\r\n        if (text.trim().length > 0) res.Text = message;\r\n\r\n        return res;\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/ElasticMatches.ts",
    "content": "import * as vscode from 'vscode';\r\nimport { ElasticMatch } from './ElasticMatch';\r\n\r\nexport class ElasticMatches {\r\n    Editor!: vscode.TextEditor;\r\n    Matches: ElasticMatch[];\r\n    Selection!: ElasticMatch;\r\n\r\n    public constructor(editor: vscode.TextEditor) {\r\n        if (!editor) {\r\n            console.error('updateDecorations(): no active text editor.');\r\n            this.Matches = [];\r\n            return;\r\n        }\r\n        this.Editor = editor;\r\n        this.Matches = [];\r\n\r\n        var matched = false;\r\n\r\n        for (var i = 0; i < editor.document.lineCount; i++) {\r\n            var line = editor.document.lineAt(i);\r\n            var trimedLine = line.text.trim();\r\n            if (trimedLine.length == 0) continue;\r\n\r\n            if (matched && trimedLine.startsWith('{')) this.Matches[this.Matches.length - 1].HasBody = true;\r\n\r\n            matched = false;\r\n            var match = ElasticMatch.RegexMatch.exec(line.text);\r\n\r\n            if (match != null) {\r\n                matched = true;\r\n                let em = new ElasticMatch(line, match);\r\n                this.Matches.push(em);\r\n            }\r\n        }\r\n\r\n        this.UpdateSelection(editor);\r\n    }\r\n\r\n    public UpdateSelection(editor: vscode.TextEditor) {\r\n        this.Editor = editor;\r\n        this.Matches.forEach(element => {\r\n            element.Selected = element.Range.contains(editor.selection);\r\n            if (element.Selected) this.Selection = element;\r\n        });\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/axiosInstance.ts",
    "content": "import axios from 'axios';\r\n\r\n// process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\r\n\r\nexport default axios.create({\r\n    headers: {\r\n        Accept: 'application/json',\r\n        'Content-Type': 'application/json',\r\n    },\r\n});\r\n"
  },
  {
    "path": "src/extension.ts",
    "content": "import * as vscode from 'vscode';\r\nimport path = require('path');\r\nimport * as fs from 'fs';\r\nimport * as os from 'os';\r\nimport { ElasticCompletionItemProvider } from './ElasticCompletionItemProvider';\r\nimport { ElasticCodeLensProvider } from './ElasticCodeLensProvider';\r\nimport { ElasticContentProvider } from './ElasticContentProvider';\r\nimport { ElasticDecoration } from './ElasticDecoration';\r\nimport { ElasticMatch } from './ElasticMatch';\r\nimport { ElasticMatches } from './ElasticMatches';\r\nimport axios, { AxiosError, AxiosResponse } from 'axios';\r\nimport stripJsonComments from './helpers';\r\nimport { JsonPanel } from './jsonPanel';\r\nconst jsonPanel = new JsonPanel();\r\n\r\nexport async function activate(context: vscode.ExtensionContext) {\r\n    getHost(context);\r\n    const languages = ['es', 'elasticsearch'];\r\n    context.subscriptions.push(vscode.languages.registerCodeLensProvider(languages, new ElasticCodeLensProvider(context)));\r\n\r\n    let resultsProvider = new ElasticContentProvider();\r\n    vscode.workspace.registerTextDocumentContentProvider('elasticsearch', resultsProvider);\r\n\r\n    let esMatches: ElasticMatches;\r\n    let decoration: ElasticDecoration;\r\n\r\n    function checkEditor(document: vscode.TextDocument): Boolean {\r\n        if (document === vscode.window.activeTextEditor!.document && document.languageId == 'es') {\r\n            if (esMatches == null || decoration == null) {\r\n                esMatches = new ElasticMatches(vscode.window.activeTextEditor!);\r\n                decoration = new ElasticDecoration(context);\r\n            }\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    if (vscode.window.activeTextEditor && checkEditor(vscode.window.activeTextEditor!.document)) {\r\n        esMatches = new ElasticMatches(vscode.window.activeTextEditor!);\r\n        decoration!.UpdateDecoration(esMatches);\r\n    }\r\n\r\n    vscode.workspace.onDidChangeTextDocument(e => {\r\n        if (checkEditor(e.document)) {\r\n            esMatches = new ElasticMatches(vscode.window.activeTextEditor!);\r\n            decoration.UpdateDecoration(esMatches);\r\n        }\r\n    });\r\n\r\n    vscode.window.onDidChangeTextEditorSelection(e => {\r\n        if (checkEditor(e.textEditor.document)) {\r\n            esMatches.UpdateSelection(e.textEditor);\r\n            decoration.UpdateDecoration(esMatches);\r\n        }\r\n    });\r\n    let esCompletionHover = new ElasticCompletionItemProvider(context);\r\n\r\n    context.subscriptions.push(vscode.languages.registerCompletionItemProvider(languages, esCompletionHover, '/', '?', '&', '\"'));\r\n    context.subscriptions.push(vscode.languages.registerHoverProvider(languages, esCompletionHover));\r\n\r\n    context.subscriptions.push(\r\n        vscode.commands.registerCommand('extension.execute', (em: ElasticMatch) => {\r\n            if (!em) {\r\n                em = esMatches.Selection;\r\n            }\r\n            executeQuery(context, resultsProvider, em);\r\n        }),\r\n    );\r\n\r\n    context.subscriptions.push(\r\n        vscode.commands.registerCommand('extension.setHost', () => {\r\n            setHost(context);\r\n        }),\r\n    );\r\n\r\n    vscode.commands.registerCommand('extension.setClip', (uri, query) => {\r\n        // var ncp = require('copy-paste');\r\n        // ncp.copy(query, function () {\r\n        // vscode.window.showInformationMessage('Copied to clipboard');\r\n        // });\r\n    });\r\n\r\n    context.subscriptions.push(\r\n        vscode.commands.registerCommand('extension.open', (em: ElasticMatch) => {\r\n            var column = 0;\r\n            let uri = vscode.Uri.file(em.File.Text);\r\n            return vscode.workspace\r\n                .openTextDocument(uri)\r\n                .then(textDocument =>\r\n                    vscode.window.showTextDocument(\r\n                        textDocument,\r\n                        column ? (column > vscode.ViewColumn.Three ? vscode.ViewColumn.One : column) : undefined,\r\n                        true,\r\n                    ),\r\n                );\r\n        }),\r\n    );\r\n\r\n    context.subscriptions.push(\r\n        vscode.commands.registerCommand('extension.lint', (em: ElasticMatch) => {\r\n            try {\r\n                let l = em.Method.Range.start.line + 1;\r\n                const editor = vscode.window.activeTextEditor;\r\n                const config = vscode.workspace.getConfiguration('editor');\r\n                const tabSize = +(config.get('tabSize') as number);\r\n\r\n                editor!.edit(editBuilder => {\r\n                    if (em.HasBody) {\r\n                        let txt = editor!.document.getText(em.Body.Range);\r\n                        editBuilder.replace(em.Body.Range, JSON.stringify(JSON.parse(em.Body.Text), null, tabSize));\r\n                    }\r\n                });\r\n            } catch (error: any) {\r\n                console.log(error.message);\r\n            }\r\n        }),\r\n    );\r\n}\r\n\r\nasync function setHost(context: vscode.ExtensionContext): Promise<string> {\r\n    const host = await vscode.window.showInputBox(<vscode.InputBoxOptions>{\r\n        prompt: 'Please enter the elastic host',\r\n        ignoreFocusOut: true,\r\n        value: getHost(context),\r\n    });\r\n\r\n    context.workspaceState.update('elasticsearch.host', host);\r\n    vscode.workspace.getConfiguration().update('elasticsearch.host', host);\r\n    return host || 'localhost:9200';\r\n}\r\n\r\nexport function getHost(context: vscode.ExtensionContext): string {\r\n    return context.workspaceState.get('elasticsearch.host') || vscode.workspace.getConfiguration().get('elasticsearch.host', 'localhost:9200');\r\n}\r\n\r\nexport async function executeQuery(context: vscode.ExtensionContext, resultsProvider: ElasticContentProvider, em: ElasticMatch) {\r\n    const host = getHost(context);\r\n    const startTime = new Date().getTime();\r\n\r\n    const config = vscode.workspace.getConfiguration();\r\n    var asDocument = config.get('elasticsearch.showResultAsDocument');\r\n\r\n    const sbi = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 100);\r\n    sbi.text = '$(search) Executing query ...';\r\n    sbi.show();\r\n\r\n    let response: any;\r\n    try {\r\n        const body = stripJsonComments(em.Body.Text);\r\n        let url = 'http://' + host + (em.Path.Text.startsWith('/') ? '' : '/') + em.Path.Text;\r\n        response = await axios({\r\n            url,\r\n            method: em.Method.Text as any,\r\n            data: body,\r\n            headers: { 'Content-Type': em.IsBulk ? 'application/x-ndjson' : 'application/json' },\r\n        }).catch(error => error as AxiosError<any, any>);\r\n    } catch (error) {\r\n        response = error;\r\n    }\r\n\r\n    sbi.dispose();\r\n    const endTime = new Date().getTime();\r\n    const error = response as AxiosError;\r\n    const data = response as AxiosResponse<any>;\r\n\r\n    let results = data.data;\r\n    if (!results) results = data;\r\n    if (asDocument) {\r\n        try {\r\n            const config = vscode.workspace.getConfiguration('editor');\r\n            const tabSize = +(config.get('tabSize') as number);\r\n            results = JSON.stringify(error.isAxiosError ? error.response?.data : data.data, null, tabSize);\r\n        } catch (error: any) {\r\n            results = data.data || error.response?.data || error.message;\r\n        }\r\n        showResult(results, vscode.window.activeTextEditor!.viewColumn! + 1);\r\n    } else {\r\n        jsonPanel.render(results, `ElasticSearch Results[${endTime - startTime}ms]`);\r\n    }\r\n}\r\n\r\nfunction showResult(result: string, column?: vscode.ViewColumn): Thenable<void> {\r\n    const tempResultFilePath = path.join(os.homedir(), '.vscode-elastic');\r\n    const resultFilePath = vscode.workspace.rootPath || tempResultFilePath;\r\n\r\n    let uri = vscode.Uri.file(path.join(resultFilePath, 'result.json'));\r\n    if (!fs.existsSync(uri.fsPath)) {\r\n        uri = uri.with({ scheme: 'untitled' });\r\n    }\r\n    return vscode.workspace\r\n        .openTextDocument(uri)\r\n        .then(textDocument =>\r\n            vscode.window.showTextDocument(textDocument, column ? (column > vscode.ViewColumn.Three ? vscode.ViewColumn.One : column) : undefined, true),\r\n        )\r\n        .then(editor => {\r\n            editor.edit(editorBuilder => {\r\n                if (editor.document.lineCount > 0) {\r\n                    const lastLine = editor.document.lineAt(editor.document.lineCount - 1);\r\n                    editorBuilder.delete(\r\n                        new vscode.Range(new vscode.Position(0, 0), new vscode.Position(lastLine.range.start.line, lastLine.range.end.character)),\r\n                    );\r\n                }\r\n                editorBuilder.insert(new vscode.Position(0, 0), result);\r\n            });\r\n        });\r\n}\r\n\r\n// this method is called when your extension is deactivated\r\nexport function deactivate() {}\r\n"
  },
  {
    "path": "src/helpers.ts",
    "content": "const singleComment = Symbol('singleComment');\nconst multiComment = Symbol('multiComment');\n\nconst stripWithoutWhitespace = () => '';\nconst stripWithWhitespace = (string: string, start?: number, end?: number) => string.slice(start, end).replace(/\\S/g, ' ');\n\nconst isEscaped = (jsonString: string, quotePosition: number) => {\n    let index = quotePosition - 1;\n    let backslashCount = 0;\n\n    while (jsonString[index] === '\\\\') {\n        index -= 1;\n        backslashCount += 1;\n    }\n\n    return Boolean(backslashCount % 2);\n};\n\nexport default function stripJsonComments(jsonString: string, { whitespace = true } = {}) {\n    if (typeof jsonString !== 'string') {\n        throw new TypeError(`Expected argument \\`jsonString\\` to be a \\`string\\`, got \\`${typeof jsonString}\\``);\n    }\n\n    const strip = whitespace ? stripWithWhitespace : stripWithoutWhitespace;\n\n    let isInsideString: any = false;\n    let isInsideComment: any = false;\n    let offset = 0;\n    let result = '';\n\n    for (let index = 0; index < jsonString.length; index++) {\n        const currentCharacter = jsonString[index];\n        const nextCharacter = jsonString[index + 1];\n\n        if (!isInsideComment && currentCharacter === '\"') {\n            const escaped = isEscaped(jsonString, index);\n            if (!escaped) {\n                isInsideString = !isInsideString;\n            }\n        }\n\n        if (isInsideString) {\n            continue;\n        }\n\n        if (!isInsideComment && currentCharacter + nextCharacter === '//') {\n            result += jsonString.slice(offset, index);\n            offset = index;\n            isInsideComment = singleComment;\n            index++;\n        } else if (isInsideComment === singleComment && currentCharacter + nextCharacter === '\\r\\n') {\n            index++;\n            isInsideComment = false;\n            result += strip(jsonString, offset, index);\n            offset = index;\n            continue;\n        } else if (isInsideComment === singleComment && currentCharacter === '\\n') {\n            isInsideComment = false;\n            result += strip(jsonString, offset, index);\n            offset = index;\n        } else if (!isInsideComment && currentCharacter + nextCharacter === '/*') {\n            result += jsonString.slice(offset, index);\n            offset = index;\n            isInsideComment = multiComment;\n            index++;\n            continue;\n        } else if (isInsideComment === multiComment && currentCharacter + nextCharacter === '*/') {\n            index++;\n            isInsideComment = false;\n            result += strip(jsonString, offset, index + 1);\n            offset = index + 1;\n            continue;\n        }\n    }\n\n    return result + (isInsideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset));\n}\n"
  },
  {
    "path": "src/jsonPanel.ts",
    "content": "import * as vscode from 'vscode';\n\nfunction renderJson(jsonObj: object): string {\n    var str = JSON.stringify(jsonObj, undefined, 4);\n    return syntaxHighlight(str);\n}\n\nfunction syntaxHighlight(json: string): string {\n    json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n    return json.replace(/(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g, function (match) {\n        var cls = 'number';\n        if (/^\"/.test(match)) {\n            if (/:$/.test(match)) {\n                cls = 'key';\n            } else {\n                cls = 'string';\n            }\n        } else if (/true|false/.test(match)) {\n            cls = 'boolean';\n        } else if (/null/.test(match)) {\n            cls = 'null';\n        }\n        return '<span class=\"' + cls + '\">' + match + '</span>';\n    });\n}\nexport class JsonPanel {\n    static JsonCss: string = `\n    /* dark */\n    .vscode-dark .string {\n        color: #66BB6A\n    }\n\n    .vscode-dark .number {\n        color: orange\n    }\n\n    .vscode-dark .boolean {\n        color: #008099\n    }\n\n    .vscode-dark .null {\n        color: #ef50c5\n    }\n\n    .vscode-dark .key {\n        color: #ef5350\n    }\n\n\n    /* light */\n    .vscode-light .string {\n        color: green\n    }\n\n    .vscode-light .number {\n        color: darkorange\n    }\n\n    .vscode-light .boolean {\n        color: blue\n    }\n\n    .vscode-light .null {\n        color: magenta\n    }\n\n    .vscode-light .key {\n        color: red\n    }`;\n\n    private Panel: vscode.WebviewPanel | null = null;\n\n    public constructor() {}\n\n    public render(jsonObj: object, title?: string) {\n        this.ensurePanelValid(title || 'ElasticSearch Results');\n        var jsonHtml = renderJson(jsonObj);\n        (this.Panel as vscode.WebviewPanel).webview.html = `<style>${JsonPanel.JsonCss}</style><pre>${jsonHtml}</pre>`;\n    }\n\n    public ensurePanelValid(title: string): void {\n        if (this.Panel == null) {\n            this.Panel = vscode.window.createWebviewPanel('Test', title, vscode.ViewColumn.Two, {});\n            this.Panel.onDidDispose(() => {\n                this.Panel = null;\n            });\n        } else {\n            this.Panel.title = title;\n        }\n    }\n}\n"
  },
  {
    "path": "src/rest-spec/index.ts",
    "content": "import * as v2_4_6 from './v2_4_6';\r\nimport * as v5_6_4 from './v5_6_4';\r\nimport * as v6_0_0 from './v6_0_0';\r\n\r\nexport default {\r\n    '2.4.6': v2_4_6,\r\n    '5.6.4': v5_6_4,\r\n    '6.0.0': v6_0_0,\r\n};\r\n"
  },
  {
    "path": "src/rest-spec/json.d.ts",
    "content": "declare module '*.json' {\n    const value: any;\n    export default value;\n}\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/bulk.json",
    "content": "{\r\n  \"bulk\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-bulk.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_bulk\",\r\n      \"paths\": [\"/_bulk\", \"/{index}/_bulk\", \"/{index}/{type}/_bulk\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default index for items which don't provide one\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"consistency\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"one\", \"quorum\", \"all\"],\r\n          \"description\" : \"Explicit write consistency setting for the operation\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the index after performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Default comma-separated list of fields to return in the response for updates\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The operation definition and data (action-data pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.aliases.json",
    "content": "{\r\n  \"cat.aliases\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-alias.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/aliases\",\r\n      \"paths\": [\"/_cat/aliases\", \"/_cat/aliases/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.allocation.json",
    "content": "{\r\n  \"cat.allocation\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-allocation.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/allocation\",\r\n      \"paths\": [\"/_cat/allocation\", \"/_cat/allocation/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.count.json",
    "content": "{\r\n  \"cat.count\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-count.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/count\",\r\n      \"paths\": [\"/_cat/count\", \"/_cat/count/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.fielddata.json",
    "content": "{\r\n  \"cat.fielddata\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-fielddata.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/fielddata\",\r\n      \"paths\": [\"/_cat/fielddata\", \"/_cat/fielddata/{fields}\"],\r\n      \"parts\": {\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return the fielddata size\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.health.json",
    "content": "{\r\n  \"cat.health\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/health\",\r\n      \"paths\": [\"/_cat/health\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"ts\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to false to disable timestamping\",\r\n          \"default\": true\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.help.json",
    "content": "{\r\n  \"cat.help\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat\",\r\n      \"paths\": [\"/_cat\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.indices.json",
    "content": "{\r\n  \"cat.indices\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-indices.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/indices\",\r\n      \"paths\": [\"/_cat/indices\", \"/_cat/indices/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"pri\" : {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to return stats only for primary shards\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.master.json",
    "content": "{\r\n  \"cat.master\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-master.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/master\",\r\n      \"paths\": [\"/_cat/master\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.nodeattrs.json",
    "content": "{\r\n  \"cat.nodeattrs\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-nodeattrs.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodeattrs\",\r\n      \"paths\": [\"/_cat/nodeattrs\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.nodes.json",
    "content": "{\r\n  \"cat.nodes\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-nodes.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodes\",\r\n      \"paths\": [\"/_cat/nodes\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.pending_tasks.json",
    "content": "{\r\n  \"cat.pending_tasks\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-pending-tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/pending_tasks\",\r\n      \"paths\": [\"/_cat/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.plugins.json",
    "content": "{\r\n  \"cat.plugins\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-plugins.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/plugins\",\r\n      \"paths\": [\"/_cat/plugins\"],\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.recovery.json",
    "content": "{\r\n  \"cat.recovery\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-recovery.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/recovery\",\r\n      \"paths\": [\"/_cat/recovery\", \"/_cat/recovery/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.repositories.json",
    "content": "{\r\n  \"cat.repositories\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-repositories.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/repositories\",\r\n      \"paths\": [\"/_cat/repositories\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.segments.json",
    "content": "{\r\n  \"cat.segments\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/segments\",\r\n      \"paths\": [\"/_cat/segments\", \"/_cat/segments/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.shards.json",
    "content": "{\r\n  \"cat.shards\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-shards.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/shards\",\r\n      \"paths\": [\"/_cat/shards\", \"/_cat/shards/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.snapshots.json",
    "content": "{\r\n  \"cat.snapshots\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/snapshots/{repository}\",\r\n      \"paths\": [\"/_cat/snapshots/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\" : \"list\",\r\n          \"required\": true,\r\n          \"description\": \"Name of repository from which to fetch the snapshot information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to ignore unavailable snapshots\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cat.thread_pool.json",
    "content": "{\r\n  \"cat.thread_pool\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-thread-pool.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/thread_pool\",\r\n      \"paths\": [\"/_cat/thread_pool\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        },\r\n        \"full_id\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Enables displaying the complete node ids\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/clear_scroll.json",
    "content": "{\r\n  \"clear_scroll\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll/{scroll_id}\",\r\n      \"paths\": [\"/_search/scroll/{scroll_id}\", \"/_search/scroll\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of scroll IDs to clear\"\r\n        }\r\n      },\r\n      \"params\": {}\r\n    },\r\n    \"body\": {\r\n      \"description\": \"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.get_settings.json",
    "content": "{\r\n  \"cluster.get_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-update-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.health.json",
    "content": "{\r\n  \"cluster.health\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/health\",\r\n      \"paths\": [\"/_cluster/health\", \"/_cluster/health/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Limit the information returned to a specific index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cluster\",\"indices\",\"shards\"],\r\n          \"default\" : \"cluster\",\r\n          \"description\" : \"Specify the level of detail for returned information\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Wait until the specified number of shards is active\"\r\n        },\r\n        \"wait_for_nodes\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Wait until the specified number of nodes is available\"\r\n        },\r\n        \"wait_for_relocating_shards\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Wait until the specified number of relocating shards is finished\"\r\n        },\r\n        \"wait_for_status\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"green\",\"yellow\",\"red\"],\r\n          \"default\" : null,\r\n          \"description\" : \"Wait until cluster is in a specific state\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.pending_tasks.json",
    "content": "{\r\n  \"cluster.pending_tasks\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-pending.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/pending_tasks\",\r\n      \"paths\": [\"/_cluster/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.put_settings.json",
    "content": "{\r\n  \"cluster.put_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.reroute.json",
    "content": "{\r\n  \"cluster.reroute\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-reroute.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/reroute\",\r\n      \"paths\": [\"/_cluster/reroute\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"dry_run\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Simulate the operation only and return the resulting state\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return an explanation of why the commands can or cannot be executed\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"master_node\", \"version\"],\r\n          \"description\": \"Limit the information returned to the specified metrics. Defaults to all but metadata\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.state.json",
    "content": "{\r\n  \"cluster.state\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-state.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/state\",\r\n      \"paths\": [\r\n        \"/_cluster/state\",\r\n        \"/_cluster/state/{metric}\",\r\n        \"/_cluster/state/{metric}/{index}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"routing_nodes\", \"master_node\", \"version\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/cluster.stats.json",
    "content": "{\r\n  \"cluster.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/stats\",\r\n      \"paths\": [\"/_cluster/stats\", \"/_cluster/stats/nodes/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/count.json",
    "content": "{\r\n  \"count\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-count.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_count\",\r\n      \"paths\": [\"/_count\", \"/{index}/_count\", \"/{index}/{type}/_count\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of indices to restrict the results\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of types to restrict the results\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"min_score\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Include only documents with a specific `_score` value in the result\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"A query to restrict the results specified with the Query DSL (optional)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/count_percolate.json",
    "content": "{\r\n  \"count_percolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_percolate/count\",\r\n      \"paths\": [\"/{index}/{type}/_percolate/count\", \"/{index}/{type}/{id}/_percolate/count\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The index of the document being count percolated.\"\r\n        },\r\n        \"type\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The type of the document being count percolated.\"\r\n        },\r\n        \"id\": {\r\n          \"type\": \"string\",\r\n          \"required\": false,\r\n          \"description\": \"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"routing\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"preference\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"percolate_index\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The index to count percolate the document into. Defaults to index.\"\r\n        },\r\n        \"percolate_type\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The type to count percolate document into. Defaults to type.\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The count percolator request definition using the percolate DSL\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/delete.json",
    "content": "{\r\n  \"delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-delete.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"consistency\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"one\", \"quorum\", \"all\"],\r\n          \"description\" : \"Specific write consistency setting for the operation\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the index after performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/delete_script.json",
    "content": "{\r\n  \"delete_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}/{id}\",\r\n      \"paths\": [ \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/delete_template.json",
    "content": "{\r\n  \"delete_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/exists.json",
    "content": "{\r\n  \"exists\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/explain.json",
    "content": "{\r\n  \"explain\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-explain.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_explain\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_explain\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer for the query string query\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The default field for query string query (default: _all)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/field_stats.json",
    "content": "{\r\n  \"field_stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-field-stats.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_field_stats\",\r\n      \"paths\": [\r\n        \"/_field_stats\",\r\n        \"/{index}/_field_stats\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for to get field statistics for (min value, max value, and more)\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"indices\", \"cluster\"],\r\n          \"default\" : \"cluster\",\r\n          \"description\" : \"Defines if field stats should be returned on a per index level or on a cluster wide level\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"Field json objects containing the name and optionally a range to filter out indices result, that have results outside the defined bounds\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/get.json",
    "content": "{\r\n  \"get\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/get_script.json",
    "content": "{\r\n  \"get_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}/{id}\",\r\n      \"paths\": [ \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n            \"description\": \"Explicit version number for concurrency control\"\r\n          },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v2_4_6/get_source.json",
    "content": "{\r\n  \"get_source\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_source\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_source\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document; use `_all` to fetch the first document matching the ID across all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/get_template.json",
    "content": "{\r\n  \"get_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v2_4_6/index.json",
    "content": "{\r\n  \"index\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-index_.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}\",\r\n      \"paths\": [\"/{index}/{type}\", \"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"consistency\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"one\", \"quorum\", \"all\"],\r\n          \"description\" : \"Explicit write consistency setting for the operation\"\r\n        },\r\n        \"op_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"index\", \"create\"],\r\n          \"default\" : \"index\",\r\n          \"description\" : \"Explicit operation type\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of the parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the affected shards after performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Expiration time for the document\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/index.ts",
    "content": "const def_bulk = JSON.parse(\r\n    '{\"bulk\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-bulk.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/_bulk\",\"paths\":[\"/_bulk\",\"/{index}/_bulk\",\"/{index}/{type}/_bulk\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"Default index for items which don\\'t provide one\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"}},\"params\":{\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Explicit write consistency setting for the operation\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the index after performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"},\"fields\":{\"type\":\"list\",\"description\":\"Default comma-separated list of fields to return in the response for updates\"}}},\"body\":{\"description\":\"The operation definition and data (action-data pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_cat_aliases = JSON.parse(\r\n    '{\"cat.aliases\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-alias.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/aliases\",\"paths\":[\"/_cat/aliases\",\"/_cat/aliases/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_allocation = JSON.parse(\r\n    '{\"cat.allocation\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-allocation.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/allocation\",\"paths\":[\"/_cat/allocation\",\"/_cat/allocation/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information\"}},\"params\":{\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_count = JSON.parse(\r\n    '{\"cat.count\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-count.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/count\",\"paths\":[\"/_cat/count\",\"/_cat/count/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_fielddata = JSON.parse(\r\n    '{\"cat.fielddata\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-fielddata.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/fielddata\",\"paths\":[\"/_cat/fielddata\",\"/_cat/fielddata/{fields}\"],\"parts\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return the fielddata size\"}},\"params\":{\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the output\"}}},\"body\":null}}',\r\n);\r\nconst def_cat_health = JSON.parse(\r\n    '{\"cat.health\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/health\",\"paths\":[\"/_cat/health\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"ts\":{\"type\":\"boolean\",\"description\":\"Set to false to disable timestamping\",\"default\":true},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_help = JSON.parse(\r\n    '{\"cat.help\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat\",\"paths\":[\"/_cat\"],\"parts\":{},\"params\":{\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_indices = JSON.parse(\r\n    '{\"cat.indices\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-indices.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/indices\",\"paths\":[\"/_cat/indices\",\"/_cat/indices/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"pri\":{\"type\":\"boolean\",\"description\":\"Set to true to return stats only for primary shards\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_master = JSON.parse(\r\n    '{\"cat.master\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-master.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/master\",\"paths\":[\"/_cat/master\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodeattrs = JSON.parse(\r\n    '{\"cat.nodeattrs\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-nodeattrs.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodeattrs\",\"paths\":[\"/_cat/nodeattrs\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodes = JSON.parse(\r\n    '{\"cat.nodes\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-nodes.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodes\",\"paths\":[\"/_cat/nodes\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_pending_tasks = JSON.parse(\r\n    '{\"cat.pending_tasks\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-pending-tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/pending_tasks\",\"paths\":[\"/_cat/pending_tasks\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_plugins = JSON.parse(\r\n    '{\"cat.plugins\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-plugins.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/plugins\",\"paths\":[\"/_cat/plugins\"],\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_recovery = JSON.parse(\r\n    '{\"cat.recovery\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/recovery\",\"paths\":[\"/_cat/recovery\",\"/_cat/recovery/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_repositories = JSON.parse(\r\n    '{\"cat.repositories\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-repositories.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/repositories\",\"paths\":[\"/_cat/repositories\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_segments = JSON.parse(\r\n    '{\"cat.segments\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/segments\",\"paths\":[\"/_cat/segments\",\"/_cat/segments/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_shards = JSON.parse(\r\n    '{\"cat.shards\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-shards.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/shards\",\"paths\":[\"/_cat/shards\",\"/_cat/shards/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_snapshots = JSON.parse(\r\n    '{\"cat.snapshots\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/snapshots/{repository}\",\"paths\":[\"/_cat/snapshots/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"required\":true,\"description\":\"Name of repository from which to fetch the snapshot information\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Set to true to ignore unavailable snapshots\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_thread_pool = JSON.parse(\r\n    '{\"cat.thread_pool\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-thread-pool.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/thread_pool\",\"paths\":[\"/_cat/thread_pool\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false},\"full_id\":{\"type\":\"boolean\",\"description\":\"Enables displaying the complete node ids\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_clear_scroll = JSON.parse(\r\n    '{\"clear_scroll\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_search/scroll/{scroll_id}\",\"paths\":[\"/_search/scroll/{scroll_id}\",\"/_search/scroll\"],\"parts\":{\"scroll_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of scroll IDs to clear\"}},\"params\":{}},\"body\":{\"description\":\"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"}}}',\r\n);\r\nconst def_cluster_get_settings = JSON.parse(\r\n    '{\"cluster.get_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-update-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_health = JSON.parse(\r\n    '{\"cluster.health\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/health\",\"paths\":[\"/_cluster/health\",\"/_cluster/health/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"Limit the information returned to a specific index\"}},\"params\":{\"level\":{\"type\":\"enum\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"cluster\",\"description\":\"Specify the level of detail for returned information\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"wait_for_active_shards\":{\"type\":\"number\",\"description\":\"Wait until the specified number of shards is active\"},\"wait_for_nodes\":{\"type\":\"string\",\"description\":\"Wait until the specified number of nodes is available\"},\"wait_for_relocating_shards\":{\"type\":\"number\",\"description\":\"Wait until the specified number of relocating shards is finished\"},\"wait_for_status\":{\"type\":\"enum\",\"options\":[\"green\",\"yellow\",\"red\"],\"default\":null,\"description\":\"Wait until cluster is in a specific state\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_pending_tasks = JSON.parse(\r\n    '{\"cluster.pending_tasks\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-pending.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/pending_tasks\",\"paths\":[\"/_cluster/pending_tasks\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_put_settings = JSON.parse(\r\n    '{\"cluster.put_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"}}}',\r\n);\r\nconst def_cluster_reroute = JSON.parse(\r\n    '{\"cluster.reroute\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-reroute.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_cluster/reroute\",\"paths\":[\"/_cluster/reroute\"],\"parts\":{},\"params\":{\"dry_run\":{\"type\":\"boolean\",\"description\":\"Simulate the operation only and return the resulting state\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Return an explanation of why the commands can or cannot be executed\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics. Defaults to all but metadata\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"}}}',\r\n);\r\nconst def_cluster_state = JSON.parse(\r\n    '{\"cluster.state\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-state.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/state\",\"paths\":[\"/_cluster/state\",\"/_cluster/state/{metric}\",\"/_cluster/state/{metric}/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"routing_nodes\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_stats = JSON.parse(\r\n    '{\"cluster.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/stats\",\"paths\":[\"/_cluster/stats\",\"/_cluster/stats/nodes/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_count = JSON.parse(\r\n    '{\"count\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-count.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_count\",\"paths\":[\"/_count\",\"/{index}/_count\",\"/{index}/{type}/_count\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of indices to restrict the results\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of types to restrict the results\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"min_score\":{\"type\":\"number\",\"description\":\"Include only documents with a specific `_score` value in the result\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"}}},\"body\":{\"description\":\"A query to restrict the results specified with the Query DSL (optional)\"}}}',\r\n);\r\nconst def_count_percolate = JSON.parse(\r\n    '{\"count_percolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_percolate/count\",\"paths\":[\"/{index}/{type}/_percolate/count\",\"/{index}/{type}/{id}/_percolate/count\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The index of the document being count percolated.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document being count percolated.\"},\"id\":{\"type\":\"string\",\"required\":false,\"description\":\"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"}},\"params\":{\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"percolate_index\":{\"type\":\"string\",\"description\":\"The index to count percolate the document into. Defaults to index.\"},\"percolate_type\":{\"type\":\"string\",\"description\":\"The type to count percolate document into. Defaults to type.\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The count percolator request definition using the percolate DSL\",\"required\":false}}}',\r\n);\r\nconst def_delete = JSON.parse(\r\n    '{\"delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-delete.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Specific write consistency setting for the operation\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of parent document\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the index after performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_delete_script = JSON.parse(\r\n    '{\"delete_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_scripts/{lang}/{id}\",\"paths\":[\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_delete_template = JSON.parse(\r\n    '{\"delete_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_exists = JSON.parse(\r\n    '{\"exists\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"}}},\"body\":null}}',\r\n);\r\nconst def_explain = JSON.parse(\r\n    '{\"explain\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-explain.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_explain\",\"paths\":[\"/{index}/{type}/{id}/_explain\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer for the query string query\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The default field for query string query (default: _all)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"The query definition using the Query DSL\"}}}',\r\n);\r\nconst def_field_stats = JSON.parse(\r\n    '{\"field_stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-field-stats.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_field_stats\",\"paths\":[\"/_field_stats\",\"/{index}/_field_stats\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for to get field statistics for (min value, max value, and more)\"},\"level\":{\"type\":\"enum\",\"options\":[\"indices\",\"cluster\"],\"default\":\"cluster\",\"description\":\"Defines if field stats should be returned on a per index level or on a cluster wide level\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"Field json objects containing the name and optionally a range to filter out indices result, that have results outside the defined bounds\",\"required\":false}}}',\r\n);\r\nconst def_get = JSON.parse(\r\n    '{\"get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_script = JSON.parse(\r\n    '{\"get_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_scripts/{lang}/{id}\",\"paths\":[\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_source = JSON.parse(\r\n    '{\"get_source\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_source\",\"paths\":[\"/{index}/{type}/{id}/_source\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document; use `_all` to fetch the first document matching the ID across all types\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_template = JSON.parse(\r\n    '{\"get_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_index = JSON.parse(\r\n    '{\"index\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-index_.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/{index}/{type}\",\"paths\":[\"/{index}/{type}\",\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Explicit write consistency setting for the operation\"},\"op_type\":{\"type\":\"enum\",\"options\":[\"index\",\"create\"],\"default\":\"index\",\"description\":\"Explicit operation type\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the affected shards after performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_indices_analyze = JSON.parse(\r\n    '{\"indices.analyze\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-analyze.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_analyze\",\"paths\":[\"/_analyze\",\"/{index}/_analyze\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The name of the analyzer to use\"},\"char_filters\":{\"type\":\"list\",\"description\":\"Deprecated : A comma-separated list of character filters to use for the analysis\"},\"char_filter\":{\"type\":\"list\",\"description\":\"A comma-separated list of character filters to use for the analysis\"},\"field\":{\"type\":\"string\",\"description\":\"Use the analyzer configured for this field (instead of passing the analyzer name)\"},\"filters\":{\"type\":\"list\",\"description\":\"Deprecated : A comma-separated list of filters to use for the analysis\"},\"filter\":{\"type\":\"list\",\"description\":\"A comma-separated list of filters to use for the analysis\"},\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"},\"prefer_local\":{\"type\":\"boolean\",\"description\":\"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"},\"text\":{\"type\":\"list\",\"description\":\"The text on which the analysis should be performed (when request body is not used)\"},\"tokenizer\":{\"type\":\"string\",\"description\":\"The name of the tokenizer to use for the analysis\"},\"explain\":{\"type\":\"boolean\",\"description\":\"With `true`, outputs more advanced details. (default: false)\"},\"attributes\":{\"type\":\"list\",\"description\":\"A comma-separated list of token attributes to output, this parameter works only with `explain=true`\"},\"format\":{\"type\":\"enum\",\"options\":[\"detailed\",\"text\"],\"default\":\"detailed\",\"description\":\"Format of the output\"}}},\"body\":{\"description\":\"The text on which the analysis should be performed\"}}}',\r\n);\r\nconst def_indices_clear_cache = JSON.parse(\r\n    '{\"indices.clear_cache\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-clearcache.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_cache/clear\",\"paths\":[\"/_cache/clear\",\"/{index}/_cache/clear\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"}},\"params\":{\"field_data\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fielddata\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"},\"query\":{\"type\":\"boolean\",\"description\":\"Clear query caches\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"},\"recycler\":{\"type\":\"boolean\",\"description\":\"Clear the recycler cache\"},\"request\":{\"type\":\"boolean\",\"description\":\"Clear request cache\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_close = JSON.parse(\r\n    '{\"indices.close\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_close\",\"paths\":[\"/{index}/_close\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to close\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_create = JSON.parse(\r\n    '{\"indices.create\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-create-index.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The configuration for the index (`settings` and `mappings`)\"}}}',\r\n);\r\nconst def_indices_delete = JSON.parse(\r\n    '{\"indices.delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-delete-index.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_alias = JSON.parse(\r\n    '{\"indices.delete_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"},\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_template = JSON.parse(\r\n    '{\"indices.delete_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_warmer = JSON.parse(\r\n    '{\"indices.delete_warmer\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/_warmer/{name}\",\"paths\":[\"/{index}/_warmer/{name}\",\"/{index}/_warmers/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names to delete warmers from (supports wildcards); use `_all` to perform the operation on all indices.\"},\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters.\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists = JSON.parse(\r\n    '{\"indices.exists\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of indices to check\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_alias = JSON.parse(\r\n    '{\"indices.exists_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_alias/{name}\",\"paths\":[\"/_alias/{name}\",\"/{index}/_alias/{name}\",\"/{index}/_alias\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":[\"open\",\"closed\"],\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_template = JSON.parse(\r\n    '{\"indices.exists_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_type = JSON.parse(\r\n    '{\"indices.exists_type\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-types-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}\",\"paths\":[\"/{index}/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names; use `_all` to check the types across all indices\"},\"type\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of document types to check\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush = JSON.parse(\r\n    '{\"indices.flush\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush\",\"paths\":[\"/_flush\",\"/{index}/_flush\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"force\":{\"type\":\"boolean\",\"description\":\"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"},\"wait_if_ongoing\":{\"type\":\"boolean\",\"description\":\"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is false and will cause an exception to be thrown on the shard level if another flush operation is already running.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush_synced = JSON.parse(\r\n    '{\"indices.flush_synced\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-synced-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush/synced\",\"paths\":[\"/_flush/synced\",\"/{index}/_flush/synced\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_forcemerge = JSON.parse(\r\n    '{\"indices.forcemerge\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-forcemerge.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_forcemerge\",\"paths\":[\"/_forcemerge\",\"/{index}/_forcemerge\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"flush\":{\"type\":\"boolean\",\"description\":\"Specify whether the index should be flushed after performing the operation (default: true)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"max_num_segments\":{\"type\":\"number\",\"description\":\"The number of segments the index should be merged into (default: dynamic)\"},\"only_expunge_deletes\":{\"type\":\"boolean\",\"description\":\"Specify whether the operation should only expunge deleted documents\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"wait_for_merge\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the merge process is finished (default: true)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get = JSON.parse(\r\n    '{\"indices.get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-index.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\",\"/{index}/{feature}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names\"},\"feature\":{\"type\":\"list\",\"description\":\"A comma-separated list of features\",\"options\":[\"_settings\",\"_mappings\",\"_warmers\",\"_aliases\"]}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return version and creation date values in human-readable format.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_alias = JSON.parse(\r\n    '{\"indices.get_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_alias/\",\"paths\":[\"/_alias\",\"/_alias/{name}\",\"/{index}/_alias/{name}\",\"/{index}/_alias\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_aliases = JSON.parse(\r\n    '{\"indices.get_aliases\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_aliases\",\"paths\":[\"/_aliases\",\"/{index}/_aliases\",\"/{index}/_aliases/{name}\",\"/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to filter\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_field_mapping = JSON.parse(\r\n    '{\"indices.get_field_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-field-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping/field/{fields}\",\"paths\":[\"/_mapping/field/{fields}\",\"/{index}/_mapping/field/{fields}\",\"/_mapping/{type}/field/{fields}\",\"/{index}/_mapping/{type}/field/{fields}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields\",\"required\":true}},\"params\":{\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether the default mapping values should be returned as well\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_mapping = JSON.parse(\r\n    '{\"indices.get_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping\",\"paths\":[\"/_mapping\",\"/{index}/_mapping\",\"/_mapping/{type}\",\"/{index}/_mapping/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_settings = JSON.parse(\r\n    '{\"indices.get_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\",\"/{index}/_settings/{name}\",\"/_settings/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"name\":{\"type\":\"list\",\"description\":\"The name of the settings that should be included\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":[\"open\",\"closed\"],\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return version and creation date values in human-readable format.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_template = JSON.parse(\r\n    '{\"indices.get_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template\",\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"required\":false,\"description\":\"The comma separated names of the index templates\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_upgrade = JSON.parse(\r\n    '{\"indices.get_upgrade\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-upgrade.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_warmer = JSON.parse(\r\n    '{\"indices.get_warmer\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_warmer\",\"paths\":[\"/_warmer\",\"/{index}/_warmer\",\"/{index}/_warmer/{name}\",\"/_warmer/{name}\",\"/{index}/{type}/_warmer/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` to perform the operation on all indices\"},\"name\":{\"type\":\"list\",\"description\":\"The name of the warmer (supports wildcards); leave empty to get all warmers\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_open = JSON.parse(\r\n    '{\"indices.open\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_open\",\"paths\":[\"/{index}/_open\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to open\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"closed\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_optimize = JSON.parse(\r\n    '{\"indices.optimize\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-optimize.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_optimize\",\"paths\":[\"/_optimize\",\"/{index}/_optimize\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"flush\":{\"type\":\"boolean\",\"description\":\"Specify whether the index should be flushed after performing the operation (default: true)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"max_num_segments\":{\"type\":\"number\",\"description\":\"The number of segments the index should be merged into (default: dynamic)\"},\"only_expunge_deletes\":{\"type\":\"boolean\",\"description\":\"Specify whether the operation should only expunge deleted documents\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"wait_for_merge\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the merge process is finished (default: true)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_put_alias = JSON.parse(\r\n    '{\"indices.put_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"},\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the alias to be created or updated\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The settings for the alias, such as `routing` or `filter`\",\"required\":false}}}',\r\n);\r\nconst def_indices_put_mapping = JSON.parse(\r\n    '{\"indices.put_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-put-mapping.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_mapping\",\"paths\":[\"/{index}/{type}/_mapping\",\"/{index}/_mapping/{type}\",\"/_mapping/{type}\",\"/{index}/{type}/_mappings\",\"/{index}/_mappings/{type}\",\"/_mappings/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the document type\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The mapping definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_settings = JSON.parse(\r\n    '{\"indices.put_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The index settings to be updated\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_template = JSON.parse(\r\n    '{\"indices.put_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"order\":{\"type\":\"number\",\"description\":\"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"},\"create\":{\"type\":\"boolean\",\"description\":\"Whether the index template should only be added if new or can also replace an existing one\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The template definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_warmer = JSON.parse(\r\n    '{\"indices.put_warmer\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_warmer/{name}\",\"paths\":[\"/_warmer/{name}\",\"/{index}/_warmer/{name}\",\"/{index}/{type}/_warmer/{name}\",\"/_warmers/{name}\",\"/{index}/_warmers/{name}\",\"/{index}/{type}/_warmers/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to register the warmer for; use `_all` or omit to perform the operation on all indices\"},\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the warmer\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to register the warmer for; leave empty to perform the operation on all types\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed) in the search request to warm\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices in the search request to warm. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both, in the search request to warm.\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify whether the request to be warmed should use the request cache, defaults to index level setting\"}}},\"body\":{\"description\":\"The search request definition for the warmer (query, filters, facets, sorting, etc)\",\"required\":true}}}',\r\n);\r\nconst def_indices_recovery = JSON.parse(\r\n    '{\"indices.recovery\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_recovery\",\"paths\":[\"/_recovery\",\"/{index}/_recovery\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"detailed\":{\"type\":\"boolean\",\"description\":\"Whether to display detailed information about shard recovery\",\"default\":false},\"active_only\":{\"type\":\"boolean\",\"description\":\"Display only those recoveries that are currently on-going\",\"default\":false},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_refresh = JSON.parse(\r\n    '{\"indices.refresh\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-refresh.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_refresh\",\"paths\":[\"/_refresh\",\"/{index}/_refresh\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"force\":{\"type\":\"boolean\",\"description\":\"Force a refresh even if not required\",\"default\":false},\"operation_threading\":{\"description\":\"TODO: ?\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_segments = JSON.parse(\r\n    '{\"indices.segments\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_segments\",\"paths\":[\"/_segments\",\"/{index}/_segments\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"operation_threading\":{\"description\":\"TODO: ?\"},\"verbose\":{\"type\":\"boolean\",\"description\":\"Includes detailed memory usage by Lucene.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_shard_stores = JSON.parse(\r\n    '{\"indices.shard_stores\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-shards-stores.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_shard_stores\",\"paths\":[\"/_shard_stores\",\"/{index}/_shard_stores\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"status\":{\"type\":\"list\",\"options\":[\"green\",\"yellow\",\"red\",\"all\"],\"description\":\"A comma-separated list of statuses used to filter on shards to get store information for\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_stats = JSON.parse(\r\n    '{\"indices.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_stats\",\"paths\":[\"/_stats\",\"/_stats/{metric}\",\"/{index}/_stats\",\"/{index}/_stats/{metric}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"percolate\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned the specific metrics.\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"list\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"level\":{\"type\":\"enum\",\"description\":\"Return stats aggregated at cluster, index or shard level\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"indices\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_update_aliases = JSON.parse(\r\n    '{\"indices.update_aliases\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_aliases\",\"paths\":[\"/_aliases\"],\"parts\":{},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Request timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The definition of `actions` to perform\",\"required\":true}}}',\r\n);\r\nconst def_indices_upgrade = JSON.parse(\r\n    '{\"indices.upgrade\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-upgrade.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the all segments are upgraded (default: false)\"},\"only_ancient_segments\":{\"type\":\"boolean\",\"description\":\"If true, only ancient (an older Lucene major release) segments will be upgraded\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_validate_query = JSON.parse(\r\n    '{\"indices.validate_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-validate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_validate/query\",\"paths\":[\"/_validate/query\",\"/{index}/_validate/query\",\"/{index}/{type}/_validate/query\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"}},\"params\":{\"explain\":{\"type\":\"boolean\",\"description\":\"Return detailed information about the error\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"},\"rewrite\":{\"type\":\"boolean\",\"description\":\"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"}}},\"body\":{\"description\":\"The query definition specified with the Query DSL\"}}}',\r\n);\r\nconst def_info = JSON.parse(\r\n    '{\"info\":{\"documentation\":\"https://www.elastic.co/guide/\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_mget = JSON.parse(\r\n    '{\"mget\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-multi-get.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mget\",\"paths\":[\"/_mget\",\"/{index}/_mget\",\"/{index}/{type}/_mget\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\"required\":true}}}',\r\n);\r\nconst def_mpercolate = JSON.parse(\r\n    '{\"mpercolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mpercolate\",\"paths\":[\"/_mpercolate\",\"/{index}/_mpercolate\",\"/{index}/{type}/_mpercolate\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index of the document being count percolated to use as default\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document being percolated to use as default.\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"The percolate request definitions (header & body pair), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_msearch = JSON.parse(\r\n    '{\"msearch\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-multi-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_msearch\",\"paths\":[\"/_msearch\",\"/{index}/_msearch\",\"/{index}/{type}/_msearch\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to use as default\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to use as default\"}},\"params\":{\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\",\"count\",\"scan\"],\"description\":\"Search operation type\"}}},\"body\":{\"description\":\"The request definitions (metadata-search request definition pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_mtermvectors = JSON.parse(\r\n    '{\"mtermvectors\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-multi-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mtermvectors\",\"paths\":[\"/_mtermvectors\",\"/{index}/_mtermvectors\",\"/{index}/{type}/_mtermvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\"}},\"params\":{\"ids\":{\"type\":\"list\",\"description\":\"A comma-separated list of documents ids. You must define ids as parameter or set \\\\\"ids\\\\\" or \\\\\"docs\\\\\" in the request body\",\"required\":false},\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_nodes_hot_threads = JSON.parse(\r\n    '{\"nodes.hot_threads\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-hot-threads.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/hot_threads\",\"paths\":[\"/_cluster/nodes/hotthreads\",\"/_cluster/nodes/hot_threads\",\"/_cluster/nodes/{node_id}/hotthreads\",\"/_cluster/nodes/{node_id}/hot_threads\",\"/_nodes/hotthreads\",\"/_nodes/hot_threads\",\"/_nodes/{node_id}/hotthreads\",\"/_nodes/{node_id}/hot_threads\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"interval\":{\"type\":\"time\",\"description\":\"The interval for the second sampling of threads\"},\"snapshots\":{\"type\":\"number\",\"description\":\"Number of samples of thread stacktrace (default: 10)\"},\"threads\":{\"type\":\"number\",\"description\":\"Specify the number of threads to provide information for (default: 3)\"},\"ignore_idle_threads\":{\"type\":\"boolean\",\"description\":\"Don\\'t show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"},\"type\":{\"type\":\"enum\",\"options\":[\"cpu\",\"wait\",\"block\"],\"description\":\"The type to sample (default: cpu)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_info = JSON.parse(\r\n    '{\"nodes.info\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-info.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes\",\"paths\":[\"/_nodes\",\"/_nodes/{node_id}\",\"/_nodes/{metric}\",\"/_nodes/{node_id}/{metric}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"metric\":{\"type\":\"list\",\"options\":[\"settings\",\"os\",\"process\",\"jvm\",\"thread_pool\",\"transport\",\"http\",\"plugins\"],\"description\":\"A comma-separated list of metrics you wish returned. Leave empty to return all.\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_stats = JSON.parse(\r\n    '{\"nodes.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/stats\",\"paths\":[\"/_nodes/stats\",\"/_nodes/{node_id}/stats\",\"/_nodes/stats/{metric}\",\"/_nodes/{node_id}/stats/{metric}\",\"/_nodes/stats/{metric}/{index_metric}\",\"/_nodes/{node_id}/stats/{metric}/{index_metric}\"],\"parts\":{\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"breaker\",\"fs\",\"http\",\"indices\",\"jvm\",\"os\",\"process\",\"thread_pool\",\"transport\"],\"description\":\"Limit the information returned to the specified metrics\"},\"index_metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"percolate\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned for `indices` metric to the specific index metrics. Isn\\'t used if `indices` (or `all`) metric isn\\'t specified.\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"boolean\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"level\":{\"type\":\"enum\",\"description\":\"Return indices stats aggregated at node, index or shard level\",\"options\":[\"node\",\"indices\",\"shards\"],\"default\":\"node\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_percolate = JSON.parse(\r\n    '{\"percolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_percolate\",\"paths\":[\"/{index}/{type}/_percolate\",\"/{index}/{type}/{id}/_percolate\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The index of the document being percolated.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document being percolated.\"},\"id\":{\"type\":\"string\",\"required\":false,\"description\":\"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"}},\"params\":{\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"percolate_index\":{\"type\":\"string\",\"description\":\"The index to percolate the document into. Defaults to index.\"},\"percolate_type\":{\"type\":\"string\",\"description\":\"The type to percolate document into. Defaults to type.\"},\"percolate_routing\":{\"type\":\"string\",\"description\":\"The routing value to use when percolating the existing document.\"},\"percolate_preference\":{\"type\":\"string\",\"description\":\"Which shard to prefer when executing the percolate request.\"},\"percolate_format\":{\"type\":\"enum\",\"options\":[\"ids\"],\"description\":\"Return an array of matching query IDs instead of objects\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The percolator request definition using the percolate DSL\",\"required\":false}}}',\r\n);\r\nconst def_ping = JSON.parse(\r\n    '{\"ping\":{\"documentation\":\"https://www.elastic.co/guide/\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_put_script = JSON.parse(\r\n    '{\"put_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_scripts/{lang}/{id}\",\"paths\":[\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{\"op_type\":{\"type\":\"enum\",\"options\":[\"index\",\"create\"],\"default\":\"index\",\"description\":\"Explicit operation type\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_put_template = JSON.parse(\r\n    '{\"put_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{\"op_type\":{\"type\":\"enum\",\"options\":[\"index\",\"create\"],\"default\":\"index\",\"description\":\"Explicit operation type\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_reindex = JSON.parse(\r\n    '{\"reindex\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex\",\"paths\":[\"/_reindex\"],\"parts\":{},\"params\":{\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Explicit write consistency setting for the operation\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Should the request should block until the reindex is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle for this request in sub-requests per second. 0 means set no throttle.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL and the prototype for the index request.\",\"required\":true}}}',\r\n);\r\nconst def_reindex_rethrottle = JSON.parse(\r\n    '{\"reindex_rethrottle\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex/{task_id}/_rethrottle\",\"paths\":[\"/_reindex/{task_id}/_rethrottle\",\"/_update_by_query/{task_id}/_rethrottle\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"The task id to rethrottle\"}},\"params\":{\"requests_per_second\":{\"type\":\"number\",\"required\":true,\"description\":\"The throttle to set on this request in sub-requests per second. \\\\\"unlimited\\\\\" means set no throttle, otherwise it must be a float greater than 0.\"}}},\"body\":null}}',\r\n);\r\nconst def_render_search_template = JSON.parse(\r\n    '{\"render_search_template\":{\"documentation\":\"http://www.elasticsearch.org/guide/en/elasticsearch/reference/2.4/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_render/template\",\"paths\":[\"/_render/template\",\"/_render/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"The id of the stored search template\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_scroll = JSON.parse(\r\n    '{\"scroll\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/scroll\",\"paths\":[\"/_search/scroll\",\"/_search/scroll/{scroll_id}\"],\"parts\":{\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID\"}},\"params\":{\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID for scrolled search\"}}},\"body\":{\"description\":\"The scroll ID if not passed by URL or query parameter.\"}}}',\r\n);\r\nconst def_search = JSON.parse(\r\n    '{\"search\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search\",\"paths\":[\"/_search\",\"/{index}/_search\",\"/{index}/{type}/_search\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as part of a hit\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as the field data representation of a field for each hit\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\",\"count\",\"scan\"],\"description\":\"Search operation type\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"suggest_field\":{\"type\":\"string\",\"description\":\"Specify which field to use for suggestions\"},\"suggest_mode\":{\"type\":\"enum\",\"options\":[\"missing\",\"popular\",\"always\"],\"default\":\"missing\",\"description\":\"Specify suggest mode\"},\"suggest_size\":{\"type\":\"number\",\"description\":\"How many suggestions to return in response\"},\"suggest_text\":{\"type\":\"string\",\"description\":\"The source text for which the suggestions should be returned\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"track_scores\":{\"type\":\"boolean\",\"description\":\"Whether to calculate and return scores even if they are not used for sorting\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\nconst def_search_exists = JSON.parse(\r\n    '{\"search_exists\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-exists.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_search/exists\",\"paths\":[\"/_search/exists\",\"/{index}/_search/exists\",\"/{index}/{type}/_search/exists\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of indices to restrict the results\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of types to restrict the results\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"min_score\":{\"type\":\"number\",\"description\":\"Include only documents with a specific `_score` value in the result\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"}}},\"body\":{\"description\":\"A query to restrict the results specified with the Query DSL (optional)\"}}}',\r\n);\r\nconst def_search_shards = JSON.parse(\r\n    '{\"search_shards\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-shards.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_search_shards\",\"paths\":[\"/_search_shards\",\"/{index}/_search_shards\",\"/{index}/{type}/_search_shards\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_search_template = JSON.parse(\r\n    '{\"search_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/template\",\"paths\":[\"/_search/template\",\"/{index}/_search/template\",\"/{index}/{type}/_search/template\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\",\"count\",\"scan\"],\"description\":\"Search operation type\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_snapshot_create = JSON.parse(\r\n    '{\"snapshot.create\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"The snapshot definition\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_create_repository = JSON.parse(\r\n    '{\"snapshot.create_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"verify\":{\"type\":\"boolean\",\"description\":\"Whether to verify the repository after creation\"}}},\"body\":{\"description\":\"The repository definition\",\"required\":true}}}',\r\n);\r\nconst def_snapshot_delete = JSON.parse(\r\n    '{\"snapshot.delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_delete_repository = JSON.parse(\r\n    '{\"snapshot.delete_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get = JSON.parse(\r\n    '{\"snapshot.get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get_repository = JSON.parse(\r\n    '{\"snapshot.get_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot\",\"paths\":[\"/_snapshot\",\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_restore = JSON.parse(\r\n    '{\"snapshot.restore\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}/_restore\",\"paths\":[\"/_snapshot/{repository}/{snapshot}/_restore\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"Details of what to restore\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_status = JSON.parse(\r\n    '{\"snapshot.status\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/_status\",\"paths\":[\"/_snapshot/_status\",\"/_snapshot/{repository}/_status\",\"/_snapshot/{repository}/{snapshot}/_status\"],\"parts\":{\"repository\":{\"type\":\"string\",\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_verify_repository = JSON.parse(\r\n    '{\"snapshot.verify_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/_verify\",\"paths\":[\"/_snapshot/{repository}/_verify\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_suggest = JSON.parse(\r\n    '{\"suggest\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-suggesters.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_suggest\",\"paths\":[\"/_suggest\",\"/{index}/_suggest\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"}}},\"body\":{\"description\":\"The request definition\",\"required\":true}}}',\r\n);\r\nconst def_tasks_cancel = JSON.parse(\r\n    '{\"tasks.cancel\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/tasks.html#_task_cancellation\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks/_cancel\",\"/_tasks/{task_id}/_cancel\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Cancel the task with specified id\"}},\"params\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent node.\"},\"parent_task\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_list = JSON.parse(\r\n    '{\"tasks.list\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/tasks.html#_current_tasks_information\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks\",\"/_tasks/{task_id}\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Return the task with specified id (node_id:task_number)\"}},\"params\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be returned. Leave empty to return all.\"},\"detailed\":{\"type\":\"boolean\",\"description\":\"Return detailed task information (default: false)\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent node.\"},\"parent_task\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Wait for the matching tasks to complete (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_termvectors = JSON.parse(\r\n    '{\"termvectors\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_termvectors\",\"paths\":[\"/{index}/{type}/_termvectors\",\"/{index}/{type}/{id}/_termvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\",\"required\":true},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\",\"required\":true},\"id\":{\"type\":\"string\",\"description\":\"The id of the document, when not specified a doc param should be supplied.\"}},\"params\":{\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned.\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\"default\":true,\"required\":false},\"dfs\":{\"type\":\"boolean\",\"description\":\"Specifies if distributed frequencies should be returned instead shard frequencies.\",\"default\":false,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return.\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned.\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned.\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned.\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random).\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value.\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents.\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if request is real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define parameters and or supply a document to get termvectors for. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_update = JSON.parse(\r\n    '{\"update\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-update.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_update\",\"paths\":[\"/{index}/{type}/{id}/_update\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Explicit write consistency setting for the operation\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"lang\":{\"type\":\"string\",\"description\":\"The script language (default: groovy)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document. Is is only used for routing and when for the upsert request\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the index after performing the operation\"},\"retry_on_conflict\":{\"type\":\"number\",\"description\":\"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"script\":{\"type\":\"string\",\"description\":\"The URL-encoded script definition (instead of using request body)\"},\"script_id\":{\"type\":\"string\",\"description\":\"The id of a stored script\"},\"scripted_upsert\":{\"type\":\"boolean\",\"description\":\"True if the script referenced in script or script_id should be called to perform inserts - defaults to false\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The request definition using either `script` or partial `doc`\"}}}',\r\n);\r\nconst def_update_by_query = JSON.parse(\r\n    '{\"update_by_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-update-by-query.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_update_by_query\",\"paths\":[\"/{index}/_update_by_query\",\"/{index}/{type}/_update_by_query\"],\"comment\":\"most things below this are just copied from search.json\",\"parts\":{\"index\":{\"required\":true,\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as part of a hit\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as the field data representation of a field for each hit\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"conflicts\":{\"note\":\"This is not copied from search\",\"type\":\"enum\",\"options\":[\"abort\",\"proceed\"],\"default\":\"abort\",\"description\":\"What to do when the reindex hits version conflicts?\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"lowercase_expanded_terms\":{\"type\":\"boolean\",\"description\":\"Specify whether query terms should be lowercased\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"search_timeout\":{\"type\":\"time\",\"description\":\"Explicit timeout for each search request. Defaults to no timeout.\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"suggest_field\":{\"type\":\"string\",\"description\":\"Specify which field to use for suggestions\"},\"suggest_mode\":{\"type\":\"enum\",\"options\":[\"missing\",\"popular\",\"always\"],\"default\":\"missing\",\"description\":\"Specify suggest mode\"},\"suggest_size\":{\"type\":\"number\",\"description\":\"How many suggestions to return in response\"},\"suggest_text\":{\"type\":\"string\",\"description\":\"The source text for which the suggestions should be returned\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"track_scores\":{\"type\":\"boolean\",\"description\":\"Whether to calculate and return scores even if they are not used for sorting\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"version_type\":{\"type\":\"boolean\",\"description\":\"Should the document increment the version number (internal) on hit or not (reindex)\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"consistency\":{\"type\":\"enum\",\"options\":[\"one\",\"quorum\",\"all\"],\"description\":\"Explicit write consistency setting for the operation\"},\"scroll_size\":{\"type\":\"number\",\"defaut_value\":100,\"description\":\"Size on the scroll request powering the update_by_query\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Should the request should block until the reindex is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle for this request in sub-requests per second. 0 means set no throttle.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\n\r\nexport default {\r\n    bulk: def_bulk['bulk'],\r\n    'cat.aliases': def_cat_aliases['cat.aliases'],\r\n    'cat.allocation': def_cat_allocation['cat.allocation'],\r\n    'cat.count': def_cat_count['cat.count'],\r\n    'cat.fielddata': def_cat_fielddata['cat.fielddata'],\r\n    'cat.health': def_cat_health['cat.health'],\r\n    'cat.help': def_cat_help['cat.help'],\r\n    'cat.indices': def_cat_indices['cat.indices'],\r\n    'cat.master': def_cat_master['cat.master'],\r\n    'cat.nodeattrs': def_cat_nodeattrs['cat.nodeattrs'],\r\n    'cat.nodes': def_cat_nodes['cat.nodes'],\r\n    'cat.pending_tasks': def_cat_pending_tasks['cat.pending_tasks'],\r\n    'cat.plugins': def_cat_plugins['cat.plugins'],\r\n    'cat.recovery': def_cat_recovery['cat.recovery'],\r\n    'cat.repositories': def_cat_repositories['cat.repositories'],\r\n    'cat.segments': def_cat_segments['cat.segments'],\r\n    'cat.shards': def_cat_shards['cat.shards'],\r\n    'cat.snapshots': def_cat_snapshots['cat.snapshots'],\r\n    'cat.thread_pool': def_cat_thread_pool['cat.thread_pool'],\r\n    clear_scroll: def_clear_scroll['clear_scroll'],\r\n    'cluster.get_settings': def_cluster_get_settings['cluster.get_settings'],\r\n    'cluster.health': def_cluster_health['cluster.health'],\r\n    'cluster.pending_tasks': def_cluster_pending_tasks['cluster.pending_tasks'],\r\n    'cluster.put_settings': def_cluster_put_settings['cluster.put_settings'],\r\n    'cluster.reroute': def_cluster_reroute['cluster.reroute'],\r\n    'cluster.state': def_cluster_state['cluster.state'],\r\n    'cluster.stats': def_cluster_stats['cluster.stats'],\r\n    count: def_count['count'],\r\n    count_percolate: def_count_percolate['count_percolate'],\r\n    delete: def_delete['delete'],\r\n    delete_script: def_delete_script['delete_script'],\r\n    delete_template: def_delete_template['delete_template'],\r\n    exists: def_exists['exists'],\r\n    explain: def_explain['explain'],\r\n    field_stats: def_field_stats['field_stats'],\r\n    get: def_get['get'],\r\n    get_script: def_get_script['get_script'],\r\n    get_source: def_get_source['get_source'],\r\n    get_template: def_get_template['get_template'],\r\n    index: def_index['index'],\r\n    'indices.analyze': def_indices_analyze['indices.analyze'],\r\n    'indices.clear_cache': def_indices_clear_cache['indices.clear_cache'],\r\n    'indices.close': def_indices_close['indices.close'],\r\n    'indices.create': def_indices_create['indices.create'],\r\n    'indices.delete': def_indices_delete['indices.delete'],\r\n    'indices.delete_alias': def_indices_delete_alias['indices.delete_alias'],\r\n    'indices.delete_template': def_indices_delete_template['indices.delete_template'],\r\n    'indices.delete_warmer': def_indices_delete_warmer['indices.delete_warmer'],\r\n    'indices.exists': def_indices_exists['indices.exists'],\r\n    'indices.exists_alias': def_indices_exists_alias['indices.exists_alias'],\r\n    'indices.exists_template': def_indices_exists_template['indices.exists_template'],\r\n    'indices.exists_type': def_indices_exists_type['indices.exists_type'],\r\n    'indices.flush': def_indices_flush['indices.flush'],\r\n    'indices.flush_synced': def_indices_flush_synced['indices.flush_synced'],\r\n    'indices.forcemerge': def_indices_forcemerge['indices.forcemerge'],\r\n    'indices.get': def_indices_get['indices.get'],\r\n    'indices.get_alias': def_indices_get_alias['indices.get_alias'],\r\n    'indices.get_aliases': def_indices_get_aliases['indices.get_aliases'],\r\n    'indices.get_field_mapping': def_indices_get_field_mapping['indices.get_field_mapping'],\r\n    'indices.get_mapping': def_indices_get_mapping['indices.get_mapping'],\r\n    'indices.get_settings': def_indices_get_settings['indices.get_settings'],\r\n    'indices.get_template': def_indices_get_template['indices.get_template'],\r\n    'indices.get_upgrade': def_indices_get_upgrade['indices.get_upgrade'],\r\n    'indices.get_warmer': def_indices_get_warmer['indices.get_warmer'],\r\n    'indices.open': def_indices_open['indices.open'],\r\n    'indices.optimize': def_indices_optimize['indices.optimize'],\r\n    'indices.put_alias': def_indices_put_alias['indices.put_alias'],\r\n    'indices.put_mapping': def_indices_put_mapping['indices.put_mapping'],\r\n    'indices.put_settings': def_indices_put_settings['indices.put_settings'],\r\n    'indices.put_template': def_indices_put_template['indices.put_template'],\r\n    'indices.put_warmer': def_indices_put_warmer['indices.put_warmer'],\r\n    'indices.recovery': def_indices_recovery['indices.recovery'],\r\n    'indices.refresh': def_indices_refresh['indices.refresh'],\r\n    'indices.segments': def_indices_segments['indices.segments'],\r\n    'indices.shard_stores': def_indices_shard_stores['indices.shard_stores'],\r\n    'indices.stats': def_indices_stats['indices.stats'],\r\n    'indices.update_aliases': def_indices_update_aliases['indices.update_aliases'],\r\n    'indices.upgrade': def_indices_upgrade['indices.upgrade'],\r\n    'indices.validate_query': def_indices_validate_query['indices.validate_query'],\r\n    info: def_info['info'],\r\n    mget: def_mget['mget'],\r\n    mpercolate: def_mpercolate['mpercolate'],\r\n    msearch: def_msearch['msearch'],\r\n    mtermvectors: def_mtermvectors['mtermvectors'],\r\n    'nodes.hot_threads': def_nodes_hot_threads['nodes.hot_threads'],\r\n    'nodes.info': def_nodes_info['nodes.info'],\r\n    'nodes.stats': def_nodes_stats['nodes.stats'],\r\n    percolate: def_percolate['percolate'],\r\n    ping: def_ping['ping'],\r\n    put_script: def_put_script['put_script'],\r\n    put_template: def_put_template['put_template'],\r\n    reindex: def_reindex['reindex'],\r\n    reindex_rethrottle: def_reindex_rethrottle['reindex_rethrottle'],\r\n    render_search_template: def_render_search_template['render_search_template'],\r\n    scroll: def_scroll['scroll'],\r\n    search: def_search['search'],\r\n    search_exists: def_search_exists['search_exists'],\r\n    search_shards: def_search_shards['search_shards'],\r\n    search_template: def_search_template['search_template'],\r\n    'snapshot.create': def_snapshot_create['snapshot.create'],\r\n    'snapshot.create_repository': def_snapshot_create_repository['snapshot.create_repository'],\r\n    'snapshot.delete': def_snapshot_delete['snapshot.delete'],\r\n    'snapshot.delete_repository': def_snapshot_delete_repository['snapshot.delete_repository'],\r\n    'snapshot.get': def_snapshot_get['snapshot.get'],\r\n    'snapshot.get_repository': def_snapshot_get_repository['snapshot.get_repository'],\r\n    'snapshot.restore': def_snapshot_restore['snapshot.restore'],\r\n    'snapshot.status': def_snapshot_status['snapshot.status'],\r\n    'snapshot.verify_repository': def_snapshot_verify_repository['snapshot.verify_repository'],\r\n    suggest: def_suggest['suggest'],\r\n    'tasks.cancel': def_tasks_cancel['tasks.cancel'],\r\n    'tasks.list': def_tasks_list['tasks.list'],\r\n    termvectors: def_termvectors['termvectors'],\r\n    update: def_update['update'],\r\n    update_by_query: def_update_by_query['update_by_query'],\r\n};\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.analyze.json",
    "content": "{\r\n  \"indices.analyze\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-analyze.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_analyze\",\r\n      \"paths\": [\"/_analyze\", \"/{index}/_analyze\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the analyzer to use\"\r\n        },\r\n        \"char_filters\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Deprecated : A comma-separated list of character filters to use for the analysis\"\r\n        },\r\n        \"char_filter\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of character filters to use for the analysis\"\r\n        },\r\n        \"field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Use the analyzer configured for this field (instead of passing the analyzer name)\"\r\n        },\r\n        \"filters\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Deprecated : A comma-separated list of filters to use for the analysis\"\r\n        },\r\n        \"filter\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of filters to use for the analysis\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        },\r\n        \"prefer_local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"\r\n        },\r\n        \"text\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The text on which the analysis should be performed (when request body is not used)\"\r\n        },\r\n        \"tokenizer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the tokenizer to use for the analysis\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"With `true`, outputs more advanced details. (default: false)\"\r\n        },\r\n        \"attributes\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of token attributes to output, this parameter works only with `explain=true`\"\r\n        },\r\n        \"format\": {\r\n          \"type\": \"enum\",\r\n          \"options\" : [\"detailed\",\"text\"],\r\n          \"default\": \"detailed\",\r\n          \"description\": \"Format of the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The text on which the analysis should be performed\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.clear_cache.json",
    "content": "{\r\n  \"indices.clear_cache\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-clearcache.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cache/clear\",\r\n      \"paths\": [\"/_cache/clear\", \"/{index}/_cache/clear\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"field_data\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fielddata\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"\r\n        },\r\n        \"query\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear query caches\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        },\r\n        \"recycler\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear the recycler cache\"\r\n        },\r\n        \"request\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear request cache\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.close.json",
    "content": "{\r\n  \"indices.close\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_close\",\r\n      \"paths\": [\"/{index}/_close\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to close\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.create.json",
    "content": "{\r\n  \"indices.create\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-create-index.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The configuration for the index (`settings` and `mappings`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.delete.json",
    "content": "{\r\n  \"indices.delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-delete-index.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.delete_alias.json",
    "content": "{\r\n  \"indices.delete_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.delete_template.json",
    "content": "{\r\n  \"indices.delete_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.delete_warmer.json",
    "content": "{\r\n  \"indices.delete_warmer\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_warmer/{name}\",\r\n      \"paths\": [\"/{index}/_warmer/{name}\", \"/{index}/_warmers/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names to delete warmers from (supports wildcards); use `_all` to perform the operation on all indices.\"\r\n        },\r\n        \"name\" : {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"name\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of warmer names to delete (supports wildcards); use `_all` to delete all warmers in the specified indices. You must specify a name either in the uri or in the parameters.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.exists.json",
    "content": "{\r\n  \"indices.exists\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-exists.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of indices to check\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.exists_alias.json",
    "content": "{\r\n  \"indices.exists_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/{name}\",\r\n      \"paths\": [\"/_alias/{name}\", \"/{index}/_alias/{name}\", \"/{index}/_alias\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n           \"type\" : \"enum\",\r\n           \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n           \"default\" : [\"open\", \"closed\"],\r\n           \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n           \"type\": \"boolean\",\r\n           \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.exists_template.json",
    "content": "{\r\n  \"indices.exists_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.exists_type.json",
    "content": "{\r\n  \"indices.exists_type\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-types-exists.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}\",\r\n      \"paths\": [\"/{index}/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names; use `_all` to check the types across all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of document types to check\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.flush.json",
    "content": "{\r\n  \"indices.flush\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush\",\r\n      \"paths\": [\"/_flush\", \"/{index}/_flush\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"force\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"\r\n        },\r\n        \"wait_if_ongoing\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is false and will cause an exception to be thrown on the shard level if another flush operation is already running.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.flush_synced.json",
    "content": "{\r\n  \"indices.flush_synced\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-synced-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush/synced\",\r\n      \"paths\": [\r\n        \"/_flush/synced\",\r\n        \"/{index}/_flush/synced\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\r\n            \"open\",\r\n            \"closed\",\r\n            \"none\",\r\n            \"all\"\r\n          ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.forcemerge.json",
    "content": "{\r\n  \"indices.forcemerge\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-forcemerge.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_forcemerge\",\r\n      \"paths\": [\"/_forcemerge\", \"/{index}/_forcemerge\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flush\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the index should be flushed after performing the operation (default: true)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"max_num_segments\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of segments the index should be merged into (default: dynamic)\"\r\n        },\r\n        \"only_expunge_deletes\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the operation should only expunge deleted documents\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"wait_for_merge\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the request should block until the merge process is finished (default: true)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get.json",
    "content": "{\r\n  \"indices.get\":{\r\n    \"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-index.html\",\r\n    \"methods\":[ \"GET\" ],\r\n    \"url\":{\r\n      \"path\":\"/{index}\",\r\n      \"paths\":[ \"/{index}\", \"/{index}/{feature}\" ],\r\n      \"parts\":{\r\n        \"index\":{\r\n          \"type\":\"list\",\r\n          \"required\" : true,\r\n          \"description\":\"A comma-separated list of index names\"\r\n        },\r\n        \"feature\":{\r\n          \"type\":\"list\",\r\n          \"description\":\"A comma-separated list of features\",\r\n          \"options\": [\"_settings\", \"_mappings\", \"_warmers\", \"_aliases\"]\r\n        }\r\n      },\r\n      \"params\":{\r\n        \"local\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"human\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return version and creation date values in human-readable format.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_alias.json",
    "content": "{\r\n  \"indices.get_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/\",\r\n      \"paths\": [ \"/_alias\", \"/_alias/{name}\", \"/{index}/_alias/{name}\", \"/{index}/_alias\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_aliases.json",
    "content": "{\r\n  \"indices.get_aliases\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_aliases\",\r\n      \"paths\": [\"/_aliases\", \"/{index}/_aliases\", \"/{index}/_aliases/{name}\", \"/_aliases/{name}\" ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to filter\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_field_mapping.json",
    "content": "{\r\n  \"indices.get_field_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-field-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping/field/{fields}\",\r\n      \"paths\": [\"/_mapping/field/{fields}\", \"/{index}/_mapping/field/{fields}\", \"/_mapping/{type}/field/{fields}\", \"/{index}/_mapping/{type}/field/{fields}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"include_defaults\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether the default mapping values should be returned as well\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_mapping.json",
    "content": "{\r\n  \"indices.get_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping\",\r\n      \"paths\": [\"/_mapping\", \"/{index}/_mapping\", \"/_mapping/{type}\", \"/{index}/_mapping/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_settings.json",
    "content": "{\r\n  \"indices.get_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-get-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\", \"/{index}/_settings/{name}\", \"/_settings/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The name of the settings that should be included\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : [\"open\",\"closed\"],\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"human\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return version and creation date values in human-readable format.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_template.json",
    "content": "{\r\n  \"indices.get_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\r\n        \"/_template\",\r\n        \"/_template/{name}\"\r\n      ],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"list\",\r\n          \"required\": false,\r\n          \"description\": \"The comma separated names of the index templates\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_upgrade.json",
    "content": "{\r\n  \"indices.get_upgrade\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-upgrade.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.get_warmer.json",
    "content": "{\r\n  \"indices.get_warmer\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_warmer\",\r\n      \"paths\": [ \"/_warmer\", \"/{index}/_warmer\", \"/{index}/_warmer/{name}\", \"/_warmer/{name}\", \"/{index}/{type}/_warmer/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` to perform the operation on all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The name of the warmer (supports wildcards); leave empty to get all warmers\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.open.json",
    "content": "{\r\n  \"indices.open\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_open\",\r\n      \"paths\": [\"/{index}/_open\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to open\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n           \"type\" : \"enum\",\r\n           \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n           \"default\" : \"closed\",\r\n           \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.optimize.json",
    "content": "{\r\n  \"indices.optimize\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-optimize.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_optimize\",\r\n      \"paths\": [\"/_optimize\", \"/{index}/_optimize\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flush\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the index should be flushed after performing the operation (default: true)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"max_num_segments\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of segments the index should be merged into (default: dynamic)\"\r\n        },\r\n        \"only_expunge_deletes\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the operation should only expunge deleted documents\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"wait_for_merge\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the request should block until the merge process is finished (default: true)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.put_alias.json",
    "content": "{\r\n  \"indices.put_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the alias to be created or updated\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The settings for the alias, such as `routing` or `filter`\",\r\n      \"required\"    : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.put_mapping.json",
    "content": "{\r\n  \"indices.put_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-put-mapping.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_mapping\",\r\n      \"paths\": [\"/{index}/{type}/_mapping\", \"/{index}/_mapping/{type}\", \"/_mapping/{type}\", \"/{index}/{type}/_mappings\", \"/{index}/_mappings/{type}\", \"/_mappings/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the document type\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The mapping definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.put_settings.json",
    "content": "{\r\n  \"indices.put_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n          \"flat_settings\": {\r\n              \"type\": \"boolean\",\r\n              \"description\": \"Return settings in flat format (default: false)\"\r\n          }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The index settings to be updated\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.put_template.json",
    "content": "{\r\n  \"indices.put_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"order\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"\r\n        },\r\n        \"create\" : {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether the index template should only be added if new or can also replace an existing one\",\r\n            \"default\" : false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n           \"type\": \"boolean\",\r\n           \"description\": \"Return settings in flat format (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The template definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.put_warmer.json",
    "content": "{\r\n  \"indices.put_warmer\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-warmers.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_warmer/{name}\",\r\n      \"paths\": [\"/_warmer/{name}\", \"/{index}/_warmer/{name}\", \"/{index}/{type}/_warmer/{name}\", \"/_warmers/{name}\", \"/{index}/_warmers/{name}\", \"/{index}/{type}/_warmers/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to register the warmer for; use `_all` or omit to perform the operation on all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the warmer\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to register the warmer for; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed) in the search request to warm\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices in the search request to warm. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both, in the search request to warm.\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the request to be warmed should use the request cache, defaults to index level setting\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The search request definition for the warmer (query, filters, facets, sorting, etc)\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.recovery.json",
    "content": "{\r\n    \"indices.recovery\" : {\r\n        \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-recovery.html\",\r\n        \"methods\": [\"GET\"],\r\n        \"url\": {\r\n            \"path\": \"/_recovery\",\r\n            \"paths\": [\"/_recovery\", \"/{index}/_recovery\"],\r\n            \"parts\": {\r\n                \"index\": {\r\n                    \"type\" : \"list\",\r\n                    \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"detailed\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Whether to display detailed information about shard recovery\",\r\n                    \"default\": false\r\n                },\r\n                \"active_only\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Display only those recoveries that are currently on-going\",\r\n                    \"default\": false\r\n                },\r\n                \"human\": {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n                    \"default\": false\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.refresh.json",
    "content": "{\r\n  \"indices.refresh\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-refresh.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_refresh\",\r\n      \"paths\": [\"/_refresh\", \"/{index}/_refresh\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"force\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Force a refresh even if not required\",\r\n            \"default\": false\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.segments.json",
    "content": "{\r\n  \"indices.segments\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_segments\",\r\n      \"paths\": [\"/_segments\", \"/{index}/_segments\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"verbose\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Includes detailed memory usage by Lucene.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.shard_stores.json",
    "content": "{\r\n  \"indices.shard_stores\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-shards-stores.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_shard_stores\",\r\n      \"paths\": [\"/_shard_stores\", \"/{index}/_shard_stores\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"status\" : {\r\n            \"type\" : \"list\",\r\n            \"options\" : [\"green\", \"yellow\", \"red\", \"all\"],\r\n            \"description\" : \"A comma-separated list of statuses used to filter on shards to get store information for\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.stats.json",
    "content": "{\r\n  \"indices.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_stats\",\r\n      \"paths\": [\r\n        \"/_stats\",\r\n        \"/_stats/{metric}\",\r\n        \"/{index}/_stats\",\r\n        \"/{index}/_stats/{metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"percolate\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned the specific metrics.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return stats aggregated at cluster, index or shard level\",\r\n          \"options\" : [\"cluster\", \"indices\", \"shards\"],\r\n          \"default\" : \"indices\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.update_aliases.json",
    "content": "{\r\n  \"indices.update_aliases\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-aliases.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_aliases\",\r\n      \"paths\": [\"/_aliases\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Request timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `actions` to perform\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.upgrade.json",
    "content": "{\r\n  \"indices.upgrade\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-upgrade.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specify whether the request should block until the all segments are upgraded (default: false)\"\r\n\t},\r\n        \"only_ancient_segments\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If true, only ancient (an older Lucene major release) segments will be upgraded\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/indices.validate_query.json",
    "content": "{\r\n  \"indices.validate_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-validate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_validate/query\",\r\n      \"paths\": [\"/_validate/query\", \"/{index}/_validate/query\", \"/{index}/{type}/_validate/query\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return detailed information about the error\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        },\r\n        \"rewrite\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition specified with the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/info.json",
    "content": "{\r\n  \"info\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/mget.json",
    "content": "{\r\n  \"mget\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-multi-get.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_mget\",\r\n      \"paths\": [\"/_mget\", \"/{index}/_mget\", \"/{index}/{type}/_mget\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/mpercolate.json",
    "content": "{\r\n  \"mpercolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_mpercolate\",\r\n      \"paths\": [\"/_mpercolate\", \"/{index}/_mpercolate\", \"/{index}/{type}/_mpercolate\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The index of the document being count percolated to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document being percolated to use as default.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The percolate request definitions (header & body pair), separated by newlines\",\r\n      \"required\": true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/msearch.json",
    "content": "{\r\n  \"msearch\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-multi-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_msearch\",\r\n      \"paths\": [\"/_msearch\", \"/{index}/_msearch\", \"/{index}/{type}/_msearch\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to use as default\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\", \"count\", \"scan\"],\r\n          \"description\" : \"Search operation type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definitions (metadata-search request definition pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/mtermvectors.json",
    "content": "{\r\n  \"mtermvectors\" : {\r\n    \"documentation\" : \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-multi-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/_mtermvectors\",\r\n      \"paths\" : [\"/_mtermvectors\", \"/{index}/_mtermvectors\", \"/{index}/{type}/_mtermvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\"\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ids\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of documents ids. You must define ids as parameter or set \\\"ids\\\" or \\\"docs\\\" in the request body\",\r\n          \"required\" : false\r\n        },\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n        \"description\" : \"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\r\n        \"required\" : false\r\n\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/nodes.hot_threads.json",
    "content": "{\r\n  \"nodes.hot_threads\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-hot-threads.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/hot_threads\",\r\n      \"paths\": [\"/_cluster/nodes/hotthreads\", \"/_cluster/nodes/hot_threads\", \"/_cluster/nodes/{node_id}/hotthreads\", \"/_cluster/nodes/{node_id}/hot_threads\", \"/_nodes/hotthreads\", \"/_nodes/hot_threads\", \"/_nodes/{node_id}/hotthreads\", \"/_nodes/{node_id}/hot_threads\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"interval\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"The interval for the second sampling of threads\"\r\n        },\r\n        \"snapshots\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of samples of thread stacktrace (default: 10)\"\r\n        },\r\n        \"threads\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Specify the number of threads to provide information for (default: 3)\"\r\n        },\r\n        \"ignore_idle_threads\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Don't show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cpu\", \"wait\", \"block\"],\r\n          \"description\" : \"The type to sample (default: cpu)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/nodes.info.json",
    "content": "{\r\n  \"nodes.info\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-info.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes\",\r\n      \"paths\": [\"/_nodes\", \"/_nodes/{node_id}\", \"/_nodes/{metric}\", \"/_nodes/{node_id}/{metric}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"settings\", \"os\", \"process\", \"jvm\", \"thread_pool\", \"transport\", \"http\", \"plugins\"],\r\n          \"description\": \"A comma-separated list of metrics you wish returned. Leave empty to return all.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/nodes.stats.json",
    "content": "{\r\n  \"nodes.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-nodes-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/stats\",\r\n      \"paths\": [\r\n        \"/_nodes/stats\",\r\n        \"/_nodes/{node_id}/stats\",\r\n        \"/_nodes/stats/{metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}\",\r\n        \"/_nodes/stats/{metric}/{index_metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}/{index_metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"breaker\", \"fs\", \"http\", \"indices\", \"jvm\", \"os\", \"process\", \"thread_pool\", \"transport\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        },\r\n        \"index_metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"percolate\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned for `indices` metric to the specific index metrics. Isn't used if `indices` (or `all`) metric isn't specified.\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return indices stats aggregated at node, index or shard level\",\r\n          \"options\" : [\"node\", \"indices\", \"shards\"],\r\n          \"default\" : \"node\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/percolate.json",
    "content": "{\r\n  \"percolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_percolate\",\r\n      \"paths\": [\"/{index}/{type}/_percolate\", \"/{index}/{type}/{id}/_percolate\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The index of the document being percolated.\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document being percolated.\"\r\n        },\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : false,\r\n          \"description\" : \"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"percolate_index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The index to percolate the document into. Defaults to index.\"\r\n        },\r\n        \"percolate_type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type to percolate document into. Defaults to type.\"\r\n        },\r\n        \"percolate_routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The routing value to use when percolating the existing document.\"\r\n        },\r\n        \"percolate_preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Which shard to prefer when executing the percolate request.\"\r\n        },\r\n        \"percolate_format\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"ids\"],\r\n          \"description\" : \"Return an array of matching query IDs instead of objects\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The percolator request definition using the percolate DSL\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/ping.json",
    "content": "{\r\n  \"ping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/put_script.json",
    "content": "{\r\n  \"put_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}/{id}\",\r\n      \"paths\": [ \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"op_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"index\", \"create\"],\r\n          \"default\" : \"index\",\r\n          \"description\" : \"Explicit operation type\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v2_4_6/put_template.json",
    "content": "{\r\n  \"put_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-template.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"op_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"index\", \"create\"],\r\n          \"default\" : \"index\",\r\n          \"description\" : \"Explicit operation type\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/reindex.json",
    "content": "{\r\n  \"reindex\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex\",\r\n      \"paths\": [\"/_reindex\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"consistency\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"one\", \"quorum\", \"all\"],\r\n          \"description\" : \"Explicit write consistency setting for the operation\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\" : \"boolean\",\r\n          \"default\": false,\r\n          \"description\" : \"Should the request should block until the reindex is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle for this request in sub-requests per second. 0 means set no throttle.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL and the prototype for the index request.\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/reindex_rethrottle.json",
    "content": "{\r\n  \"reindex_rethrottle\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex/{task_id}/_rethrottle\",\r\n      \"paths\": [\"/_reindex/{task_id}/_rethrottle\", \"/_update_by_query/{task_id}/_rethrottle\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The task id to rethrottle\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"required\": true,\r\n          \"description\": \"The throttle to set on this request in sub-requests per second. \\\"unlimited\\\" means set no throttle, otherwise it must be a float greater than 0.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/render_search_template.json",
    "content": "{\r\n  \"render_search_template\": {\r\n    \"documentation\": \"http://www.elasticsearch.org/guide/en/elasticsearch/reference/2.4/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_render/template\",\r\n      \"paths\": [ \"/_render/template\", \"/_render/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The id of the stored search template\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/scroll.json",
    "content": "{\r\n  \"scroll\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll\",\r\n      \"paths\": [\"/_search/scroll\", \"/_search/scroll/{scroll_id}\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID for scrolled search\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The scroll ID if not passed by URL or query parameter.\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/search.json",
    "content": "{\r\n  \"search\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search\",\r\n      \"paths\": [\"/_search\", \"/{index}/_search\", \"/{index}/{type}/_search\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as part of a hit\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as the field data representation of a field for each hit\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\", \"count\", \"scan\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"suggest_field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify which field to use for suggestions\"\r\n        },\r\n        \"suggest_mode\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"missing\", \"popular\", \"always\"],\r\n          \"default\" : \"missing\",\r\n          \"description\" : \"Specify suggest mode\"\r\n        },\r\n        \"suggest_size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"How many suggestions to return in response\"\r\n        },\r\n        \"suggest_text\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The source text for which the suggestions should be returned\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"track_scores\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\": \"Whether to calculate and return scores even if they are not used for sorting\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/search_exists.json",
    "content": "{\r\n  \"search_exists\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-exists.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/exists\",\r\n      \"paths\": [\"/_search/exists\", \"/{index}/_search/exists\", \"/{index}/{type}/_search/exists\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of indices to restrict the results\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of types to restrict the results\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"min_score\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Include only documents with a specific `_score` value in the result\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"A query to restrict the results specified with the Query DSL (optional)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/search_shards.json",
    "content": "{\r\n  \"search_shards\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-shards.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_search_shards\",\r\n      \"paths\": [\"/_search_shards\", \"/{index}/_search_shards\", \"/{index}/{type}/_search_shards\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/search_template.json",
    "content": "{\r\n  \"search_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template\",\r\n      \"paths\": [\"/_search/template\", \"/{index}/_search/template\", \"/{index}/{type}/_search/template\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\", \"count\", \"scan\"],\r\n          \"description\" : \"Search operation type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.create.json",
    "content": "{\r\n  \"snapshot.create\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"The snapshot definition\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.create_repository.json",
    "content": "{\r\n  \"snapshot.create_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"verify\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to verify the repository after creation\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The repository definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.delete.json",
    "content": "{\r\n  \"snapshot.delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.delete_repository.json",
    "content": "{\r\n  \"snapshot.delete_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.get.json",
    "content": "{\r\n  \"snapshot.get\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.get_repository.json",
    "content": "{\r\n  \"snapshot.get_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot\",\r\n      \"paths\": [\"/_snapshot\", \"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.restore.json",
    "content": "{\r\n  \"snapshot.restore\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}/_restore\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}/_restore\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"Details of what to restore\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.status.json",
    "content": "{\r\n  \"snapshot.status\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/_status\",\r\n      \"paths\": [\"/_snapshot/_status\", \"/_snapshot/{repository}/_status\", \"/_snapshot/{repository}/{snapshot}/_status\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v2_4_6/snapshot.verify_repository.json",
    "content": "{\r\n    \"snapshot.verify_repository\": {\r\n        \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html\",\r\n        \"methods\": [\"POST\"],\r\n        \"url\": {\r\n            \"path\": \"/_snapshot/{repository}/_verify\",\r\n            \"paths\": [\"/_snapshot/{repository}/_verify\"],\r\n            \"parts\": {\r\n                \"repository\": {\r\n                    \"type\": \"string\",\r\n                    \"required\" : true,\r\n                    \"description\": \"A repository name\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"master_timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout for connection to master node\"\r\n                },\r\n                \"timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout\"\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/suggest.json",
    "content": "{\r\n  \"suggest\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-suggesters.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_suggest\",\r\n      \"paths\": [\"/_suggest\", \"/{index}/_suggest\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The request definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/tasks.cancel.json",
    "content": "{\r\n  \"tasks.cancel\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/tasks.html#_task_cancellation\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks/_cancel\", \"/_tasks/{task_id}/_cancel\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel the task with specified id\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/tasks.list.json",
    "content": "{\r\n  \"tasks.list\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/tasks.html#_current_tasks_information\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks\", \"/_tasks/{task_id}\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return the task with specified id (node_id:task_number)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be returned. Leave empty to return all.\"\r\n        },\r\n        \"detailed\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return detailed task information (default: false)\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Wait for the matching tasks to complete (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/termvectors.json",
    "content": "{\r\n  \"termvectors\" : {\r\n    \"documentation\" : \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/{index}/{type}/_termvectors\",\r\n      \"paths\" : [\"/{index}/{type}/_termvectors\", \"/{index}/{type}/{id}/_termvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\",\r\n         \"required\" : true\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\",\r\n          \"required\" : true\r\n        },\r\n        \"id\" : {\r\n           \"type\" : \"string\",\r\n           \"description\" : \"The id of the document, when not specified a doc param should be supplied.\"\r\n         }\r\n      },\r\n      \"params\": {\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned.\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"dfs\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if distributed frequencies should be returned instead shard frequencies.\",\r\n           \"default\" : false,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return.\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random).\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value.\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents.\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if request is real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Define parameters and or supply a document to get termvectors for. See documentation.\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/update.json",
    "content": "{\r\n  \"update\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-update.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_update\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_update\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"consistency\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"one\", \"quorum\", \"all\"],\r\n          \"description\": \"Explicit write consistency setting for the operation\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"lang\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The script language (default: groovy)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"ID of the parent document. Is is only used for routing and when for the upsert request\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Refresh the index after performing the operation\"\r\n        },\r\n        \"retry_on_conflict\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Specific routing value\"\r\n        },\r\n        \"script\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The URL-encoded script definition (instead of using request body)\"\r\n        },\r\n        \"script_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The id of a stored script\"\r\n        },\r\n        \"scripted_upsert\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"True if the script referenced in script or script_id should be called to perform inserts - defaults to false\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Expiration time for the document\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definition using either `script` or partial `doc`\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v2_4_6/update_by_query.json",
    "content": "{\r\n  \"update_by_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-update-by-query.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_update_by_query\",\r\n      \"paths\": [\"/{index}/_update_by_query\", \"/{index}/{type}/_update_by_query\"],\r\n      \"comment\": \"most things below this are just copied from search.json\",\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"required\" : true,\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as part of a hit\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as the field data representation of a field for each hit\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"conflicts\": {\r\n            \"note\": \"This is not copied from search\",\r\n            \"type\" : \"enum\",\r\n            \"options\": [\"abort\", \"proceed\"],\r\n            \"default\": \"abort\",\r\n            \"description\" : \"What to do when the reindex hits version conflicts?\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"lowercase_expanded_terms\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether query terms should be lowercased\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"search_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timeout for each search request. Defaults to no timeout.\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"suggest_field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify which field to use for suggestions\"\r\n        },\r\n        \"suggest_mode\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"missing\", \"popular\", \"always\"],\r\n          \"default\" : \"missing\",\r\n          \"description\" : \"Specify suggest mode\"\r\n        },\r\n        \"suggest_size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"How many suggestions to return in response\"\r\n        },\r\n        \"suggest_text\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The source text for which the suggestions should be returned\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"track_scores\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\": \"Whether to calculate and return scores even if they are not used for sorting\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the document increment the version number (internal) on hit or not (reindex)\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"consistency\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"one\", \"quorum\", \"all\"],\r\n          \"description\" : \"Explicit write consistency setting for the operation\"\r\n        },\r\n        \"scroll_size\": {\r\n          \"type\": \"number\",\r\n          \"defaut_value\": 100,\r\n          \"description\": \"Size on the scroll request powering the update_by_query\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"default\": false,\r\n           \"description\" : \"Should the request should block until the reindex is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle for this request in sub-requests per second. 0 means set no throttle.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/_common.json",
    "content": "{\r\n  \"description\": \"Parameters that are accepted by all API endpoints.\",\r\n  \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html\",\r\n  \"params\": {\r\n    \"pretty\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Pretty format the returned JSON response.\",\r\n      \"default\": false\r\n    },\r\n    \"human\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Return human readable values for statistics.\",\r\n      \"default\": true\r\n    },\r\n    \"error_trace\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Include the stack trace of returned errors.\",\r\n      \"default\": false\r\n    },\r\n    \"source\": {\r\n      \"type\": \"string\",\r\n      \"description\": \"The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests.\"\r\n    },\r\n    \"filter_path\": {\r\n      \"type\": \"list\",\r\n      \"description\": \"A comma-separated list of filters used to reduce the respone.\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/bulk.json",
    "content": "{\r\n  \"bulk\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-bulk.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_bulk\",\r\n      \"paths\": [\"/_bulk\", \"/{index}/_bulk\", \"/{index}/{type}/_bulk\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default index for items which don't provide one\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the bulk operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\" \r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Default comma-separated list of fields to return in the response for updates, can be overridden on each sub-request\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or default list of fields to return, can be overridden on each sub-request\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Default list of fields to exclude from the returned _source field, can be overridden on each sub-request\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Default list of fields to extract and return from the _source field, can be overridden on each sub-request\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The operation definition and data (action-data pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.aliases.json",
    "content": "{\r\n  \"cat.aliases\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-alias.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/aliases\",\r\n      \"paths\": [\"/_cat/aliases\", \"/_cat/aliases/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.allocation.json",
    "content": "{\r\n  \"cat.allocation\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-allocation.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/allocation\",\r\n      \"paths\": [\"/_cat/allocation\", \"/_cat/allocation/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.count.json",
    "content": "{\r\n  \"cat.count\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-count.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/count\",\r\n      \"paths\": [\"/_cat/count\", \"/_cat/count/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.fielddata.json",
    "content": "{\r\n  \"cat.fielddata\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-fielddata.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/fielddata\",\r\n      \"paths\": [\"/_cat/fielddata\", \"/_cat/fielddata/{fields}\"],\r\n      \"parts\": {\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return the fielddata size\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.health.json",
    "content": "{\r\n  \"cat.health\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/health\",\r\n      \"paths\": [\"/_cat/health\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"ts\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to false to disable timestamping\",\r\n          \"default\": true\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.help.json",
    "content": "{\r\n  \"cat.help\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat\",\r\n      \"paths\": [\"/_cat\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.indices.json",
    "content": "{\r\n  \"cat.indices\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-indices.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/indices\",\r\n      \"paths\": [\"/_cat/indices\", \"/_cat/indices/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"health\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"green\",\"yellow\",\"red\"],\r\n          \"default\" : null,\r\n          \"description\" : \"A health status (\\\"green\\\", \\\"yellow\\\", or \\\"red\\\" to filter only indices matching the specified health status\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"pri\" : {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to return stats only for primary shards\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.master.json",
    "content": "{\r\n  \"cat.master\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-master.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/master\",\r\n      \"paths\": [\"/_cat/master\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.nodeattrs.json",
    "content": "{\r\n  \"cat.nodeattrs\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-nodeattrs.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodeattrs\",\r\n      \"paths\": [\"/_cat/nodeattrs\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.nodes.json",
    "content": "{\r\n  \"cat.nodes\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-nodes.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodes\",\r\n      \"paths\": [\"/_cat/nodes\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"full_id\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return the full node ID instead of the shortened version (default: false)\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.pending_tasks.json",
    "content": "{\r\n  \"cat.pending_tasks\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-pending-tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/pending_tasks\",\r\n      \"paths\": [\"/_cat/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.plugins.json",
    "content": "{\r\n  \"cat.plugins\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-plugins.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/plugins\",\r\n      \"paths\": [\"/_cat/plugins\"],\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.recovery.json",
    "content": "{\r\n  \"cat.recovery\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-recovery.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/recovery\",\r\n      \"paths\": [\"/_cat/recovery\", \"/_cat/recovery/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.repositories.json",
    "content": "{\r\n  \"cat.repositories\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-repositories.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/repositories\",\r\n      \"paths\": [\"/_cat/repositories\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.segments.json",
    "content": "{\r\n  \"cat.segments\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/segments\",\r\n      \"paths\": [\"/_cat/segments\", \"/_cat/segments/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.shards.json",
    "content": "{\r\n  \"cat.shards\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-shards.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/shards\",\r\n      \"paths\": [\"/_cat/shards\", \"/_cat/shards/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.snapshots.json",
    "content": "{\r\n  \"cat.snapshots\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/snapshots\",\r\n      \"paths\": [\r\n        \"/_cat/snapshots\",\r\n        \"/_cat/snapshots/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\" : \"list\",\r\n          \"required\": true,\r\n          \"description\": \"Name of repository from which to fetch the snapshot information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to ignore unavailable snapshots\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.tasks.json",
    "content": "{\r\n  \"cat.tasks\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/tasks\",\r\n      \"paths\": [\"/_cat/tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be returned. Leave empty to return all.\"\r\n        },\r\n        \"detailed\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return detailed task information (default: false)\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Return tasks with specified parent task id. Set to -1 to return all.\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.templates.json",
    "content": "{\r\n  \"cat.templates\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-templates.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/templates\",\r\n      \"paths\": [\"/_cat/templates\", \"/_cat/templates/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"A pattern that returned template names must match\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cat.thread_pool.json",
    "content": "{\r\n  \"cat.thread_pool\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-thread-pool.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/thread_pool\",\r\n      \"paths\": [\"/_cat/thread_pool\",\"/_cat/thread_pool/{thread_pool_patterns}\"],\r\n      \"parts\": {\r\n        \"thread_pool_patterns\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of regular-expressions to filter the thread pools in the output\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"size\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The multiplier in which to display values\",\r\n          \"options\": [ \"\", \"k\", \"m\", \"g\", \"t\", \"p\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/clear_scroll.json",
    "content": "{\r\n  \"clear_scroll\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-request-scroll.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll/{scroll_id}\",\r\n      \"paths\": [\"/_search/scroll/{scroll_id}\", \"/_search/scroll\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of scroll IDs to clear\"\r\n        }\r\n      },\r\n      \"params\": {}\r\n    },\r\n    \"body\": {\r\n      \"description\": \"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.allocation_explain.json",
    "content": "{\r\n  \"cluster.allocation_explain\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-allocation-explain.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/allocation/explain\",\r\n      \"paths\": [\"/_cluster/allocation/explain\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"include_yes_decisions\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return 'YES' decisions in explanation (default: false)\"\r\n        },\r\n        \"include_disk_info\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return information about disk usage and shard sizes (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The index, shard, and primary flag to explain. Empty means 'explain the first unassigned shard'\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.get_settings.json",
    "content": "{\r\n  \"cluster.get_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-update-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default clusters setting.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.health.json",
    "content": "{\r\n  \"cluster.health\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/health\",\r\n      \"paths\": [\"/_cluster/health\", \"/_cluster/health/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Limit the information returned to a specific index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cluster\",\"indices\",\"shards\"],\r\n          \"default\" : \"cluster\",\r\n          \"description\" : \"Specify the level of detail for returned information\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Wait until the specified number of shards is active\"\r\n        },\r\n        \"wait_for_nodes\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Wait until the specified number of nodes is available\"\r\n        },\r\n        \"wait_for_events\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"immediate\", \"urgent\", \"high\", \"normal\", \"low\", \"languid\"],\r\n          \"description\" : \"Wait until all currently queued events with the given priority are processed\"\r\n        },\r\n        \"wait_for_no_relocating_shards\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to wait until there are no relocating shards in the cluster\"\r\n        },\r\n        \"wait_for_status\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"green\",\"yellow\",\"red\"],\r\n          \"default\" : null,\r\n          \"description\" : \"Wait until cluster is in a specific state\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.pending_tasks.json",
    "content": "{\r\n  \"cluster.pending_tasks\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-pending.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/pending_tasks\",\r\n      \"paths\": [\"/_cluster/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.put_settings.json",
    "content": "{\r\n  \"cluster.put_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.reroute.json",
    "content": "{\r\n  \"cluster.reroute\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-reroute.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/reroute\",\r\n      \"paths\": [\"/_cluster/reroute\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"dry_run\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Simulate the operation only and return the resulting state\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return an explanation of why the commands can or cannot be executed\"\r\n        },\r\n        \"retry_failed\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Retries allocation of shards that are blocked due to too many subsequent allocation failures\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"master_node\", \"version\"],\r\n          \"description\": \"Limit the information returned to the specified metrics. Defaults to all but metadata\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.state.json",
    "content": "{\r\n  \"cluster.state\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-state.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/state\",\r\n      \"paths\": [\r\n        \"/_cluster/state\",\r\n        \"/_cluster/state/{metric}\",\r\n        \"/_cluster/state/{metric}/{index}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"routing_nodes\", \"master_node\", \"version\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/cluster.stats.json",
    "content": "{\r\n  \"cluster.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/stats\",\r\n      \"paths\": [\"/_cluster/stats\", \"/_cluster/stats/nodes/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/count.json",
    "content": "{\r\n  \"count\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-count.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_count\",\r\n      \"paths\": [\"/_count\", \"/{index}/_count\", \"/{index}/{type}/_count\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of indices to restrict the results\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of types to restrict the results\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"min_score\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Include only documents with a specific `_score` value in the result\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"terminate_after\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum count for each shard, upon reaching which the query execution will terminate early\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"A query to restrict the results specified with the Query DSL (optional)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/count_percolate.json",
    "content": "{\r\n  \"count_percolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_percolate/count\",\r\n      \"paths\": [\"/{index}/{type}/_percolate/count\", \"/{index}/{type}/{id}/_percolate/count\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The index of the document being count percolated.\"\r\n        },\r\n        \"type\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The type of the document being count percolated.\"\r\n        },\r\n        \"id\": {\r\n          \"type\": \"string\",\r\n          \"required\": false,\r\n          \"description\": \"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"routing\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"preference\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"percolate_index\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The index to count percolate the document into. Defaults to index.\"\r\n        },\r\n        \"percolate_type\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The type to count percolate document into. Defaults to type.\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The count percolator request definition using the percolate DSL\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/create.json",
    "content": "{\r\n  \"create\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-index_.html\",\r\n    \"methods\": [\"PUT\",\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_create\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_create\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of the parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Expiration time for the document\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/delete.json",
    "content": "{\r\n  \"delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-delete.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the delete operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/delete_by_query.json",
    "content": "{\r\n  \"delete_by_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-delete-by-query.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_delete_by_query\",\r\n      \"paths\": [\"/{index}/_delete_by_query\", \"/{index}/{type}/_delete_by_query\"],\r\n      \"comment\": \"most things below this are just copied from search.json\",\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"required\" : true,\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"conflicts\": {\r\n            \"note\": \"This is not copied from search\",\r\n            \"type\" : \"enum\",\r\n            \"options\": [\"abort\", \"proceed\"],\r\n            \"default\": \"abort\",\r\n            \"description\" : \"What to do when the delete-by-query hits version conflicts?\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"search_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timeout for each search request. Defaults to no timeout.\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the delete by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"scroll_size\": {\r\n          \"type\": \"number\",\r\n          \"defaut_value\": 100,\r\n          \"description\": \"Size on the scroll request powering the update_by_query\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"default\": true,\r\n           \"description\" : \"Should the request should block until the delete-by-query is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle for this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/delete_script.json",
    "content": "{\r\n  \"delete_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}\",\r\n      \"paths\": [ \"/_scripts/{lang}\", \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/delete_template.json",
    "content": "{\r\n  \"delete_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/exists.json",
    "content": "{\r\n  \"exists\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/exists_source.json",
    "content": "{\r\n  \"exists_source\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_source\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_source\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document; use `_all` to fetch the first document matching the ID across all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/explain.json",
    "content": "{\r\n  \"explain\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-explain.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_explain\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_explain\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer for the query string query\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The default field for query string query (default: _all)\"\r\n        },\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/field_caps.json",
    "content": "{\r\n  \"field_caps\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-field-caps.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_field_caps\",\r\n      \"paths\": [\r\n        \"/_field_caps\",\r\n        \"/{index}/_field_caps\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of field names\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"Field json objects containing an array of field names\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/field_stats.json",
    "content": "{\r\n  \"field_stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-field-stats.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_field_stats\",\r\n      \"paths\": [\r\n        \"/_field_stats\",\r\n        \"/{index}/_field_stats\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for to get field statistics for (min value, max value, and more)\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"indices\", \"cluster\"],\r\n          \"default\" : \"cluster\",\r\n          \"description\" : \"Defines if field stats should be returned on a per index level or on a cluster wide level\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"Field json objects containing the name and optionally a range to filter out indices result, that have results outside the defined bounds\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/get.json",
    "content": "{\r\n  \"get\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/get_script.json",
    "content": "{\r\n  \"get_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}\",\r\n      \"paths\": [ \"/_scripts/{lang}\", \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/get_source.json",
    "content": "{\r\n  \"get_source\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_source\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_source\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document; use `_all` to fetch the first document matching the ID across all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/get_template.json",
    "content": "{\r\n  \"get_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/index.json",
    "content": "{\r\n  \"index\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-index_.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}\",\r\n      \"paths\": [\"/{index}/{type}\", \"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"op_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"index\", \"create\"],\r\n          \"default\" : \"index\",\r\n          \"description\" : \"Explicit operation type\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of the parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Expiration time for the document\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/index.ts",
    "content": "const def__common = JSON.parse(\r\n    '{\"description\":\"Parameters that are accepted by all API endpoints.\",\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html\",\"params\":{\"pretty\":{\"type\":\"boolean\",\"description\":\"Pretty format the returned JSON response.\",\"default\":false},\"human\":{\"type\":\"boolean\",\"description\":\"Return human readable values for statistics.\",\"default\":true},\"error_trace\":{\"type\":\"boolean\",\"description\":\"Include the stack trace of returned errors.\",\"default\":false},\"source\":{\"type\":\"string\",\"description\":\"The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests.\"},\"filter_path\":{\"type\":\"list\",\"description\":\"A comma-separated list of filters used to reduce the respone.\"}}}',\r\n);\r\nconst def_bulk = JSON.parse(\r\n    '{\"bulk\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-bulk.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/_bulk\",\"paths\":[\"/_bulk\",\"/{index}/_bulk\",\"/{index}/{type}/_bulk\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"Default index for items which don\\'t provide one\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the bulk operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"},\"fields\":{\"type\":\"list\",\"description\":\"Default comma-separated list of fields to return in the response for updates, can be overridden on each sub-request\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or default list of fields to return, can be overridden on each sub-request\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"Default list of fields to exclude from the returned _source field, can be overridden on each sub-request\"},\"_source_include\":{\"type\":\"list\",\"description\":\"Default list of fields to extract and return from the _source field, can be overridden on each sub-request\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The operation definition and data (action-data pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_cat_aliases = JSON.parse(\r\n    '{\"cat.aliases\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-alias.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/aliases\",\"paths\":[\"/_cat/aliases\",\"/_cat/aliases/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_allocation = JSON.parse(\r\n    '{\"cat.allocation\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-allocation.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/allocation\",\"paths\":[\"/_cat/allocation\",\"/_cat/allocation/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_count = JSON.parse(\r\n    '{\"cat.count\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-count.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/count\",\"paths\":[\"/_cat/count\",\"/_cat/count/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_fielddata = JSON.parse(\r\n    '{\"cat.fielddata\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-fielddata.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/fielddata\",\"paths\":[\"/_cat/fielddata\",\"/_cat/fielddata/{fields}\"],\"parts\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return the fielddata size\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the output\"}}},\"body\":null}}',\r\n);\r\nconst def_cat_health = JSON.parse(\r\n    '{\"cat.health\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/health\",\"paths\":[\"/_cat/health\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"ts\":{\"type\":\"boolean\",\"description\":\"Set to false to disable timestamping\",\"default\":true},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_help = JSON.parse(\r\n    '{\"cat.help\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat\",\"paths\":[\"/_cat\"],\"parts\":{},\"params\":{\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"}}},\"body\":null}}',\r\n);\r\nconst def_cat_indices = JSON.parse(\r\n    '{\"cat.indices\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-indices.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/indices\",\"paths\":[\"/_cat/indices\",\"/_cat/indices/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"health\":{\"type\":\"enum\",\"options\":[\"green\",\"yellow\",\"red\"],\"default\":null,\"description\":\"A health status (\\\\\"green\\\\\", \\\\\"yellow\\\\\", or \\\\\"red\\\\\" to filter only indices matching the specified health status\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"pri\":{\"type\":\"boolean\",\"description\":\"Set to true to return stats only for primary shards\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_master = JSON.parse(\r\n    '{\"cat.master\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-master.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/master\",\"paths\":[\"/_cat/master\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodeattrs = JSON.parse(\r\n    '{\"cat.nodeattrs\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-nodeattrs.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodeattrs\",\"paths\":[\"/_cat/nodeattrs\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodes = JSON.parse(\r\n    '{\"cat.nodes\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-nodes.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodes\",\"paths\":[\"/_cat/nodes\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"full_id\":{\"type\":\"boolean\",\"description\":\"Return the full node ID instead of the shortened version (default: false)\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_pending_tasks = JSON.parse(\r\n    '{\"cat.pending_tasks\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-pending-tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/pending_tasks\",\"paths\":[\"/_cat/pending_tasks\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_plugins = JSON.parse(\r\n    '{\"cat.plugins\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-plugins.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/plugins\",\"paths\":[\"/_cat/plugins\"],\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_recovery = JSON.parse(\r\n    '{\"cat.recovery\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/recovery\",\"paths\":[\"/_cat/recovery\",\"/_cat/recovery/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_repositories = JSON.parse(\r\n    '{\"cat.repositories\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-repositories.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/repositories\",\"paths\":[\"/_cat/repositories\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_segments = JSON.parse(\r\n    '{\"cat.segments\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/segments\",\"paths\":[\"/_cat/segments\",\"/_cat/segments/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_shards = JSON.parse(\r\n    '{\"cat.shards\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-shards.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/shards\",\"paths\":[\"/_cat/shards\",\"/_cat/shards/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_snapshots = JSON.parse(\r\n    '{\"cat.snapshots\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/snapshots\",\"paths\":[\"/_cat/snapshots\",\"/_cat/snapshots/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"required\":true,\"description\":\"Name of repository from which to fetch the snapshot information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Set to true to ignore unavailable snapshots\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_tasks = JSON.parse(\r\n    '{\"cat.tasks\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/tasks\",\"paths\":[\"/_cat/tasks\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be returned. Leave empty to return all.\"},\"detailed\":{\"type\":\"boolean\",\"description\":\"Return detailed task information (default: false)\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent node.\"},\"parent_task\":{\"type\":\"number\",\"description\":\"Return tasks with specified parent task id. Set to -1 to return all.\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_templates = JSON.parse(\r\n    '{\"cat.templates\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-templates.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/templates\",\"paths\":[\"/_cat/templates\",\"/_cat/templates/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"description\":\"A pattern that returned template names must match\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_thread_pool = JSON.parse(\r\n    '{\"cat.thread_pool\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cat-thread-pool.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/thread_pool\",\"paths\":[\"/_cat/thread_pool\",\"/_cat/thread_pool/{thread_pool_patterns}\"],\"parts\":{\"thread_pool_patterns\":{\"type\":\"list\",\"description\":\"A comma-separated list of regular-expressions to filter the thread pools in the output\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"size\":{\"type\":\"enum\",\"description\":\"The multiplier in which to display values\",\"options\":[\"\",\"k\",\"m\",\"g\",\"t\",\"p\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_clear_scroll = JSON.parse(\r\n    '{\"clear_scroll\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-request-scroll.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_search/scroll/{scroll_id}\",\"paths\":[\"/_search/scroll/{scroll_id}\",\"/_search/scroll\"],\"parts\":{\"scroll_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of scroll IDs to clear\"}},\"params\":{}},\"body\":{\"description\":\"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"}}}',\r\n);\r\nconst def_cluster_allocation_explain = JSON.parse(\r\n    '{\"cluster.allocation_explain\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-allocation-explain.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_cluster/allocation/explain\",\"paths\":[\"/_cluster/allocation/explain\"],\"parts\":{},\"params\":{\"include_yes_decisions\":{\"type\":\"boolean\",\"description\":\"Return \\'YES\\' decisions in explanation (default: false)\"},\"include_disk_info\":{\"type\":\"boolean\",\"description\":\"Return information about disk usage and shard sizes (default: false)\"}}},\"body\":{\"description\":\"The index, shard, and primary flag to explain. Empty means \\'explain the first unassigned shard\\'\"}}}',\r\n);\r\nconst def_cluster_get_settings = JSON.parse(\r\n    '{\"cluster.get_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-update-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default clusters setting.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cluster_health = JSON.parse(\r\n    '{\"cluster.health\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/health\",\"paths\":[\"/_cluster/health\",\"/_cluster/health/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"Limit the information returned to a specific index\"}},\"params\":{\"level\":{\"type\":\"enum\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"cluster\",\"description\":\"Specify the level of detail for returned information\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Wait until the specified number of shards is active\"},\"wait_for_nodes\":{\"type\":\"string\",\"description\":\"Wait until the specified number of nodes is available\"},\"wait_for_events\":{\"type\":\"enum\",\"options\":[\"immediate\",\"urgent\",\"high\",\"normal\",\"low\",\"languid\"],\"description\":\"Wait until all currently queued events with the given priority are processed\"},\"wait_for_no_relocating_shards\":{\"type\":\"boolean\",\"description\":\"Whether to wait until there are no relocating shards in the cluster\"},\"wait_for_status\":{\"type\":\"enum\",\"options\":[\"green\",\"yellow\",\"red\"],\"default\":null,\"description\":\"Wait until cluster is in a specific state\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_pending_tasks = JSON.parse(\r\n    '{\"cluster.pending_tasks\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-pending.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/pending_tasks\",\"paths\":[\"/_cluster/pending_tasks\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_put_settings = JSON.parse(\r\n    '{\"cluster.put_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"}}}',\r\n);\r\nconst def_cluster_reroute = JSON.parse(\r\n    '{\"cluster.reroute\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-reroute.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_cluster/reroute\",\"paths\":[\"/_cluster/reroute\"],\"parts\":{},\"params\":{\"dry_run\":{\"type\":\"boolean\",\"description\":\"Simulate the operation only and return the resulting state\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Return an explanation of why the commands can or cannot be executed\"},\"retry_failed\":{\"type\":\"boolean\",\"description\":\"Retries allocation of shards that are blocked due to too many subsequent allocation failures\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics. Defaults to all but metadata\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"}}}',\r\n);\r\nconst def_cluster_state = JSON.parse(\r\n    '{\"cluster.state\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-state.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/state\",\"paths\":[\"/_cluster/state\",\"/_cluster/state/{metric}\",\"/_cluster/state/{metric}/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"routing_nodes\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_stats = JSON.parse(\r\n    '{\"cluster.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/stats\",\"paths\":[\"/_cluster/stats\",\"/_cluster/stats/nodes/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_count = JSON.parse(\r\n    '{\"count\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-count.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_count\",\"paths\":[\"/_count\",\"/{index}/_count\",\"/{index}/{type}/_count\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of indices to restrict the results\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of types to restrict the results\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"min_score\":{\"type\":\"number\",\"description\":\"Include only documents with a specific `_score` value in the result\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum count for each shard, upon reaching which the query execution will terminate early\"}}},\"body\":{\"description\":\"A query to restrict the results specified with the Query DSL (optional)\"}}}',\r\n);\r\nconst def_count_percolate = JSON.parse(\r\n    '{\"count_percolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_percolate/count\",\"paths\":[\"/{index}/{type}/_percolate/count\",\"/{index}/{type}/{id}/_percolate/count\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The index of the document being count percolated.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document being count percolated.\"},\"id\":{\"type\":\"string\",\"required\":false,\"description\":\"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"}},\"params\":{\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"percolate_index\":{\"type\":\"string\",\"description\":\"The index to count percolate the document into. Defaults to index.\"},\"percolate_type\":{\"type\":\"string\",\"description\":\"The type to count percolate document into. Defaults to type.\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The count percolator request definition using the percolate DSL\",\"required\":false}}}',\r\n);\r\nconst def_create = JSON.parse(\r\n    '{\"create\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-index_.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_create\",\"paths\":[\"/{index}/{type}/{id}/_create\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_delete = JSON.parse(\r\n    '{\"delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-delete.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the delete operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_delete_by_query = JSON.parse(\r\n    '{\"delete_by_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-delete-by-query.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_delete_by_query\",\"paths\":[\"/{index}/_delete_by_query\",\"/{index}/{type}/_delete_by_query\"],\"comment\":\"most things below this are just copied from search.json\",\"parts\":{\"index\":{\"required\":true,\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"conflicts\":{\"note\":\"This is not copied from search\",\"type\":\"enum\",\"options\":[\"abort\",\"proceed\"],\"default\":\"abort\",\"description\":\"What to do when the delete-by-query hits version conflicts?\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"search_timeout\":{\"type\":\"time\",\"description\":\"Explicit timeout for each search request. Defaults to no timeout.\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the delete by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"scroll_size\":{\"type\":\"number\",\"defaut_value\":100,\"description\":\"Size on the scroll request powering the update_by_query\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the delete-by-query is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle for this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\",\"required\":true}}}',\r\n);\r\nconst def_delete_script = JSON.parse(\r\n    '{\"delete_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_scripts/{lang}\",\"paths\":[\"/_scripts/{lang}\",\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_delete_template = JSON.parse(\r\n    '{\"delete_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_exists = JSON.parse(\r\n    '{\"exists\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_exists_source = JSON.parse(\r\n    '{\"exists_source\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_source\",\"paths\":[\"/{index}/{type}/{id}/_source\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document; use `_all` to fetch the first document matching the ID across all types\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_explain = JSON.parse(\r\n    '{\"explain\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-explain.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_explain\",\"paths\":[\"/{index}/{type}/{id}/_explain\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer for the query string query\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The default field for query string query (default: _all)\"},\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"The query definition using the Query DSL\"}}}',\r\n);\r\nconst def_field_caps = JSON.parse(\r\n    '{\"field_caps\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-field-caps.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_field_caps\",\"paths\":[\"/_field_caps\",\"/{index}/_field_caps\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of field names\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"Field json objects containing an array of field names\",\"required\":false}}}',\r\n);\r\nconst def_field_stats = JSON.parse(\r\n    '{\"field_stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-field-stats.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_field_stats\",\"paths\":[\"/_field_stats\",\"/{index}/_field_stats\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for to get field statistics for (min value, max value, and more)\"},\"level\":{\"type\":\"enum\",\"options\":[\"indices\",\"cluster\"],\"default\":\"cluster\",\"description\":\"Defines if field stats should be returned on a per index level or on a cluster wide level\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"Field json objects containing the name and optionally a range to filter out indices result, that have results outside the defined bounds\",\"required\":false}}}',\r\n);\r\nconst def_get = JSON.parse(\r\n    '{\"get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_script = JSON.parse(\r\n    '{\"get_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_scripts/{lang}\",\"paths\":[\"/_scripts/{lang}\",\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_get_source = JSON.parse(\r\n    '{\"get_source\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_source\",\"paths\":[\"/{index}/{type}/{id}/_source\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document; use `_all` to fetch the first document matching the ID across all types\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_template = JSON.parse(\r\n    '{\"get_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_index = JSON.parse(\r\n    '{\"index\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-index_.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/{index}/{type}\",\"paths\":[\"/{index}/{type}\",\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"op_type\":{\"type\":\"enum\",\"options\":[\"index\",\"create\"],\"default\":\"index\",\"description\":\"Explicit operation type\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_indices_analyze = JSON.parse(\r\n    '{\"indices.analyze\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-analyze.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_analyze\",\"paths\":[\"/_analyze\",\"/{index}/_analyze\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The name of the analyzer to use\"},\"char_filter\":{\"type\":\"list\",\"description\":\"A comma-separated list of character filters to use for the analysis\"},\"field\":{\"type\":\"string\",\"description\":\"Use the analyzer configured for this field (instead of passing the analyzer name)\"},\"filter\":{\"type\":\"list\",\"description\":\"A comma-separated list of filters to use for the analysis\"},\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"},\"prefer_local\":{\"type\":\"boolean\",\"description\":\"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"},\"text\":{\"type\":\"list\",\"description\":\"The text on which the analysis should be performed (when request body is not used)\"},\"tokenizer\":{\"type\":\"string\",\"description\":\"The name of the tokenizer to use for the analysis\"},\"explain\":{\"type\":\"boolean\",\"description\":\"With `true`, outputs more advanced details. (default: false)\"},\"attributes\":{\"type\":\"list\",\"description\":\"A comma-separated list of token attributes to output, this parameter works only with `explain=true`\"},\"format\":{\"type\":\"enum\",\"options\":[\"detailed\",\"text\"],\"default\":\"detailed\",\"description\":\"Format of the output\"}}},\"body\":{\"description\":\"The text on which the analysis should be performed\"}}}',\r\n);\r\nconst def_indices_clear_cache = JSON.parse(\r\n    '{\"indices.clear_cache\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-clearcache.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_cache/clear\",\"paths\":[\"/_cache/clear\",\"/{index}/_cache/clear\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"}},\"params\":{\"field_data\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fielddata\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"},\"query\":{\"type\":\"boolean\",\"description\":\"Clear query caches\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"},\"recycler\":{\"type\":\"boolean\",\"description\":\"Clear the recycler cache\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Clear request cache\"},\"request\":{\"type\":\"boolean\",\"description\":\"Clear request cache\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_close = JSON.parse(\r\n    '{\"indices.close\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_close\",\"paths\":[\"/{index}/_close\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to close\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_create = JSON.parse(\r\n    '{\"indices.create\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-create-index.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for before the operation returns.\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The configuration for the index (`settings` and `mappings`)\"}}}',\r\n);\r\nconst def_indices_delete = JSON.parse(\r\n    '{\"indices.delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-delete-index.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_alias = JSON.parse(\r\n    '{\"indices.delete_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"},\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_template = JSON.parse(\r\n    '{\"indices.delete_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists = JSON.parse(\r\n    '{\"indices.exists\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_alias = JSON.parse(\r\n    '{\"indices.exists_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_alias/{name}\",\"paths\":[\"/_alias/{name}\",\"/{index}/_alias/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"all\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_template = JSON.parse(\r\n    '{\"indices.exists_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"The comma separated names of the index templates\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_type = JSON.parse(\r\n    '{\"indices.exists_type\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-types-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/_mapping/{type}\",\"paths\":[\"/{index}/_mapping/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names; use `_all` to check the types across all indices\"},\"type\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of document types to check\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush = JSON.parse(\r\n    '{\"indices.flush\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush\",\"paths\":[\"/_flush\",\"/{index}/_flush\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"force\":{\"type\":\"boolean\",\"description\":\"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"},\"wait_if_ongoing\":{\"type\":\"boolean\",\"description\":\"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is true. If set to false the flush will be skipped iff if another flush operation is already running.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush_synced = JSON.parse(\r\n    '{\"indices.flush_synced\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-synced-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush/synced\",\"paths\":[\"/_flush/synced\",\"/{index}/_flush/synced\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_forcemerge = JSON.parse(\r\n    '{\"indices.forcemerge\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-forcemerge.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_forcemerge\",\"paths\":[\"/_forcemerge\",\"/{index}/_forcemerge\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"flush\":{\"type\":\"boolean\",\"description\":\"Specify whether the index should be flushed after performing the operation (default: true)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"max_num_segments\":{\"type\":\"number\",\"description\":\"The number of segments the index should be merged into (default: dynamic)\"},\"only_expunge_deletes\":{\"type\":\"boolean\",\"description\":\"Specify whether the operation should only expunge deleted documents\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"wait_for_merge\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the merge process is finished (default: true)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get = JSON.parse(\r\n    '{\"indices.get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-index.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\",\"/{index}/{feature}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names\"},\"feature\":{\"type\":\"list\",\"description\":\"A comma-separated list of features\",\"options\":[\"_settings\",\"_mappings\",\"_aliases\"]}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_alias = JSON.parse(\r\n    '{\"indices.get_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_alias/\",\"paths\":[\"/_alias\",\"/_alias/{name}\",\"/{index}/_alias/{name}\",\"/{index}/_alias\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"all\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_field_mapping = JSON.parse(\r\n    '{\"indices.get_field_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-field-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping/field/{fields}\",\"paths\":[\"/_mapping/field/{fields}\",\"/{index}/_mapping/field/{fields}\",\"/_mapping/{type}/field/{fields}\",\"/{index}/_mapping/{type}/field/{fields}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields\",\"required\":true}},\"params\":{\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether the default mapping values should be returned as well\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_mapping = JSON.parse(\r\n    '{\"indices.get_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping\",\"paths\":[\"/_mapping\",\"/{index}/_mapping\",\"/_mapping/{type}\",\"/{index}/_mapping/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_settings = JSON.parse(\r\n    '{\"indices.get_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\",\"/{index}/_settings/{name}\",\"/_settings/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"name\":{\"type\":\"list\",\"description\":\"The name of the settings that should be included\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":[\"open\",\"closed\"],\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_template = JSON.parse(\r\n    '{\"indices.get_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template\",\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"required\":false,\"description\":\"The comma separated names of the index templates\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_upgrade = JSON.parse(\r\n    '{\"indices.get_upgrade\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-upgrade.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_open = JSON.parse(\r\n    '{\"indices.open\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_open\",\"paths\":[\"/{index}/_open\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to open\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"closed\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_put_alias = JSON.parse(\r\n    '{\"indices.put_alias\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"},\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the alias to be created or updated\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The settings for the alias, such as `routing` or `filter`\",\"required\":false}}}',\r\n);\r\nconst def_indices_put_mapping = JSON.parse(\r\n    '{\"indices.put_mapping\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-put-mapping.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_mapping\",\"paths\":[\"/{index}/{type}/_mapping\",\"/{index}/_mapping/{type}\",\"/_mapping/{type}\",\"/{index}/{type}/_mappings\",\"/{index}/_mappings/{type}\",\"/_mappings/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the document type\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The mapping definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_settings = JSON.parse(\r\n    '{\"indices.put_settings\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"preserve_existing\":{\"type\":\"boolean\",\"description\":\"Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false`\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The index settings to be updated\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_template = JSON.parse(\r\n    '{\"indices.put_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"order\":{\"type\":\"number\",\"description\":\"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"},\"create\":{\"type\":\"boolean\",\"description\":\"Whether the index template should only be added if new or can also replace an existing one\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The template definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_recovery = JSON.parse(\r\n    '{\"indices.recovery\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_recovery\",\"paths\":[\"/_recovery\",\"/{index}/_recovery\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"detailed\":{\"type\":\"boolean\",\"description\":\"Whether to display detailed information about shard recovery\",\"default\":false},\"active_only\":{\"type\":\"boolean\",\"description\":\"Display only those recoveries that are currently on-going\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_refresh = JSON.parse(\r\n    '{\"indices.refresh\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-refresh.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_refresh\",\"paths\":[\"/_refresh\",\"/{index}/_refresh\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_rollover = JSON.parse(\r\n    '{\"indices.rollover\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-rollover-index.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{alias}/_rollover\",\"paths\":[\"/{alias}/_rollover\",\"/{alias}/_rollover/{new_index}\"],\"parts\":{\"alias\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the alias to rollover\"},\"new_index\":{\"type\":\"string\",\"required\":false,\"description\":\"The name of the rollover index\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"dry_run\":{\"type\":\"boolean\",\"description\":\"If set to true the rollover action will only be validated but not actually performed even if a condition matches. The default is false\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for on the newly created rollover index before the operation returns.\"}}},\"body\":{\"description\":\"The conditions that needs to be met for executing rollover\"}}}',\r\n);\r\nconst def_indices_segments = JSON.parse(\r\n    '{\"indices.segments\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_segments\",\"paths\":[\"/_segments\",\"/{index}/_segments\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"verbose\":{\"type\":\"boolean\",\"description\":\"Includes detailed memory usage by Lucene.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_shard_stores = JSON.parse(\r\n    '{\"indices.shard_stores\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-shards-stores.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_shard_stores\",\"paths\":[\"/_shard_stores\",\"/{index}/_shard_stores\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"status\":{\"type\":\"list\",\"options\":[\"green\",\"yellow\",\"red\",\"all\"],\"description\":\"A comma-separated list of statuses used to filter on shards to get store information for\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_shrink = JSON.parse(\r\n    '{\"indices.shrink\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-shrink-index.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_shrink/{target}\",\"paths\":[\"/{index}/_shrink/{target}\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the source index to shrink\"},\"target\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the target index to shrink into\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for on the shrunken index before the operation returns.\"}}},\"body\":{\"description\":\"The configuration for the target index (`settings` and `aliases`)\"}}}',\r\n);\r\nconst def_indices_stats = JSON.parse(\r\n    '{\"indices.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_stats\",\"paths\":[\"/_stats\",\"/_stats/{metric}\",\"/{index}/_stats\",\"/{index}/_stats/{metric}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"percolate\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned the specific metrics.\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"list\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"level\":{\"type\":\"enum\",\"description\":\"Return stats aggregated at cluster, index or shard level\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"indices\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"},\"include_segment_file_sizes\":{\"type\":\"boolean\",\"description\":\"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_update_aliases = JSON.parse(\r\n    '{\"indices.update_aliases\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_aliases\",\"paths\":[\"/_aliases\"],\"parts\":{},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Request timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The definition of `actions` to perform\",\"required\":true}}}',\r\n);\r\nconst def_indices_upgrade = JSON.parse(\r\n    '{\"indices.upgrade\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-upgrade.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the all segments are upgraded (default: false)\"},\"only_ancient_segments\":{\"type\":\"boolean\",\"description\":\"If true, only ancient (an older Lucene major release) segments will be upgraded\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_validate_query = JSON.parse(\r\n    '{\"indices.validate_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-validate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_validate/query\",\"paths\":[\"/_validate/query\",\"/{index}/_validate/query\",\"/{index}/{type}/_validate/query\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"}},\"params\":{\"explain\":{\"type\":\"boolean\",\"description\":\"Return detailed information about the error\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"rewrite\":{\"type\":\"boolean\",\"description\":\"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"},\"all_shards\":{\"type\":\"boolean\",\"description\":\"Execute validation on all shards instead of one random shard per index\"}}},\"body\":{\"description\":\"The query definition specified with the Query DSL\"}}}',\r\n);\r\nconst def_info = JSON.parse(\r\n    '{\"info\":{\"documentation\":\"https://www.elastic.co/guide/\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_ingest_delete_pipeline = JSON.parse(\r\n    '{\"ingest.delete_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":true}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_ingest_get_pipeline = JSON.parse(\r\n    '{\"ingest.get_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline\",\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Comma separated list of pipeline ids. Wildcards supported\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_ingest_processor_grok = JSON.parse(\r\n    '{\"ingest.processor.grok\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_ingest/processor/grok\",\"paths\":[\"/_ingest/processor/grok\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_ingest_put_pipeline = JSON.parse(\r\n    '{\"ingest.put_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":true}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The ingest definition\",\"required\":true}}}',\r\n);\r\nconst def_ingest_simulate = JSON.parse(\r\n    '{\"ingest.simulate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_ingest/pipeline/_simulate\",\"paths\":[\"/_ingest/pipeline/_simulate\",\"/_ingest/pipeline/{id}/_simulate\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":false}},\"params\":{\"verbose\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display data output for each processor in executed pipeline\",\"default\":false}}},\"body\":{\"description\":\"The simulate definition\",\"required\":true}}}',\r\n);\r\nconst def_mget = JSON.parse(\r\n    '{\"mget\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-multi-get.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mget\",\"paths\":[\"/_mget\",\"/{index}/_mget\",\"/{index}/{type}/_mget\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\"required\":true}}}',\r\n);\r\nconst def_mpercolate = JSON.parse(\r\n    '{\"mpercolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mpercolate\",\"paths\":[\"/_mpercolate\",\"/{index}/_mpercolate\",\"/{index}/{type}/_mpercolate\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index of the document being count percolated to use as default\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document being percolated to use as default.\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"The percolate request definitions (header & body pair), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_msearch = JSON.parse(\r\n    '{\"msearch\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-multi-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_msearch\",\"paths\":[\"/_msearch\",\"/{index}/_msearch\",\"/{index}/{type}/_msearch\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to use as default\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to use as default\"}},\"params\":{\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"max_concurrent_searches\":{\"type\":\"number\",\"description\":\"Controls the maximum number of concurrent searches the multi search api will execute\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"pre_filter_shard_size\":{\"type\":\"number\",\"description\":\"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the\\xA0number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it\\'s rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\"default\":128}}},\"body\":{\"description\":\"The request definitions (metadata-search request definition pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_msearch_template = JSON.parse(\r\n    '{\"msearch_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_msearch/template\",\"paths\":[\"/_msearch/template\",\"/{index}/_msearch/template\",\"/{index}/{type}/_msearch/template\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to use as default\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to use as default\"}},\"params\":{\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"max_concurrent_searches\":{\"type\":\"number\",\"description\":\"Controls the maximum number of concurrent searches the multi search api will execute\"}}},\"body\":{\"description\":\"The request definitions (metadata-search request definition pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_mtermvectors = JSON.parse(\r\n    '{\"mtermvectors\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-multi-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mtermvectors\",\"paths\":[\"/_mtermvectors\",\"/{index}/_mtermvectors\",\"/{index}/{type}/_mtermvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\"}},\"params\":{\"ids\":{\"type\":\"list\",\"description\":\"A comma-separated list of documents ids. You must define ids as parameter or set \\\\\"ids\\\\\" or \\\\\"docs\\\\\" in the request body\",\"required\":false},\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_nodes_hot_threads = JSON.parse(\r\n    '{\"nodes.hot_threads\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-hot-threads.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/hot_threads\",\"paths\":[\"/_cluster/nodes/hotthreads\",\"/_cluster/nodes/hot_threads\",\"/_cluster/nodes/{node_id}/hotthreads\",\"/_cluster/nodes/{node_id}/hot_threads\",\"/_nodes/hotthreads\",\"/_nodes/hot_threads\",\"/_nodes/{node_id}/hotthreads\",\"/_nodes/{node_id}/hot_threads\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"interval\":{\"type\":\"time\",\"description\":\"The interval for the second sampling of threads\"},\"snapshots\":{\"type\":\"number\",\"description\":\"Number of samples of thread stacktrace (default: 10)\"},\"threads\":{\"type\":\"number\",\"description\":\"Specify the number of threads to provide information for (default: 3)\"},\"ignore_idle_threads\":{\"type\":\"boolean\",\"description\":\"Don\\'t show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"},\"type\":{\"type\":\"enum\",\"options\":[\"cpu\",\"wait\",\"block\"],\"description\":\"The type to sample (default: cpu)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_info = JSON.parse(\r\n    '{\"nodes.info\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-info.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes\",\"paths\":[\"/_nodes\",\"/_nodes/{node_id}\",\"/_nodes/{metric}\",\"/_nodes/{node_id}/{metric}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"metric\":{\"type\":\"list\",\"options\":[\"settings\",\"os\",\"process\",\"jvm\",\"thread_pool\",\"transport\",\"http\",\"plugins\",\"ingest\"],\"description\":\"A comma-separated list of metrics you wish returned. Leave empty to return all.\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_stats = JSON.parse(\r\n    '{\"nodes.stats\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/stats\",\"paths\":[\"/_nodes/stats\",\"/_nodes/{node_id}/stats\",\"/_nodes/stats/{metric}\",\"/_nodes/{node_id}/stats/{metric}\",\"/_nodes/stats/{metric}/{index_metric}\",\"/_nodes/{node_id}/stats/{metric}/{index_metric}\"],\"parts\":{\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"breaker\",\"fs\",\"http\",\"indices\",\"jvm\",\"os\",\"process\",\"thread_pool\",\"transport\",\"discovery\"],\"description\":\"Limit the information returned to the specified metrics\"},\"index_metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"percolate\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned for `indices` metric to the specific index metrics. Isn\\'t used if `indices` (or `all`) metric isn\\'t specified.\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"boolean\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"level\":{\"type\":\"enum\",\"description\":\"Return indices stats aggregated at index, node or shard level\",\"options\":[\"indices\",\"node\",\"shards\"],\"default\":\"node\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"include_segment_file_sizes\":{\"type\":\"boolean\",\"description\":\"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_percolate = JSON.parse(\r\n    '{\"percolate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_percolate\",\"paths\":[\"/{index}/{type}/_percolate\",\"/{index}/{type}/{id}/_percolate\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The index of the document being percolated.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document being percolated.\"},\"id\":{\"type\":\"string\",\"required\":false,\"description\":\"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"}},\"params\":{\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"percolate_index\":{\"type\":\"string\",\"description\":\"The index to percolate the document into. Defaults to index.\"},\"percolate_type\":{\"type\":\"string\",\"description\":\"The type to percolate document into. Defaults to type.\"},\"percolate_routing\":{\"type\":\"string\",\"description\":\"The routing value to use when percolating the existing document.\"},\"percolate_preference\":{\"type\":\"string\",\"description\":\"Which shard to prefer when executing the percolate request.\"},\"percolate_format\":{\"type\":\"enum\",\"options\":[\"ids\"],\"description\":\"Return an array of matching query IDs instead of objects\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The percolator request definition using the percolate DSL\",\"required\":false}}}',\r\n);\r\nconst def_ping = JSON.parse(\r\n    '{\"ping\":{\"documentation\":\"https://www.elastic.co/guide/\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_put_script = JSON.parse(\r\n    '{\"put_script\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_scripts/{lang}\",\"paths\":[\"/_scripts/{lang}\",\"/_scripts/{lang}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"lang\":{\"type\":\"string\",\"description\":\"Script language\",\"required\":true}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_put_template = JSON.parse(\r\n    '{\"put_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_search/template/{id}\",\"paths\":[\"/_search/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Template ID\",\"required\":true}},\"params\":{}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_reindex = JSON.parse(\r\n    '{\"reindex\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex\",\"paths\":[\"/_reindex\"],\"parts\":{},\"params\":{\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the reindex operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the reindex is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL and the prototype for the index request.\",\"required\":true}}}',\r\n);\r\nconst def_reindex_rethrottle = JSON.parse(\r\n    '{\"reindex_rethrottle\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex/{task_id}/_rethrottle\",\"paths\":[\"/_reindex/{task_id}/_rethrottle\",\"/_update_by_query/{task_id}/_rethrottle\",\"/_delete_by_query/{task_id}/_rethrottle\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"The task id to rethrottle\"}},\"params\":{\"requests_per_second\":{\"type\":\"number\",\"required\":true,\"description\":\"The throttle to set on this request in floating sub-requests per second. -1 means set no throttle.\"}}},\"body\":null}}',\r\n);\r\nconst def_remote_info = JSON.parse(\r\n    '{\"remote.info\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-remote-info.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_remote/info\",\"paths\":[\"/_remote/info\"],\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_render_search_template = JSON.parse(\r\n    '{\"render_search_template\":{\"documentation\":\"http://www.elasticsearch.org/guide/en/elasticsearch/reference/5.x/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_render/template\",\"paths\":[\"/_render/template\",\"/_render/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"The id of the stored search template\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_scroll = JSON.parse(\r\n    '{\"scroll\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-request-scroll.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/scroll\",\"paths\":[\"/_search/scroll\",\"/_search/scroll/{scroll_id}\"],\"parts\":{\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID\"}},\"params\":{\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID for scrolled search\"}}},\"body\":{\"description\":\"The scroll ID if not passed by URL or query parameter.\"}}}',\r\n);\r\nconst def_search = JSON.parse(\r\n    '{\"search\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search\",\"paths\":[\"/_search\",\"/{index}/_search\",\"/{index}/{type}/_search\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return as part of a hit\"},\"docvalue_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"suggest_field\":{\"type\":\"string\",\"description\":\"Specify which field to use for suggestions\"},\"suggest_mode\":{\"type\":\"enum\",\"options\":[\"missing\",\"popular\",\"always\"],\"default\":\"missing\",\"description\":\"Specify suggest mode\"},\"suggest_size\":{\"type\":\"number\",\"description\":\"How many suggestions to return in response\"},\"suggest_text\":{\"type\":\"string\",\"description\":\"The source text for which the suggestions should be returned\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"track_scores\":{\"type\":\"boolean\",\"description\":\"Whether to calculate and return scores even if they are not used for sorting\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"batched_reduce_size\":{\"type\":\"number\",\"description\":\"The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.\",\"default\":512},\"max_concurrent_shard_requests\":{\"type\":\"number\",\"description\":\"The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests\",\"default\":\"The default grows with the number of nodes in the cluster but is at most 256.\"},\"pre_filter_shard_size\":{\"type\":\"number\",\"description\":\"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the\\xA0number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it\\'s rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\"default\":128}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\nconst def_search_shards = JSON.parse(\r\n    '{\"search_shards\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-shards.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_search_shards\",\"paths\":[\"/_search_shards\",\"/{index}/_search_shards\",\"/{index}/{type}/_search_shards\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_search_template = JSON.parse(\r\n    '{\"search_template\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/template\",\"paths\":[\"/_search/template\",\"/{index}/_search/template\",\"/{index}/{type}/_search/template\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"profile\":{\"type\":\"boolean\",\"description\":\"Specify whether to profile the query execution\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_snapshot_create = JSON.parse(\r\n    '{\"snapshot.create\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"The snapshot definition\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_create_repository = JSON.parse(\r\n    '{\"snapshot.create_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"verify\":{\"type\":\"boolean\",\"description\":\"Whether to verify the repository after creation\"}}},\"body\":{\"description\":\"The repository definition\",\"required\":true}}}',\r\n);\r\nconst def_snapshot_delete = JSON.parse(\r\n    '{\"snapshot.delete\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_delete_repository = JSON.parse(\r\n    '{\"snapshot.delete_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get = JSON.parse(\r\n    '{\"snapshot.get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"},\"verbose\":{\"type\":\"boolean\",\"description\":\"Whether to show verbose snapshot info or only show the basic info found in the repository index blob\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get_repository = JSON.parse(\r\n    '{\"snapshot.get_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot\",\"paths\":[\"/_snapshot\",\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_restore = JSON.parse(\r\n    '{\"snapshot.restore\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}/_restore\",\"paths\":[\"/_snapshot/{repository}/{snapshot}/_restore\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"Details of what to restore\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_status = JSON.parse(\r\n    '{\"snapshot.status\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/_status\",\"paths\":[\"/_snapshot/_status\",\"/_snapshot/{repository}/_status\",\"/_snapshot/{repository}/{snapshot}/_status\"],\"parts\":{\"repository\":{\"type\":\"string\",\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_verify_repository = JSON.parse(\r\n    '{\"snapshot.verify_repository\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/_verify\",\"paths\":[\"/_snapshot/{repository}/_verify\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_suggest = JSON.parse(\r\n    '{\"suggest\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-suggesters.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_suggest\",\"paths\":[\"/_suggest\",\"/{index}/_suggest\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"}}},\"body\":{\"description\":\"The request definition\",\"required\":true}}}',\r\n);\r\nconst def_tasks_cancel = JSON.parse(\r\n    '{\"tasks.cancel\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks/_cancel\",\"/_tasks/{task_id}/_cancel\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Cancel the task with specified task id (node_id:task_number)\"}},\"params\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent node.\"},\"parent_task\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_get = JSON.parse(\r\n    '{\"tasks.get\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_tasks/{task_id}\",\"paths\":[\"/_tasks/{task_id}\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Return the task with specified id (node_id:task_number)\"}},\"params\":{\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Wait for the matching tasks to complete (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_list = JSON.parse(\r\n    '{\"tasks.list\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks\"],\"parts\":{},\"params\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be returned. Leave empty to return all.\"},\"detailed\":{\"type\":\"boolean\",\"description\":\"Return detailed task information (default: false)\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent node.\"},\"parent_task\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Wait for the matching tasks to complete (default: false)\"},\"group_by\":{\"type\":\"enum\",\"description\":\"Group tasks by nodes or parent/child relationships\",\"options\":[\"nodes\",\"parents\"],\"default\":\"nodes\"}}},\"body\":null}}',\r\n);\r\nconst def_termvectors = JSON.parse(\r\n    '{\"termvectors\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_termvectors\",\"paths\":[\"/{index}/{type}/_termvectors\",\"/{index}/{type}/{id}/_termvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\",\"required\":true},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\",\"required\":true},\"id\":{\"type\":\"string\",\"description\":\"The id of the document, when not specified a doc param should be supplied.\"}},\"params\":{\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned.\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\"default\":true,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return.\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned.\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned.\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned.\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random).\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value.\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents.\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if request is real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define parameters and or supply a document to get termvectors for. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_update = JSON.parse(\r\n    '{\"update\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-update.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_update\",\"paths\":[\"/{index}/{type}/{id}/_update\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"lang\":{\"type\":\"string\",\"description\":\"The script language (default: painless)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document. Is is only used for routing and when for the upsert request\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"retry_on_conflict\":{\"type\":\"number\",\"description\":\"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The request definition using either `script` or partial `doc`\"}}}',\r\n);\r\nconst def_update_by_query = JSON.parse(\r\n    '{\"update_by_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-update-by-query.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_update_by_query\",\"paths\":[\"/{index}/_update_by_query\",\"/{index}/{type}/_update_by_query\"],\"comment\":\"most things below this are just copied from search.json\",\"parts\":{\"index\":{\"required\":true,\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"conflicts\":{\"note\":\"This is not copied from search\",\"type\":\"enum\",\"options\":[\"abort\",\"proceed\"],\"default\":\"abort\",\"description\":\"What to do when the update by query hits version conflicts?\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"pipeline\":{\"type\":\"string\",\"description\":\"Ingest pipeline to set on index requests made by this action. (default: none)\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"search_timeout\":{\"type\":\"time\",\"description\":\"Explicit timeout for each search request. Defaults to no timeout.\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"version_type\":{\"type\":\"boolean\",\"description\":\"Should the document increment the version number (internal) on hit or not (reindex)\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the update by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"scroll_size\":{\"type\":\"number\",\"defaut_value\":100,\"description\":\"Size on the scroll request powering the update_by_query\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the update by query operation is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\n\r\nexport default {\r\n    _common: def__common,\r\n    bulk: def_bulk['bulk'],\r\n    'cat.aliases': def_cat_aliases['cat.aliases'],\r\n    'cat.allocation': def_cat_allocation['cat.allocation'],\r\n    'cat.count': def_cat_count['cat.count'],\r\n    'cat.fielddata': def_cat_fielddata['cat.fielddata'],\r\n    'cat.health': def_cat_health['cat.health'],\r\n    'cat.help': def_cat_help['cat.help'],\r\n    'cat.indices': def_cat_indices['cat.indices'],\r\n    'cat.master': def_cat_master['cat.master'],\r\n    'cat.nodeattrs': def_cat_nodeattrs['cat.nodeattrs'],\r\n    'cat.nodes': def_cat_nodes['cat.nodes'],\r\n    'cat.pending_tasks': def_cat_pending_tasks['cat.pending_tasks'],\r\n    'cat.plugins': def_cat_plugins['cat.plugins'],\r\n    'cat.recovery': def_cat_recovery['cat.recovery'],\r\n    'cat.repositories': def_cat_repositories['cat.repositories'],\r\n    'cat.segments': def_cat_segments['cat.segments'],\r\n    'cat.shards': def_cat_shards['cat.shards'],\r\n    'cat.snapshots': def_cat_snapshots['cat.snapshots'],\r\n    'cat.tasks': def_cat_tasks['cat.tasks'],\r\n    'cat.templates': def_cat_templates['cat.templates'],\r\n    'cat.thread_pool': def_cat_thread_pool['cat.thread_pool'],\r\n    clear_scroll: def_clear_scroll['clear_scroll'],\r\n    'cluster.allocation_explain': def_cluster_allocation_explain['cluster.allocation_explain'],\r\n    'cluster.get_settings': def_cluster_get_settings['cluster.get_settings'],\r\n    'cluster.health': def_cluster_health['cluster.health'],\r\n    'cluster.pending_tasks': def_cluster_pending_tasks['cluster.pending_tasks'],\r\n    'cluster.put_settings': def_cluster_put_settings['cluster.put_settings'],\r\n    'cluster.reroute': def_cluster_reroute['cluster.reroute'],\r\n    'cluster.state': def_cluster_state['cluster.state'],\r\n    'cluster.stats': def_cluster_stats['cluster.stats'],\r\n    count: def_count['count'],\r\n    count_percolate: def_count_percolate['count_percolate'],\r\n    create: def_create['create'],\r\n    delete: def_delete['delete'],\r\n    delete_by_query: def_delete_by_query['delete_by_query'],\r\n    delete_script: def_delete_script['delete_script'],\r\n    delete_template: def_delete_template['delete_template'],\r\n    exists: def_exists['exists'],\r\n    exists_source: def_exists_source['exists_source'],\r\n    explain: def_explain['explain'],\r\n    field_caps: def_field_caps['field_caps'],\r\n    field_stats: def_field_stats['field_stats'],\r\n    get: def_get['get'],\r\n    get_script: def_get_script['get_script'],\r\n    get_source: def_get_source['get_source'],\r\n    get_template: def_get_template['get_template'],\r\n    index: def_index['index'],\r\n    'indices.analyze': def_indices_analyze['indices.analyze'],\r\n    'indices.clear_cache': def_indices_clear_cache['indices.clear_cache'],\r\n    'indices.close': def_indices_close['indices.close'],\r\n    'indices.create': def_indices_create['indices.create'],\r\n    'indices.delete': def_indices_delete['indices.delete'],\r\n    'indices.delete_alias': def_indices_delete_alias['indices.delete_alias'],\r\n    'indices.delete_template': def_indices_delete_template['indices.delete_template'],\r\n    'indices.exists': def_indices_exists['indices.exists'],\r\n    'indices.exists_alias': def_indices_exists_alias['indices.exists_alias'],\r\n    'indices.exists_template': def_indices_exists_template['indices.exists_template'],\r\n    'indices.exists_type': def_indices_exists_type['indices.exists_type'],\r\n    'indices.flush': def_indices_flush['indices.flush'],\r\n    'indices.flush_synced': def_indices_flush_synced['indices.flush_synced'],\r\n    'indices.forcemerge': def_indices_forcemerge['indices.forcemerge'],\r\n    'indices.get': def_indices_get['indices.get'],\r\n    'indices.get_alias': def_indices_get_alias['indices.get_alias'],\r\n    'indices.get_field_mapping': def_indices_get_field_mapping['indices.get_field_mapping'],\r\n    'indices.get_mapping': def_indices_get_mapping['indices.get_mapping'],\r\n    'indices.get_settings': def_indices_get_settings['indices.get_settings'],\r\n    'indices.get_template': def_indices_get_template['indices.get_template'],\r\n    'indices.get_upgrade': def_indices_get_upgrade['indices.get_upgrade'],\r\n    'indices.open': def_indices_open['indices.open'],\r\n    'indices.put_alias': def_indices_put_alias['indices.put_alias'],\r\n    'indices.put_mapping': def_indices_put_mapping['indices.put_mapping'],\r\n    'indices.put_settings': def_indices_put_settings['indices.put_settings'],\r\n    'indices.put_template': def_indices_put_template['indices.put_template'],\r\n    'indices.recovery': def_indices_recovery['indices.recovery'],\r\n    'indices.refresh': def_indices_refresh['indices.refresh'],\r\n    'indices.rollover': def_indices_rollover['indices.rollover'],\r\n    'indices.segments': def_indices_segments['indices.segments'],\r\n    'indices.shard_stores': def_indices_shard_stores['indices.shard_stores'],\r\n    'indices.shrink': def_indices_shrink['indices.shrink'],\r\n    'indices.stats': def_indices_stats['indices.stats'],\r\n    'indices.update_aliases': def_indices_update_aliases['indices.update_aliases'],\r\n    'indices.upgrade': def_indices_upgrade['indices.upgrade'],\r\n    'indices.validate_query': def_indices_validate_query['indices.validate_query'],\r\n    info: def_info['info'],\r\n    'ingest.delete_pipeline': def_ingest_delete_pipeline['ingest.delete_pipeline'],\r\n    'ingest.get_pipeline': def_ingest_get_pipeline['ingest.get_pipeline'],\r\n    'ingest.processor.grok': def_ingest_processor_grok['ingest.processor.grok'],\r\n    'ingest.put_pipeline': def_ingest_put_pipeline['ingest.put_pipeline'],\r\n    'ingest.simulate': def_ingest_simulate['ingest.simulate'],\r\n    mget: def_mget['mget'],\r\n    mpercolate: def_mpercolate['mpercolate'],\r\n    msearch: def_msearch['msearch'],\r\n    msearch_template: def_msearch_template['msearch_template'],\r\n    mtermvectors: def_mtermvectors['mtermvectors'],\r\n    'nodes.hot_threads': def_nodes_hot_threads['nodes.hot_threads'],\r\n    'nodes.info': def_nodes_info['nodes.info'],\r\n    'nodes.stats': def_nodes_stats['nodes.stats'],\r\n    percolate: def_percolate['percolate'],\r\n    ping: def_ping['ping'],\r\n    put_script: def_put_script['put_script'],\r\n    put_template: def_put_template['put_template'],\r\n    reindex: def_reindex['reindex'],\r\n    reindex_rethrottle: def_reindex_rethrottle['reindex_rethrottle'],\r\n    'remote.info': def_remote_info['remote.info'],\r\n    render_search_template: def_render_search_template['render_search_template'],\r\n    scroll: def_scroll['scroll'],\r\n    search: def_search['search'],\r\n    search_shards: def_search_shards['search_shards'],\r\n    search_template: def_search_template['search_template'],\r\n    'snapshot.create': def_snapshot_create['snapshot.create'],\r\n    'snapshot.create_repository': def_snapshot_create_repository['snapshot.create_repository'],\r\n    'snapshot.delete': def_snapshot_delete['snapshot.delete'],\r\n    'snapshot.delete_repository': def_snapshot_delete_repository['snapshot.delete_repository'],\r\n    'snapshot.get': def_snapshot_get['snapshot.get'],\r\n    'snapshot.get_repository': def_snapshot_get_repository['snapshot.get_repository'],\r\n    'snapshot.restore': def_snapshot_restore['snapshot.restore'],\r\n    'snapshot.status': def_snapshot_status['snapshot.status'],\r\n    'snapshot.verify_repository': def_snapshot_verify_repository['snapshot.verify_repository'],\r\n    suggest: def_suggest['suggest'],\r\n    'tasks.cancel': def_tasks_cancel['tasks.cancel'],\r\n    'tasks.get': def_tasks_get['tasks.get'],\r\n    'tasks.list': def_tasks_list['tasks.list'],\r\n    termvectors: def_termvectors['termvectors'],\r\n    update: def_update['update'],\r\n    update_by_query: def_update_by_query['update_by_query'],\r\n};\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.analyze.json",
    "content": "{\r\n  \"indices.analyze\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-analyze.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_analyze\",\r\n      \"paths\": [\"/_analyze\", \"/{index}/_analyze\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the analyzer to use\"\r\n        },\r\n        \"char_filter\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of character filters to use for the analysis\"\r\n        },\r\n        \"field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Use the analyzer configured for this field (instead of passing the analyzer name)\"\r\n        },\r\n        \"filter\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of filters to use for the analysis\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        },\r\n        \"prefer_local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"\r\n        },\r\n        \"text\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The text on which the analysis should be performed (when request body is not used)\"\r\n        },\r\n        \"tokenizer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the tokenizer to use for the analysis\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"With `true`, outputs more advanced details. (default: false)\"\r\n        },\r\n        \"attributes\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of token attributes to output, this parameter works only with `explain=true`\"\r\n        },\r\n        \"format\": {\r\n          \"type\": \"enum\",\r\n          \"options\" : [\"detailed\",\"text\"],\r\n          \"default\": \"detailed\",\r\n          \"description\": \"Format of the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The text on which the analysis should be performed\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.clear_cache.json",
    "content": "{\r\n  \"indices.clear_cache\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-clearcache.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cache/clear\",\r\n      \"paths\": [\"/_cache/clear\", \"/{index}/_cache/clear\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"field_data\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fielddata\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"\r\n        },\r\n        \"query\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear query caches\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        },\r\n        \"recycler\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear the recycler cache\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear request cache\"\r\n        },\r\n        \"request\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear request cache\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.close.json",
    "content": "{\r\n  \"indices.close\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_close\",\r\n      \"paths\": [\"/{index}/_close\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to close\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.create.json",
    "content": "{\r\n  \"indices.create\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-create-index.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for before the operation returns.\" \r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The configuration for the index (`settings` and `mappings`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.delete.json",
    "content": "{\r\n  \"indices.delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-delete-index.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.delete_alias.json",
    "content": "{\r\n  \"indices.delete_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.delete_template.json",
    "content": "{\r\n  \"indices.delete_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.exists.json",
    "content": "{\r\n  \"indices.exists\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-exists.html\",\r\n    \"methods\": [ \"HEAD\" ],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [ \"/{index}\" ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"list\",\r\n          \"required\": true,\r\n          \"description\": \"A comma-separated list of index names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [ \"open\", \"closed\", \"none\", \"all\" ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.exists_alias.json",
    "content": "{\r\n  \"indices.exists_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/{name}\",\r\n      \"paths\": [\"/_alias/{name}\", \"/{index}/_alias/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"all\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.exists_template.json",
    "content": "{\r\n  \"indices.exists_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [ \"/_template/{name}\" ],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"list\",\r\n          \"required\": true,\r\n          \"description\": \"The comma separated names of the index templates\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.exists_type.json",
    "content": "{\r\n  \"indices.exists_type\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-types-exists.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_mapping/{type}\",\r\n      \"paths\": [\"/{index}/_mapping/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names; use `_all` to check the types across all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of document types to check\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.flush.json",
    "content": "{\r\n  \"indices.flush\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush\",\r\n      \"paths\": [\"/_flush\", \"/{index}/_flush\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"force\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"\r\n        },\r\n        \"wait_if_ongoing\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is true. If set to false the flush will be skipped iff if another flush operation is already running.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.flush_synced.json",
    "content": "{\r\n  \"indices.flush_synced\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-synced-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush/synced\",\r\n      \"paths\": [\r\n        \"/_flush/synced\",\r\n        \"/{index}/_flush/synced\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\r\n            \"open\",\r\n            \"closed\",\r\n            \"none\",\r\n            \"all\"\r\n          ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.forcemerge.json",
    "content": "{\r\n  \"indices.forcemerge\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-forcemerge.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_forcemerge\",\r\n      \"paths\": [\"/_forcemerge\", \"/{index}/_forcemerge\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flush\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the index should be flushed after performing the operation (default: true)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"max_num_segments\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of segments the index should be merged into (default: dynamic)\"\r\n        },\r\n        \"only_expunge_deletes\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the operation should only expunge deleted documents\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"wait_for_merge\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the request should block until the merge process is finished (default: true)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get.json",
    "content": "{\r\n  \"indices.get\":{\r\n    \"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-index.html\",\r\n    \"methods\":[ \"GET\" ],\r\n    \"url\":{\r\n      \"path\":\"/{index}\",\r\n      \"paths\":[ \"/{index}\", \"/{index}/{feature}\" ],\r\n      \"parts\":{\r\n        \"index\":{\r\n          \"type\":\"list\",\r\n          \"required\" : true,\r\n          \"description\":\"A comma-separated list of index names\"\r\n        },\r\n        \"feature\":{\r\n          \"type\":\"list\",\r\n          \"description\":\"A comma-separated list of features\",\r\n          \"options\": [\"_settings\", \"_mappings\", \"_aliases\"]\r\n        }\r\n      },\r\n      \"params\":{\r\n        \"local\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_alias.json",
    "content": "{\r\n  \"indices.get_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/\",\r\n      \"paths\": [ \"/_alias\", \"/_alias/{name}\", \"/{index}/_alias/{name}\", \"/{index}/_alias\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"all\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_field_mapping.json",
    "content": "{\r\n  \"indices.get_field_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-field-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping/field/{fields}\",\r\n      \"paths\": [\"/_mapping/field/{fields}\", \"/{index}/_mapping/field/{fields}\", \"/_mapping/{type}/field/{fields}\", \"/{index}/_mapping/{type}/field/{fields}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"include_defaults\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether the default mapping values should be returned as well\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_mapping.json",
    "content": "{\r\n  \"indices.get_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping\",\r\n      \"paths\": [\"/_mapping\", \"/{index}/_mapping\", \"/_mapping/{type}\", \"/{index}/_mapping/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_settings.json",
    "content": "{\r\n  \"indices.get_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-get-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\", \"/{index}/_settings/{name}\", \"/_settings/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The name of the settings that should be included\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : [\"open\",\"closed\"],\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_template.json",
    "content": "{\r\n  \"indices.get_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\r\n        \"/_template\",\r\n        \"/_template/{name}\"\r\n      ],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"list\",\r\n          \"required\": false,\r\n          \"description\": \"The comma separated names of the index templates\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.get_upgrade.json",
    "content": "{\r\n  \"indices.get_upgrade\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-upgrade.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.open.json",
    "content": "{\r\n  \"indices.open\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_open\",\r\n      \"paths\": [\"/{index}/_open\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to open\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n           \"type\" : \"enum\",\r\n           \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n           \"default\" : \"closed\",\r\n           \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.put_alias.json",
    "content": "{\r\n  \"indices.put_alias\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the alias to be created or updated\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The settings for the alias, such as `routing` or `filter`\",\r\n      \"required\"    : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.put_mapping.json",
    "content": "{\r\n  \"indices.put_mapping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-put-mapping.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_mapping\",\r\n      \"paths\": [\"/{index}/{type}/_mapping\", \"/{index}/_mapping/{type}\", \"/_mapping/{type}\", \"/{index}/{type}/_mappings\", \"/{index}/_mappings/{type}\", \"/_mappings/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the document type\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The mapping definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.put_settings.json",
    "content": "{\r\n  \"indices.put_settings\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"preserve_existing\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false`\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n          \"flat_settings\": {\r\n              \"type\": \"boolean\",\r\n              \"description\": \"Return settings in flat format (default: false)\"\r\n          }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The index settings to be updated\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.put_template.json",
    "content": "{\r\n  \"indices.put_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-templates.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"order\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"\r\n        },\r\n        \"create\" : {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether the index template should only be added if new or can also replace an existing one\",\r\n            \"default\" : false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n           \"type\": \"boolean\",\r\n           \"description\": \"Return settings in flat format (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The template definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.recovery.json",
    "content": "{\r\n    \"indices.recovery\" : {\r\n        \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-recovery.html\",\r\n        \"methods\": [\"GET\"],\r\n        \"url\": {\r\n            \"path\": \"/_recovery\",\r\n            \"paths\": [\"/_recovery\", \"/{index}/_recovery\"],\r\n            \"parts\": {\r\n                \"index\": {\r\n                    \"type\" : \"list\",\r\n                    \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"detailed\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Whether to display detailed information about shard recovery\",\r\n                    \"default\": false\r\n                },\r\n                \"active_only\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Display only those recoveries that are currently on-going\",\r\n                    \"default\": false\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.refresh.json",
    "content": "{\r\n  \"indices.refresh\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-refresh.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_refresh\",\r\n      \"paths\": [\"/_refresh\", \"/{index}/_refresh\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.rollover.json",
    "content": "{\r\n  \"indices.rollover\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-rollover-index.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{alias}/_rollover\",\r\n      \"paths\": [\"/{alias}/_rollover\", \"/{alias}/_rollover/{new_index}\"],\r\n      \"parts\": {\r\n        \"alias\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the alias to rollover\"\r\n        },\r\n        \"new_index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : false,\r\n          \"description\" : \"The name of the rollover index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"dry_run\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If set to true the rollover action will only be validated but not actually performed even if a condition matches. The default is false\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for on the newly created rollover index before the operation returns.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The conditions that needs to be met for executing rollover\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.segments.json",
    "content": "{\r\n  \"indices.segments\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_segments\",\r\n      \"paths\": [\"/_segments\", \"/{index}/_segments\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"verbose\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Includes detailed memory usage by Lucene.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.shard_stores.json",
    "content": "{\r\n  \"indices.shard_stores\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-shards-stores.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_shard_stores\",\r\n      \"paths\": [\"/_shard_stores\", \"/{index}/_shard_stores\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"status\" : {\r\n            \"type\" : \"list\",\r\n            \"options\" : [\"green\", \"yellow\", \"red\", \"all\"],\r\n            \"description\" : \"A comma-separated list of statuses used to filter on shards to get store information for\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.shrink.json",
    "content": "{\r\n  \"indices.shrink\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-shrink-index.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_shrink/{target}\",\r\n      \"paths\": [\"/{index}/_shrink/{target}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the source index to shrink\"\r\n        },\r\n        \"target\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the target index to shrink into\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for on the shrunken index before the operation returns.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The configuration for the target index (`settings` and `aliases`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.stats.json",
    "content": "{\r\n  \"indices.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_stats\",\r\n      \"paths\": [\r\n        \"/_stats\",\r\n        \"/_stats/{metric}\",\r\n        \"/{index}/_stats\",\r\n        \"/{index}/_stats/{metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"percolate\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned the specific metrics.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return stats aggregated at cluster, index or shard level\",\r\n          \"options\" : [\"cluster\", \"indices\", \"shards\"],\r\n          \"default\" : \"indices\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        },\r\n        \"include_segment_file_sizes\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.update_aliases.json",
    "content": "{\r\n  \"indices.update_aliases\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-aliases.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_aliases\",\r\n      \"paths\": [\"/_aliases\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Request timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `actions` to perform\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.upgrade.json",
    "content": "{\r\n  \"indices.upgrade\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/indices-upgrade.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specify whether the request should block until the all segments are upgraded (default: false)\"\r\n        },\r\n        \"only_ancient_segments\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If true, only ancient (an older Lucene major release) segments will be upgraded\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/indices.validate_query.json",
    "content": "{\r\n  \"indices.validate_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-validate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_validate/query\",\r\n      \"paths\": [\"/_validate/query\", \"/{index}/_validate/query\", \"/{index}/{type}/_validate/query\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return detailed information about the error\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"rewrite\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"\r\n        },\r\n        \"all_shards\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Execute validation on all shards instead of one random shard per index\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition specified with the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/info.json",
    "content": "{\r\n  \"info\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ingest.delete_pipeline.json",
    "content": "{\r\n  \"ingest.delete_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\r\n    \"methods\": [ \"DELETE\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ingest.get_pipeline.json",
    "content": "{\r\n  \"ingest.get_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\r\n    \"methods\": [ \"GET\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline\", \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Comma separated list of pipeline ids. Wildcards supported\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ingest.processor.grok.json",
    "content": "{\r\n  \"ingest.processor.grok\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"GET\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/processor/grok\",\r\n      \"paths\": [\"/_ingest/processor/grok\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ingest.put_pipeline.json",
    "content": "{\r\n  \"ingest.put_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\r\n    \"methods\": [ \"PUT\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The ingest definition\",\r\n      \"required\" : true\r\n    }    \r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ingest.simulate.json",
    "content": "{\r\n  \"ingest.simulate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/5.x/ingest.html\",\r\n    \"methods\": [ \"GET\", \"POST\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/_simulate\",\r\n      \"paths\": [ \"/_ingest/pipeline/_simulate\", \"/_ingest/pipeline/{id}/_simulate\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : false\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"verbose\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Verbose mode. Display data output for each processor in executed pipeline\",\r\n          \"default\" : false\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The simulate definition\",\r\n      \"required\" : true\r\n    }    \r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/mget.json",
    "content": "{\r\n  \"mget\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-multi-get.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_mget\",\r\n      \"paths\": [\"/_mget\", \"/{index}/_mget\", \"/{index}/{type}/_mget\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/mpercolate.json",
    "content": "{\r\n  \"mpercolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_mpercolate\",\r\n      \"paths\": [\"/_mpercolate\", \"/{index}/_mpercolate\", \"/{index}/{type}/_mpercolate\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The index of the document being count percolated to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document being percolated to use as default.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The percolate request definitions (header & body pair), separated by newlines\",\r\n      \"required\": true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/msearch.json",
    "content": "{\r\n  \"msearch\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-multi-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_msearch\",\r\n      \"paths\": [\"/_msearch\", \"/{index}/_msearch\", \"/{index}/{type}/_msearch\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to use as default\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"max_concurrent_searches\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Controls the maximum number of concurrent searches the multi search api will execute\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"pre_filter_shard_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\r\n          \"default\" : 128\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definitions (metadata-search request definition pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/msearch_template.json",
    "content": "{\r\n  \"msearch_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_msearch/template\",\r\n      \"paths\": [\"/_msearch/template\", \"/{index}/_msearch/template\", \"/{index}/{type}/_msearch/template\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to use as default\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"max_concurrent_searches\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Controls the maximum number of concurrent searches the multi search api will execute\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definitions (metadata-search request definition pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/mtermvectors.json",
    "content": "{\r\n  \"mtermvectors\" : {\r\n    \"documentation\" : \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-multi-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/_mtermvectors\",\r\n      \"paths\" : [\"/_mtermvectors\", \"/{index}/_mtermvectors\", \"/{index}/{type}/_mtermvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\"\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ids\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of documents ids. You must define ids as parameter or set \\\"ids\\\" or \\\"docs\\\" in the request body\",\r\n          \"required\" : false\r\n        },\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n        \"description\" : \"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\r\n        \"required\" : false\r\n\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/nodes.hot_threads.json",
    "content": "{\r\n  \"nodes.hot_threads\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-hot-threads.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/hot_threads\",\r\n      \"paths\": [\"/_cluster/nodes/hotthreads\", \"/_cluster/nodes/hot_threads\", \"/_cluster/nodes/{node_id}/hotthreads\", \"/_cluster/nodes/{node_id}/hot_threads\", \"/_nodes/hotthreads\", \"/_nodes/hot_threads\", \"/_nodes/{node_id}/hotthreads\", \"/_nodes/{node_id}/hot_threads\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"interval\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"The interval for the second sampling of threads\"\r\n        },\r\n        \"snapshots\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of samples of thread stacktrace (default: 10)\"\r\n        },\r\n        \"threads\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Specify the number of threads to provide information for (default: 3)\"\r\n        },\r\n        \"ignore_idle_threads\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Don't show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cpu\", \"wait\", \"block\"],\r\n          \"description\" : \"The type to sample (default: cpu)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/nodes.info.json",
    "content": "{\r\n  \"nodes.info\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-info.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes\",\r\n      \"paths\": [\"/_nodes\", \"/_nodes/{node_id}\", \"/_nodes/{metric}\", \"/_nodes/{node_id}/{metric}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"settings\", \"os\", \"process\", \"jvm\", \"thread_pool\", \"transport\", \"http\", \"plugins\", \"ingest\"],\r\n          \"description\": \"A comma-separated list of metrics you wish returned. Leave empty to return all.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/nodes.stats.json",
    "content": "{\r\n  \"nodes.stats\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-nodes-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/stats\",\r\n      \"paths\": [\r\n        \"/_nodes/stats\",\r\n        \"/_nodes/{node_id}/stats\",\r\n        \"/_nodes/stats/{metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}\",\r\n        \"/_nodes/stats/{metric}/{index_metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}/{index_metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"breaker\", \"fs\", \"http\", \"indices\", \"jvm\", \"os\", \"process\", \"thread_pool\", \"transport\", \"discovery\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        },\r\n        \"index_metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"percolate\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned for `indices` metric to the specific index metrics. Isn't used if `indices` (or `all`) metric isn't specified.\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return indices stats aggregated at index, node or shard level\",\r\n          \"options\" : [\"indices\", \"node\", \"shards\"],\r\n          \"default\" : \"node\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"include_segment_file_sizes\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/percolate.json",
    "content": "{\r\n  \"percolate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-percolate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_percolate\",\r\n      \"paths\": [\"/{index}/{type}/_percolate\", \"/{index}/{type}/{id}/_percolate\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The index of the document being percolated.\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document being percolated.\"\r\n        },\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : false,\r\n          \"description\" : \"Substitute the document in the request body with a document that is known by the specified id. On top of the id, the index and type parameter will be used to retrieve the document from within the cluster.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"percolate_index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The index to percolate the document into. Defaults to index.\"\r\n        },\r\n        \"percolate_type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type to percolate document into. Defaults to type.\"\r\n        },\r\n        \"percolate_routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The routing value to use when percolating the existing document.\"\r\n        },\r\n        \"percolate_preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Which shard to prefer when executing the percolate request.\"\r\n        },\r\n        \"percolate_format\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"ids\"],\r\n          \"description\" : \"Return an array of matching query IDs instead of objects\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The percolator request definition using the percolate DSL\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/ping.json",
    "content": "{\r\n  \"ping\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/put_script.json",
    "content": "{\r\n  \"put_script\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-scripting.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{lang}\",\r\n      \"paths\": [ \"/_scripts/{lang}\", \"/_scripts/{lang}/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"lang\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script language\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/put_template.json",
    "content": "{\r\n  \"put_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-template.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template/{id}\",\r\n      \"paths\": [ \"/_search/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Template ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/reindex.json",
    "content": "{\r\n  \"reindex\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex\",\r\n      \"paths\": [\"/_reindex\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the reindex operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\" : \"boolean\",\r\n          \"default\": true,\r\n          \"description\" : \"Should the request should block until the reindex is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL and the prototype for the index request.\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/reindex_rethrottle.json",
    "content": "{\r\n  \"reindex_rethrottle\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex/{task_id}/_rethrottle\",\r\n      \"paths\": [\"/_reindex/{task_id}/_rethrottle\", \"/_update_by_query/{task_id}/_rethrottle\", \"/_delete_by_query/{task_id}/_rethrottle\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The task id to rethrottle\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"required\": true,\r\n          \"description\": \"The throttle to set on this request in floating sub-requests per second. -1 means set no throttle.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/remote.info.json",
    "content": "{\r\n  \"remote.info\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/5.x/cluster-remote-info.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_remote/info\",\r\n      \"paths\": [\"/_remote/info\"],\r\n      \"params\": {}\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/render_search_template.json",
    "content": "{\r\n  \"render_search_template\": {\r\n    \"documentation\": \"http://www.elasticsearch.org/guide/en/elasticsearch/reference/5.x/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_render/template\",\r\n      \"paths\": [ \"/_render/template\", \"/_render/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The id of the stored search template\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/scroll.json",
    "content": "{\r\n  \"scroll\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-request-scroll.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll\",\r\n      \"paths\": [\"/_search/scroll\", \"/_search/scroll/{scroll_id}\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID for scrolled search\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The scroll ID if not passed by URL or query parameter.\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/search.json",
    "content": "{\r\n  \"search\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search\",\r\n      \"paths\": [\"/_search\", \"/{index}/_search\", \"/{index}/{type}/_search\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"stored_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return as part of a hit\"\r\n        },\r\n        \"docvalue_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"suggest_field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify which field to use for suggestions\"\r\n        },\r\n        \"suggest_mode\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"missing\", \"popular\", \"always\"],\r\n          \"default\" : \"missing\",\r\n          \"description\" : \"Specify suggest mode\"\r\n        },\r\n        \"suggest_size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"How many suggestions to return in response\"\r\n        },\r\n        \"suggest_text\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The source text for which the suggestions should be returned\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"track_scores\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\": \"Whether to calculate and return scores even if they are not used for sorting\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"batched_reduce_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.\",\r\n          \"default\" : 512\r\n        },\r\n        \"max_concurrent_shard_requests\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests\",\r\n          \"default\" : \"The default grows with the number of nodes in the cluster but is at most 256.\"\r\n        },\r\n        \"pre_filter_shard_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\r\n          \"default\" : 128\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/search_shards.json",
    "content": "{\r\n  \"search_shards\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-shards.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_search_shards\",\r\n      \"paths\": [\"/_search_shards\", \"/{index}/_search_shards\", \"/{index}/{type}/_search_shards\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/search_template.json",
    "content": "{\r\n  \"search_template\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template\",\r\n      \"paths\": [\"/_search/template\", \"/{index}/_search/template\", \"/{index}/{type}/_search/template\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"profile\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to profile the query execution\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.create.json",
    "content": "{\r\n  \"snapshot.create\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"The snapshot definition\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.create_repository.json",
    "content": "{\r\n  \"snapshot.create_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"verify\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to verify the repository after creation\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The repository definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.delete.json",
    "content": "{\r\n  \"snapshot.delete\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.delete_repository.json",
    "content": "{\r\n  \"snapshot.delete_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.get.json",
    "content": "{\r\n  \"snapshot.get\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"\r\n        },\r\n        \"verbose\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to show verbose snapshot info or only show the basic info found in the repository index blob\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.get_repository.json",
    "content": "{\r\n  \"snapshot.get_repository\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot\",\r\n      \"paths\": [\"/_snapshot\", \"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.restore.json",
    "content": "{\r\n  \"snapshot.restore\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}/_restore\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}/_restore\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"Details of what to restore\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.status.json",
    "content": "{\r\n  \"snapshot.status\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/_status\",\r\n      \"paths\": [\"/_snapshot/_status\", \"/_snapshot/{repository}/_status\", \"/_snapshot/{repository}/{snapshot}/_status\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/snapshot.verify_repository.json",
    "content": "{\r\n    \"snapshot.verify_repository\": {\r\n        \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/modules-snapshots.html\",\r\n        \"methods\": [\"POST\"],\r\n        \"url\": {\r\n            \"path\": \"/_snapshot/{repository}/_verify\",\r\n            \"paths\": [\"/_snapshot/{repository}/_verify\"],\r\n            \"parts\": {\r\n                \"repository\": {\r\n                    \"type\": \"string\",\r\n                    \"required\" : true,\r\n                    \"description\": \"A repository name\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"master_timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout for connection to master node\"\r\n                },\r\n                \"timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout\"\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/suggest.json",
    "content": "{\r\n  \"suggest\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-suggesters.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_suggest\",\r\n      \"paths\": [\"/_suggest\", \"/{index}/_suggest\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The request definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v5_6_4/tasks.cancel.json",
    "content": "{\r\n  \"tasks.cancel\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks/_cancel\", \"/_tasks/{task_id}/_cancel\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel the task with specified task id (node_id:task_number)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/tasks.get.json",
    "content": "{\r\n  \"tasks.get\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks/{task_id}\",\r\n      \"paths\": [\"/_tasks/{task_id}\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return the task with specified id (node_id:task_number)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Wait for the matching tasks to complete (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/tasks.list.json",
    "content": "{\r\n  \"tasks.list\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be returned. Leave empty to return all.\"\r\n        },\r\n        \"detailed\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return detailed task information (default: false)\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Wait for the matching tasks to complete (default: false)\"\r\n        },\r\n        \"group_by\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Group tasks by nodes or parent/child relationships\",\r\n          \"options\" : [\"nodes\", \"parents\"],\r\n          \"default\" : \"nodes\"\r\n        }\r\n\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/termvectors.json",
    "content": "{\r\n  \"termvectors\" : {\r\n    \"documentation\" : \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/{index}/{type}/_termvectors\",\r\n      \"paths\" : [\"/{index}/{type}/_termvectors\", \"/{index}/{type}/{id}/_termvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\",\r\n         \"required\" : true\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\",\r\n          \"required\" : true\r\n        },\r\n        \"id\" : {\r\n           \"type\" : \"string\",\r\n           \"description\" : \"The id of the document, when not specified a doc param should be supplied.\"\r\n         }\r\n      },\r\n      \"params\": {\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned.\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return.\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random).\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value.\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents.\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if request is real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Define parameters and or supply a document to get termvectors for. See documentation.\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/update.json",
    "content": "{\r\n  \"update\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-update.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_update\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_update\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"lang\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The script language (default: painless)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"ID of the parent document. Is is only used for routing and when for the upsert request\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"retry_on_conflict\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Expiration time for the document\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definition using either `script` or partial `doc`\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v5_6_4/update_by_query.json",
    "content": "{\r\n  \"update_by_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/5.x/docs-update-by-query.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_update_by_query\",\r\n      \"paths\": [\"/{index}/_update_by_query\", \"/{index}/{type}/_update_by_query\"],\r\n      \"comment\": \"most things below this are just copied from search.json\",\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"required\" : true,\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"conflicts\": {\r\n            \"note\": \"This is not copied from search\",\r\n            \"type\" : \"enum\",\r\n            \"options\": [\"abort\", \"proceed\"],\r\n            \"default\": \"abort\",\r\n            \"description\" : \"What to do when the update by query hits version conflicts?\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"pipeline\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Ingest pipeline to set on index requests made by this action. (default: none)\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"search_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timeout for each search request. Defaults to no timeout.\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the document increment the version number (internal) on hit or not (reindex)\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the update by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"scroll_size\": {\r\n          \"type\": \"number\",\r\n          \"defaut_value\": 100,\r\n          \"description\": \"Size on the scroll request powering the update_by_query\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"default\": true,\r\n           \"description\" : \"Should the request should block until the update by query operation is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/_common.json",
    "content": "{\r\n  \"description\": \"Parameters that are accepted by all API endpoints.\",\r\n  \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html\",\r\n  \"params\": {\r\n    \"pretty\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Pretty format the returned JSON response.\",\r\n      \"default\": false\r\n    },\r\n    \"human\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Return human readable values for statistics.\",\r\n      \"default\": true\r\n    },\r\n    \"error_trace\": {\r\n      \"type\": \"boolean\",\r\n      \"description\": \"Include the stack trace of returned errors.\",\r\n      \"default\": false\r\n    },\r\n    \"source\": {\r\n      \"type\": \"string\",\r\n      \"description\": \"The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests.\"\r\n    },\r\n    \"filter_path\": {\r\n      \"type\": \"list\",\r\n      \"description\": \"A comma-separated list of filters used to reduce the respone.\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/bulk.json",
    "content": "{\r\n  \"bulk\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_bulk\",\r\n      \"paths\": [\"/_bulk\", \"/{index}/_bulk\", \"/{index}/{type}/_bulk\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default index for items which don't provide one\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the bulk operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\" \r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Default document type for items which don't provide one\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Default comma-separated list of fields to return in the response for updates, can be overridden on each sub-request\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or default list of fields to return, can be overridden on each sub-request\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Default list of fields to exclude from the returned _source field, can be overridden on each sub-request\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Default list of fields to extract and return from the _source field, can be overridden on each sub-request\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The operation definition and data (action-data pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.aliases.json",
    "content": "{\r\n  \"cat.aliases\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-alias.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/aliases\",\r\n      \"paths\": [\"/_cat/aliases\", \"/_cat/aliases/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.allocation.json",
    "content": "{\r\n  \"cat.allocation\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/allocation\",\r\n      \"paths\": [\"/_cat/allocation\", \"/_cat/allocation/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.count.json",
    "content": "{\r\n  \"cat.count\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/count\",\r\n      \"paths\": [\"/_cat/count\", \"/_cat/count/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.fielddata.json",
    "content": "{\r\n  \"cat.fielddata\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/fielddata\",\r\n      \"paths\": [\"/_cat/fielddata\", \"/_cat/fielddata/{fields}\"],\r\n      \"parts\": {\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return the fielddata size\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.health.json",
    "content": "{\r\n  \"cat.health\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/health\",\r\n      \"paths\": [\"/_cat/health\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"ts\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to false to disable timestamping\",\r\n          \"default\": true\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.help.json",
    "content": "{\r\n  \"cat.help\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat\",\r\n      \"paths\": [\"/_cat\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.indices.json",
    "content": "{\r\n  \"cat.indices\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/indices\",\r\n      \"paths\": [\"/_cat/indices\", \"/_cat/indices/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"m\", \"g\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"health\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"green\",\"yellow\",\"red\"],\r\n          \"default\" : null,\r\n          \"description\" : \"A health status (\\\"green\\\", \\\"yellow\\\", or \\\"red\\\" to filter only indices matching the specified health status\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"pri\" : {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to return stats only for primary shards\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.master.json",
    "content": "{\r\n  \"cat.master\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/master\",\r\n      \"paths\": [\"/_cat/master\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.nodeattrs.json",
    "content": "{\r\n  \"cat.nodeattrs\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodeattrs\",\r\n      \"paths\": [\"/_cat/nodeattrs\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.nodes.json",
    "content": "{\r\n  \"cat.nodes\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/nodes\",\r\n      \"paths\": [\"/_cat/nodes\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"full_id\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return the full node ID instead of the shortened version (default: false)\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.pending_tasks.json",
    "content": "{\r\n  \"cat.pending_tasks\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/pending_tasks\",\r\n      \"paths\": [\"/_cat/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.plugins.json",
    "content": "{\r\n  \"cat.plugins\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/plugins\",\r\n      \"paths\": [\"/_cat/plugins\"],\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.recovery.json",
    "content": "{\r\n  \"cat.recovery\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/recovery\",\r\n      \"paths\": [\"/_cat/recovery\", \"/_cat/recovery/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.repositories.json",
    "content": "{\r\n  \"cat.repositories\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/repositories\",\r\n      \"paths\": [\"/_cat/repositories\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.segments.json",
    "content": "{\r\n  \"cat.segments\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/segments\",\r\n      \"paths\": [\"/_cat/segments\", \"/_cat/segments/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.shards.json",
    "content": "{\r\n  \"cat.shards\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/shards\",\r\n      \"paths\": [\"/_cat/shards\", \"/_cat/shards/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"A comma-separated list of index names to limit the returned information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"bytes\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The unit in which to display byte values\",\r\n          \"options\": [ \"b\", \"k\", \"kb\", \"m\", \"mb\", \"g\", \"gb\", \"t\", \"tb\", \"p\", \"pb\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.snapshots.json",
    "content": "{\r\n  \"cat.snapshots\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/snapshots\",\r\n      \"paths\": [\r\n        \"/_cat/snapshots\",\r\n        \"/_cat/snapshots/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\" : \"list\",\r\n          \"description\": \"Name of repository from which to fetch the snapshot information\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Set to true to ignore unavailable snapshots\",\r\n          \"default\": false\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.tasks.json",
    "content": "{\r\n  \"cat.tasks\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/tasks\",\r\n      \"paths\": [\"/_cat/tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be returned. Leave empty to return all.\"\r\n        },\r\n        \"detailed\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return detailed task information (default: false)\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return tasks with specified parent node.\"\r\n        },\r\n        \"parent_task\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Return tasks with specified parent task id. Set to -1 to return all.\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.templates.json",
    "content": "{\r\n  \"cat.templates\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-templates.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/templates\",\r\n      \"paths\": [\"/_cat/templates\", \"/_cat/templates/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"A pattern that returned template names must match\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cat.thread_pool.json",
    "content": "{\r\n  \"cat.thread_pool\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cat/thread_pool\",\r\n      \"paths\": [\"/_cat/thread_pool\",\"/_cat/thread_pool/{thread_pool_patterns}\"],\r\n      \"parts\": {\r\n        \"thread_pool_patterns\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of regular-expressions to filter the thread pools in the output\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"format\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"a short version of the Accept header, e.g. json, yaml\"\r\n        },\r\n        \"size\": {\r\n          \"type\": \"enum\",\r\n          \"description\" : \"The multiplier in which to display values\",\r\n          \"options\": [ \"\", \"k\", \"m\", \"g\", \"t\", \"p\" ]\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"h\": {\r\n            \"type\": \"list\",\r\n            \"description\" : \"Comma-separated list of column names to display\"\r\n        },\r\n        \"help\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return help information\",\r\n          \"default\": false\r\n        },\r\n        \"s\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"Comma-separated list of column names or column aliases to sort by\"\r\n        },\r\n        \"v\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Verbose mode. Display column headers\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/clear_scroll.json",
    "content": "{\r\n  \"clear_scroll\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll/{scroll_id}\",\r\n      \"paths\": [\"/_search/scroll/{scroll_id}\", \"/_search/scroll\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of scroll IDs to clear\"\r\n        }\r\n      },\r\n      \"params\": {}\r\n    },\r\n    \"body\": {\r\n      \"description\": \"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.allocation_explain.json",
    "content": "{\r\n  \"cluster.allocation_explain\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-allocation-explain.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/allocation/explain\",\r\n      \"paths\": [\"/_cluster/allocation/explain\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"include_yes_decisions\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return 'YES' decisions in explanation (default: false)\"\r\n        },\r\n        \"include_disk_info\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return information about disk usage and shard sizes (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The index, shard, and primary flag to explain. Empty means 'explain the first unassigned shard'\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.get_settings.json",
    "content": "{\r\n  \"cluster.get_settings\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default clusters setting.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.health.json",
    "content": "{\r\n  \"cluster.health\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-health.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/health\",\r\n      \"paths\": [\"/_cluster/health\", \"/_cluster/health/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Limit the information returned to a specific index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cluster\",\"indices\",\"shards\"],\r\n          \"default\" : \"cluster\",\r\n          \"description\" : \"Specify the level of detail for returned information\"\r\n        },\r\n        \"local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Wait until the specified number of shards is active\"\r\n        },\r\n        \"wait_for_nodes\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Wait until the specified number of nodes is available\"\r\n        },\r\n        \"wait_for_events\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"immediate\", \"urgent\", \"high\", \"normal\", \"low\", \"languid\"],\r\n          \"description\" : \"Wait until all currently queued events with the given priority are processed\"\r\n        },\r\n        \"wait_for_no_relocating_shards\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to wait until there are no relocating shards in the cluster\"\r\n        },\r\n        \"wait_for_status\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"green\",\"yellow\",\"red\"],\r\n          \"default\" : null,\r\n          \"description\" : \"Wait until cluster is in a specific state\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.pending_tasks.json",
    "content": "{\r\n  \"cluster.pending_tasks\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-pending.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/pending_tasks\",\r\n      \"paths\": [\"/_cluster/pending_tasks\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.put_settings.json",
    "content": "{\r\n  \"cluster.put_settings\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/settings\",\r\n      \"paths\": [\"/_cluster/settings\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.reroute.json",
    "content": "{\r\n  \"cluster.reroute\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-reroute.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/reroute\",\r\n      \"paths\": [\"/_cluster/reroute\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"dry_run\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Simulate the operation only and return the resulting state\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return an explanation of why the commands can or cannot be executed\"\r\n        },\r\n        \"retry_failed\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Retries allocation of shards that are blocked due to too many subsequent allocation failures\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"master_node\", \"version\"],\r\n          \"description\": \"Limit the information returned to the specified metrics. Defaults to all but metadata\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.state.json",
    "content": "{\r\n  \"cluster.state\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-state.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/state\",\r\n      \"paths\": [\r\n        \"/_cluster/state\",\r\n        \"/_cluster/state/{metric}\",\r\n        \"/_cluster/state/{metric}/{index}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"blocks\", \"metadata\", \"nodes\", \"routing_table\", \"routing_nodes\", \"master_node\", \"version\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/cluster.stats.json",
    "content": "{\r\n  \"cluster.stats\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cluster/stats\",\r\n      \"paths\": [\"/_cluster/stats\", \"/_cluster/stats/nodes/{node_id}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/count.json",
    "content": "{\r\n  \"count\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_count\",\r\n      \"paths\": [\"/_count\", \"/{index}/_count\", \"/{index}/{type}/_count\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of indices to restrict the results\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of types to restrict the results\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"min_score\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Include only documents with a specific `_score` value in the result\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"terminate_after\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum count for each shard, upon reaching which the query execution will terminate early\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"A query to restrict the results specified with the Query DSL (optional)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/create.json",
    "content": "{\r\n  \"create\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html\",\r\n    \"methods\": [\"PUT\",\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_create\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_create\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of the parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Expiration time for the document\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/delete.json",
    "content": "{\r\n  \"delete\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the delete operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/delete_by_query.json",
    "content": "{\r\n  \"delete_by_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete-by-query.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_delete_by_query\",\r\n      \"paths\": [\"/{index}/_delete_by_query\", \"/{index}/{type}/_delete_by_query\"],\r\n      \"comment\": \"most things below this are just copied from search.json\",\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"required\" : true,\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"conflicts\": {\r\n            \"note\": \"This is not copied from search\",\r\n            \"type\" : \"enum\",\r\n            \"options\": [\"abort\", \"proceed\"],\r\n            \"default\": \"abort\",\r\n            \"description\" : \"What to do when the delete-by-query hits version conflicts?\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"search_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timeout for each search request. Defaults to no timeout.\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the delete by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"scroll_size\": {\r\n          \"type\": \"number\",\r\n          \"defaut_value\": 100,\r\n          \"description\": \"Size on the scroll request powering the update_by_query\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"default\": true,\r\n           \"description\" : \"Should the request should block until the delete-by-query is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle for this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/delete_script.json",
    "content": "{\r\n  \"delete_script\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{id}\",\r\n      \"paths\": [ \"/_scripts/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/exists.json",
    "content": "{\r\n  \"exists\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/exists_source.json",
    "content": "{\r\n  \"exists_source\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_source\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_source\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document; use `_all` to fetch the first document matching the ID across all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/explain.json",
    "content": "{\r\n  \"explain\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_explain\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_explain\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer for the query string query\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The default field for query string query (default: _all)\"\r\n        },\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/field_caps.json",
    "content": "{\r\n  \"field_caps\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_field_caps\",\r\n      \"paths\": [\r\n        \"/_field_caps\",\r\n        \"/{index}/_field_caps\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of field names\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"Field json objects containing an array of field names\",\r\n      \"required\": false\r\n    }\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v6_0_0/get.json",
    "content": "{\r\n  \"get\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}\",\r\n      \"paths\": [\"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/get_script.json",
    "content": "{\r\n  \"get_script\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{id}\",\r\n      \"paths\": [ \"/_scripts/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\" : {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v6_0_0/get_source.json",
    "content": "{\r\n  \"get_source\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_source\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_source\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document; use `_all` to fetch the first document matching the ID across all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The ID of the parent document\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/index.json",
    "content": "{\r\n  \"index\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html\",\r\n    \"methods\": [\"POST\", \"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}\",\r\n      \"paths\": [\"/{index}/{type}\", \"/{index}/{type}/{id}\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"op_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"index\", \"create\"],\r\n          \"default\" : \"index\",\r\n          \"description\" : \"Explicit operation type\"\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"ID of the parent document\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Expiration time for the document\"\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        },\r\n        \"pipeline\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The pipeline id to preprocess incoming documents with\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/index.ts",
    "content": "const def__common = JSON.parse(\r\n    '{\"description\":\"Parameters that are accepted by all API endpoints.\",\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html\",\"params\":{\"pretty\":{\"type\":\"boolean\",\"description\":\"Pretty format the returned JSON response.\",\"default\":false},\"human\":{\"type\":\"boolean\",\"description\":\"Return human readable values for statistics.\",\"default\":true},\"error_trace\":{\"type\":\"boolean\",\"description\":\"Include the stack trace of returned errors.\",\"default\":false},\"source\":{\"type\":\"string\",\"description\":\"The URL-encoded request definition. Useful for libraries that do not accept a request body for non-POST requests.\"},\"filter_path\":{\"type\":\"list\",\"description\":\"A comma-separated list of filters used to reduce the respone.\"}}}',\r\n);\r\nconst def_bulk = JSON.parse(\r\n    '{\"bulk\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/_bulk\",\"paths\":[\"/_bulk\",\"/{index}/_bulk\",\"/{index}/{type}/_bulk\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"Default index for items which don\\'t provide one\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the bulk operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"type\":{\"type\":\"string\",\"description\":\"Default document type for items which don\\'t provide one\"},\"fields\":{\"type\":\"list\",\"description\":\"Default comma-separated list of fields to return in the response for updates, can be overridden on each sub-request\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or default list of fields to return, can be overridden on each sub-request\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"Default list of fields to exclude from the returned _source field, can be overridden on each sub-request\"},\"_source_include\":{\"type\":\"list\",\"description\":\"Default list of fields to extract and return from the _source field, can be overridden on each sub-request\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The operation definition and data (action-data pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_cat_aliases = JSON.parse(\r\n    '{\"cat.aliases\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-alias.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/aliases\",\"paths\":[\"/_cat/aliases\",\"/_cat/aliases/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_allocation = JSON.parse(\r\n    '{\"cat.allocation\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/allocation\",\"paths\":[\"/_cat/allocation\",\"/_cat/allocation/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_count = JSON.parse(\r\n    '{\"cat.count\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/count\",\"paths\":[\"/_cat/count\",\"/_cat/count/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_fielddata = JSON.parse(\r\n    '{\"cat.fielddata\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/fielddata\",\"paths\":[\"/_cat/fielddata\",\"/_cat/fielddata/{fields}\"],\"parts\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return the fielddata size\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the output\"}}},\"body\":null}}',\r\n);\r\nconst def_cat_health = JSON.parse(\r\n    '{\"cat.health\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/health\",\"paths\":[\"/_cat/health\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"ts\":{\"type\":\"boolean\",\"description\":\"Set to false to disable timestamping\",\"default\":true},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_help = JSON.parse(\r\n    '{\"cat.help\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat\",\"paths\":[\"/_cat\"],\"parts\":{},\"params\":{\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"}}},\"body\":null}}',\r\n);\r\nconst def_cat_indices = JSON.parse(\r\n    '{\"cat.indices\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/indices\",\"paths\":[\"/_cat/indices\",\"/_cat/indices/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"m\",\"g\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"health\":{\"type\":\"enum\",\"options\":[\"green\",\"yellow\",\"red\"],\"default\":null,\"description\":\"A health status (\\\\\"green\\\\\", \\\\\"yellow\\\\\", or \\\\\"red\\\\\" to filter only indices matching the specified health status\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"pri\":{\"type\":\"boolean\",\"description\":\"Set to true to return stats only for primary shards\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_master = JSON.parse(\r\n    '{\"cat.master\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/master\",\"paths\":[\"/_cat/master\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodeattrs = JSON.parse(\r\n    '{\"cat.nodeattrs\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodeattrs\",\"paths\":[\"/_cat/nodeattrs\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_nodes = JSON.parse(\r\n    '{\"cat.nodes\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/nodes\",\"paths\":[\"/_cat/nodes\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"full_id\":{\"type\":\"boolean\",\"description\":\"Return the full node ID instead of the shortened version (default: false)\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_pending_tasks = JSON.parse(\r\n    '{\"cat.pending_tasks\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/pending_tasks\",\"paths\":[\"/_cat/pending_tasks\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_plugins = JSON.parse(\r\n    '{\"cat.plugins\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/plugins\",\"paths\":[\"/_cat/plugins\"],\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_recovery = JSON.parse(\r\n    '{\"cat.recovery\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/recovery\",\"paths\":[\"/_cat/recovery\",\"/_cat/recovery/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_repositories = JSON.parse(\r\n    '{\"cat.repositories\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/repositories\",\"paths\":[\"/_cat/repositories\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_segments = JSON.parse(\r\n    '{\"cat.segments\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/segments\",\"paths\":[\"/_cat/segments\",\"/_cat/segments/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_shards = JSON.parse(\r\n    '{\"cat.shards\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/shards\",\"paths\":[\"/_cat/shards\",\"/_cat/shards/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to limit the returned information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"bytes\":{\"type\":\"enum\",\"description\":\"The unit in which to display byte values\",\"options\":[\"b\",\"k\",\"kb\",\"m\",\"mb\",\"g\",\"gb\",\"t\",\"tb\",\"p\",\"pb\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_snapshots = JSON.parse(\r\n    '{\"cat.snapshots\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/snapshots\",\"paths\":[\"/_cat/snapshots\",\"/_cat/snapshots/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"description\":\"Name of repository from which to fetch the snapshot information\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Set to true to ignore unavailable snapshots\",\"default\":false},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_tasks = JSON.parse(\r\n    '{\"cat.tasks\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/tasks\",\"paths\":[\"/_cat/tasks\"],\"parts\":{},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be returned. Leave empty to return all.\"},\"detailed\":{\"type\":\"boolean\",\"description\":\"Return detailed task information (default: false)\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent node.\"},\"parent_task\":{\"type\":\"number\",\"description\":\"Return tasks with specified parent task id. Set to -1 to return all.\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_templates = JSON.parse(\r\n    '{\"cat.templates\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-templates.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/templates\",\"paths\":[\"/_cat/templates\",\"/_cat/templates/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"description\":\"A pattern that returned template names must match\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cat_thread_pool = JSON.parse(\r\n    '{\"cat.thread_pool\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cat/thread_pool\",\"paths\":[\"/_cat/thread_pool\",\"/_cat/thread_pool/{thread_pool_patterns}\"],\"parts\":{\"thread_pool_patterns\":{\"type\":\"list\",\"description\":\"A comma-separated list of regular-expressions to filter the thread pools in the output\"}},\"params\":{\"format\":{\"type\":\"string\",\"description\":\"a short version of the Accept header, e.g. json, yaml\"},\"size\":{\"type\":\"enum\",\"description\":\"The multiplier in which to display values\",\"options\":[\"\",\"k\",\"m\",\"g\",\"t\",\"p\"]},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"h\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names to display\"},\"help\":{\"type\":\"boolean\",\"description\":\"Return help information\",\"default\":false},\"s\":{\"type\":\"list\",\"description\":\"Comma-separated list of column names or column aliases to sort by\"},\"v\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display column headers\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_clear_scroll = JSON.parse(\r\n    '{\"clear_scroll\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_search/scroll/{scroll_id}\",\"paths\":[\"/_search/scroll/{scroll_id}\",\"/_search/scroll\"],\"parts\":{\"scroll_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of scroll IDs to clear\"}},\"params\":{}},\"body\":{\"description\":\"A comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter\"}}}',\r\n);\r\nconst def_cluster_allocation_explain = JSON.parse(\r\n    '{\"cluster.allocation_explain\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-allocation-explain.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_cluster/allocation/explain\",\"paths\":[\"/_cluster/allocation/explain\"],\"parts\":{},\"params\":{\"include_yes_decisions\":{\"type\":\"boolean\",\"description\":\"Return \\'YES\\' decisions in explanation (default: false)\"},\"include_disk_info\":{\"type\":\"boolean\",\"description\":\"Return information about disk usage and shard sizes (default: false)\"}}},\"body\":{\"description\":\"The index, shard, and primary flag to explain. Empty means \\'explain the first unassigned shard\\'\"}}}',\r\n);\r\nconst def_cluster_get_settings = JSON.parse(\r\n    '{\"cluster.get_settings\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default clusters setting.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_cluster_health = JSON.parse(\r\n    '{\"cluster.health\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-health.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/health\",\"paths\":[\"/_cluster/health\",\"/_cluster/health/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"Limit the information returned to a specific index\"}},\"params\":{\"level\":{\"type\":\"enum\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"cluster\",\"description\":\"Specify the level of detail for returned information\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Wait until the specified number of shards is active\"},\"wait_for_nodes\":{\"type\":\"string\",\"description\":\"Wait until the specified number of nodes is available\"},\"wait_for_events\":{\"type\":\"enum\",\"options\":[\"immediate\",\"urgent\",\"high\",\"normal\",\"low\",\"languid\"],\"description\":\"Wait until all currently queued events with the given priority are processed\"},\"wait_for_no_relocating_shards\":{\"type\":\"boolean\",\"description\":\"Whether to wait until there are no relocating shards in the cluster\"},\"wait_for_status\":{\"type\":\"enum\",\"options\":[\"green\",\"yellow\",\"red\"],\"default\":null,\"description\":\"Wait until cluster is in a specific state\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_pending_tasks = JSON.parse(\r\n    '{\"cluster.pending_tasks\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-pending.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/pending_tasks\",\"paths\":[\"/_cluster/pending_tasks\"],\"parts\":{},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_put_settings = JSON.parse(\r\n    '{\"cluster.put_settings\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_cluster/settings\",\"paths\":[\"/_cluster/settings\"],\"parts\":{},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The settings to be updated. Can be either `transient` or `persistent` (survives cluster restart).\"}}}',\r\n);\r\nconst def_cluster_reroute = JSON.parse(\r\n    '{\"cluster.reroute\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-reroute.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_cluster/reroute\",\"paths\":[\"/_cluster/reroute\"],\"parts\":{},\"params\":{\"dry_run\":{\"type\":\"boolean\",\"description\":\"Simulate the operation only and return the resulting state\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Return an explanation of why the commands can or cannot be executed\"},\"retry_failed\":{\"type\":\"boolean\",\"description\":\"Retries allocation of shards that are blocked due to too many subsequent allocation failures\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics. Defaults to all but metadata\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The definition of `commands` to perform (`move`, `cancel`, `allocate`)\"}}}',\r\n);\r\nconst def_cluster_state = JSON.parse(\r\n    '{\"cluster.state\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-state.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/state\",\"paths\":[\"/_cluster/state\",\"/_cluster/state/{metric}\",\"/_cluster/state/{metric}/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"blocks\",\"metadata\",\"nodes\",\"routing_table\",\"routing_nodes\",\"master_node\",\"version\"],\"description\":\"Limit the information returned to the specified metrics\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_cluster_stats = JSON.parse(\r\n    '{\"cluster.stats\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_cluster/stats\",\"paths\":[\"/_cluster/stats\",\"/_cluster/stats/nodes/{node_id}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_count = JSON.parse(\r\n    '{\"count\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_count\",\"paths\":[\"/_count\",\"/{index}/_count\",\"/{index}/{type}/_count\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of indices to restrict the results\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of types to restrict the results\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"min_score\":{\"type\":\"number\",\"description\":\"Include only documents with a specific `_score` value in the result\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum count for each shard, upon reaching which the query execution will terminate early\"}}},\"body\":{\"description\":\"A query to restrict the results specified with the Query DSL (optional)\"}}}',\r\n);\r\nconst def_create = JSON.parse(\r\n    '{\"create\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_create\",\"paths\":[\"/{index}/{type}/{id}/_create\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_delete = JSON.parse(\r\n    '{\"delete\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the delete operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_delete_by_query = JSON.parse(\r\n    '{\"delete_by_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete-by-query.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_delete_by_query\",\"paths\":[\"/{index}/_delete_by_query\",\"/{index}/{type}/_delete_by_query\"],\"comment\":\"most things below this are just copied from search.json\",\"parts\":{\"index\":{\"required\":true,\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"conflicts\":{\"note\":\"This is not copied from search\",\"type\":\"enum\",\"options\":[\"abort\",\"proceed\"],\"default\":\"abort\",\"description\":\"What to do when the delete-by-query hits version conflicts?\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"search_timeout\":{\"type\":\"time\",\"description\":\"Explicit timeout for each search request. Defaults to no timeout.\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the delete by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"scroll_size\":{\"type\":\"number\",\"defaut_value\":100,\"description\":\"Size on the scroll request powering the update_by_query\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the delete-by-query is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle for this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\",\"required\":true}}}',\r\n);\r\nconst def_delete_script = JSON.parse(\r\n    '{\"delete_script\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_scripts/{id}\",\"paths\":[\"/_scripts/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_exists = JSON.parse(\r\n    '{\"exists\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_exists_source = JSON.parse(\r\n    '{\"exists_source\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_source\",\"paths\":[\"/{index}/{type}/{id}/_source\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document; use `_all` to fetch the first document matching the ID across all types\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_explain = JSON.parse(\r\n    '{\"explain\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_explain\",\"paths\":[\"/{index}/{type}/{id}/_explain\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer for the query string query\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The default field for query string query (default: _all)\"},\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"The query definition using the Query DSL\"}}}',\r\n);\r\nconst def_field_caps = JSON.parse(\r\n    '{\"field_caps\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_field_caps\",\"paths\":[\"/_field_caps\",\"/{index}/_field_caps\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of field names\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":{\"description\":\"Field json objects containing an array of field names\",\"required\":false}}}',\r\n);\r\nconst def_get = JSON.parse(\r\n    '{\"get\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}\",\"paths\":[\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document (use `_all` to fetch the first document matching the ID across all types)\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_get_script = JSON.parse(\r\n    '{\"get_script\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_scripts/{id}\",\"paths\":[\"/_scripts/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true}},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_get_source = JSON.parse(\r\n    '{\"get_source\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_source\",\"paths\":[\"/{index}/{type}/{id}/_source\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"The document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document; use `_all` to fetch the first document matching the ID across all types\"}},\"params\":{\"parent\":{\"type\":\"string\",\"description\":\"The ID of the parent document\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":null}}',\r\n);\r\nconst def_index = JSON.parse(\r\n    '{\"index\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html\",\"methods\":[\"POST\",\"PUT\"],\"url\":{\"path\":\"/{index}/{type}\",\"paths\":[\"/{index}/{type}\",\"/{index}/{type}/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"op_type\":{\"type\":\"enum\",\"options\":[\"index\",\"create\"],\"default\":\"index\",\"description\":\"Explicit operation type\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"},\"pipeline\":{\"type\":\"string\",\"description\":\"The pipeline id to preprocess incoming documents with\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_indices_analyze = JSON.parse(\r\n    '{\"indices.analyze\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_analyze\",\"paths\":[\"/_analyze\",\"/{index}/_analyze\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"}},\"params\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index to scope the operation\"},\"prefer_local\":{\"type\":\"boolean\",\"description\":\"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"},\"format\":{\"type\":\"enum\",\"options\":[\"detailed\",\"text\"],\"default\":\"detailed\",\"description\":\"Format of the output\"}}},\"body\":{\"description\":\"Define analyzer/tokenizer parameters and the text on which the analysis should be performed\"}}}',\r\n);\r\nconst def_indices_clear_cache = JSON.parse(\r\n    '{\"indices.clear_cache\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clearcache.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_cache/clear\",\"paths\":[\"/_cache/clear\",\"/{index}/_cache/clear\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"}},\"params\":{\"field_data\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fielddata\":{\"type\":\"boolean\",\"description\":\"Clear field data\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"},\"query\":{\"type\":\"boolean\",\"description\":\"Clear query caches\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index name to limit the operation\"},\"recycler\":{\"type\":\"boolean\",\"description\":\"Clear the recycler cache\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Clear request cache\"},\"request\":{\"type\":\"boolean\",\"description\":\"Clear request cache\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_close = JSON.parse(\r\n    '{\"indices.close\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_close\",\"paths\":[\"/{index}/_close\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to close\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_create = JSON.parse(\r\n    '{\"indices.create\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for before the operation returns.\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The configuration for the index (`settings` and `mappings`)\"}}}',\r\n);\r\nconst def_indices_delete = JSON.parse(\r\n    '{\"indices.delete\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_alias = JSON.parse(\r\n    '{\"indices.delete_alias\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"},\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_delete_template = JSON.parse(\r\n    '{\"indices.delete_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists = JSON.parse(\r\n    '{\"indices.exists\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_alias = JSON.parse(\r\n    '{\"indices.exists_alias\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_alias/{name}\",\"paths\":[\"/_alias/{name}\",\"/{index}/_alias/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"all\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_template = JSON.parse(\r\n    '{\"indices.exists_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"required\":true,\"description\":\"The comma separated names of the index templates\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_exists_type = JSON.parse(\r\n    '{\"indices.exists_type\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-types-exists.html\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/{index}/_mapping/{type}\",\"paths\":[\"/{index}/_mapping/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names; use `_all` to check the types across all indices\"},\"type\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of document types to check\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush = JSON.parse(\r\n    '{\"indices.flush\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush\",\"paths\":[\"/_flush\",\"/{index}/_flush\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"force\":{\"type\":\"boolean\",\"description\":\"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"},\"wait_if_ongoing\":{\"type\":\"boolean\",\"description\":\"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is true. If set to false the flush will be skipped iff if another flush operation is already running.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_flush_synced = JSON.parse(\r\n    '{\"indices.flush_synced\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-synced-flush.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_flush/synced\",\"paths\":[\"/_flush/synced\",\"/{index}/_flush/synced\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string for all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_forcemerge = JSON.parse(\r\n    '{\"indices.forcemerge\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_forcemerge\",\"paths\":[\"/_forcemerge\",\"/{index}/_forcemerge\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"flush\":{\"type\":\"boolean\",\"description\":\"Specify whether the index should be flushed after performing the operation (default: true)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"max_num_segments\":{\"type\":\"number\",\"description\":\"The number of segments the index should be merged into (default: dynamic)\"},\"only_expunge_deletes\":{\"type\":\"boolean\",\"description\":\"Specify whether the operation should only expunge deleted documents\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"wait_for_merge\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the merge process is finished (default: true)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get = JSON.parse(\r\n    '{\"indices.get\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/{index}\",\"paths\":[\"/{index}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names\"}},\"params\":{\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Ignore unavailable indexes (default: false)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_alias = JSON.parse(\r\n    '{\"indices.get_alias\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_alias/\",\"paths\":[\"/_alias\",\"/_alias/{name}\",\"/{index}/_alias/{name}\",\"/{index}/_alias\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to filter aliases\"},\"name\":{\"type\":\"list\",\"description\":\"A comma-separated list of alias names to return\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"all\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_field_mapping = JSON.parse(\r\n    '{\"indices.get_field_mapping\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping/field/{fields}\",\"paths\":[\"/_mapping/field/{fields}\",\"/{index}/_mapping/field/{fields}\",\"/_mapping/{type}/field/{fields}\",\"/{index}/_mapping/{type}/field/{fields}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields\",\"required\":true}},\"params\":{\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether the default mapping values should be returned as well\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_mapping = JSON.parse(\r\n    '{\"indices.get_mapping\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_mapping\",\"paths\":[\"/_mapping\",\"/{index}/_mapping\",\"/_mapping/{type}\",\"/{index}/_mapping/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_settings = JSON.parse(\r\n    '{\"indices.get_settings\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\",\"/{index}/_settings/{name}\",\"/_settings/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"name\":{\"type\":\"list\",\"description\":\"The name of the settings that should be included\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":[\"open\",\"closed\"],\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"include_defaults\":{\"type\":\"boolean\",\"description\":\"Whether to return all default setting for each of the indices.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_template = JSON.parse(\r\n    '{\"indices.get_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template\",\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"list\",\"required\":false,\"description\":\"The comma separated names of the index templates\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_get_upgrade = JSON.parse(\r\n    '{\"indices.get_upgrade\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_open = JSON.parse(\r\n    '{\"indices.open\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_open\",\"paths\":[\"/{index}/_open\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma separated list of indices to open\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"closed\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_put_alias = JSON.parse(\r\n    '{\"indices.put_alias\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_alias/{name}\",\"paths\":[\"/{index}/_alias/{name}\",\"/{index}/_aliases/{name}\"],\"parts\":{\"index\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"},\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the alias to be created or updated\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The settings for the alias, such as `routing` or `filter`\",\"required\":false}}}',\r\n);\r\nconst def_indices_put_mapping = JSON.parse(\r\n    '{\"indices.put_mapping\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_mapping\",\"paths\":[\"/{index}/{type}/_mapping\",\"/{index}/_mapping/{type}\",\"/_mapping/{type}\",\"/{index}/{type}/_mappings\",\"/{index}/_mappings/{type}\",\"/_mappings/{type}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the document type\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"update_all_types\":{\"type\":\"boolean\",\"description\":\"Whether to update the mapping for all fields with the same name across all types or not\"}}},\"body\":{\"description\":\"The mapping definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_settings = JSON.parse(\r\n    '{\"indices.put_settings\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_settings\",\"paths\":[\"/_settings\",\"/{index}/_settings\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"preserve_existing\":{\"type\":\"boolean\",\"description\":\"Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false`\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The index settings to be updated\",\"required\":true}}}',\r\n);\r\nconst def_indices_put_template = JSON.parse(\r\n    '{\"indices.put_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_template/{name}\",\"paths\":[\"/_template/{name}\"],\"parts\":{\"name\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the template\"}},\"params\":{\"order\":{\"type\":\"number\",\"description\":\"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"},\"create\":{\"type\":\"boolean\",\"description\":\"Whether the index template should only be added if new or can also replace an existing one\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"}}},\"body\":{\"description\":\"The template definition\",\"required\":true}}}',\r\n);\r\nconst def_indices_recovery = JSON.parse(\r\n    '{\"indices.recovery\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-recovery.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_recovery\",\"paths\":[\"/_recovery\",\"/{index}/_recovery\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"detailed\":{\"type\":\"boolean\",\"description\":\"Whether to display detailed information about shard recovery\",\"default\":false},\"active_only\":{\"type\":\"boolean\",\"description\":\"Display only those recoveries that are currently on-going\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_refresh = JSON.parse(\r\n    '{\"indices.refresh\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html\",\"methods\":[\"POST\",\"GET\"],\"url\":{\"path\":\"/_refresh\",\"paths\":[\"/_refresh\",\"/{index}/_refresh\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_rollover = JSON.parse(\r\n    '{\"indices.rollover\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{alias}/_rollover\",\"paths\":[\"/{alias}/_rollover\",\"/{alias}/_rollover/{new_index}\"],\"parts\":{\"alias\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the alias to rollover\"},\"new_index\":{\"type\":\"string\",\"required\":false,\"description\":\"The name of the rollover index\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"dry_run\":{\"type\":\"boolean\",\"description\":\"If set to true the rollover action will only be validated but not actually performed even if a condition matches. The default is false\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for on the newly created rollover index before the operation returns.\"}}},\"body\":{\"description\":\"The conditions that needs to be met for executing rollover\"}}}',\r\n);\r\nconst def_indices_segments = JSON.parse(\r\n    '{\"indices.segments\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-segments.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_segments\",\"paths\":[\"/_segments\",\"/{index}/_segments\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"verbose\":{\"type\":\"boolean\",\"description\":\"Includes detailed memory usage by Lucene.\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_shard_stores = JSON.parse(\r\n    '{\"indices.shard_stores\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shards-stores.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_shard_stores\",\"paths\":[\"/_shard_stores\",\"/{index}/_shard_stores\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"status\":{\"type\":\"list\",\"options\":[\"green\",\"yellow\",\"red\",\"all\"],\"description\":\"A comma-separated list of statuses used to filter on shards to get store information for\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_shrink = JSON.parse(\r\n    '{\"indices.shrink\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shrink-index.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/{index}/_shrink/{target}\",\"paths\":[\"/{index}/_shrink/{target}\"],\"parts\":{\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the source index to shrink\"},\"target\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the target index to shrink into\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Set the number of active shards to wait for on the shrunken index before the operation returns.\"}}},\"body\":{\"description\":\"The configuration for the target index (`settings` and `aliases`)\"}}}',\r\n);\r\nconst def_indices_stats = JSON.parse(\r\n    '{\"indices.stats\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_stats\",\"paths\":[\"/_stats\",\"/_stats/{metric}\",\"/{index}/_stats\",\"/{index}/_stats/{metric}\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"},\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned the specific metrics.\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"list\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"level\":{\"type\":\"enum\",\"description\":\"Return stats aggregated at cluster, index or shard level\",\"options\":[\"cluster\",\"indices\",\"shards\"],\"default\":\"indices\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"},\"include_segment_file_sizes\":{\"type\":\"boolean\",\"description\":\"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_indices_update_aliases = JSON.parse(\r\n    '{\"indices.update_aliases\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_aliases\",\"paths\":[\"/_aliases\"],\"parts\":{},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Request timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"}}},\"body\":{\"description\":\"The definition of `actions` to perform\",\"required\":true}}}',\r\n);\r\nconst def_indices_upgrade = JSON.parse(\r\n    '{\"indices.upgrade\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_upgrade\",\"paths\":[\"/_upgrade\",\"/{index}/_upgrade\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Specify whether the request should block until the all segments are upgraded (default: false)\"},\"only_ancient_segments\":{\"type\":\"boolean\",\"description\":\"If true, only ancient (an older Lucene major release) segments will be upgraded\"}}},\"body\":null}}',\r\n);\r\nconst def_indices_validate_query = JSON.parse(\r\n    '{\"indices.validate_query\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_validate/query\",\"paths\":[\"/_validate/query\",\"/{index}/_validate/query\",\"/{index}/{type}/_validate/query\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"}},\"params\":{\"explain\":{\"type\":\"boolean\",\"description\":\"Return detailed information about the error\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"operation_threading\":{\"description\":\"TODO: ?\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"rewrite\":{\"type\":\"boolean\",\"description\":\"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"},\"all_shards\":{\"type\":\"boolean\",\"description\":\"Execute validation on all shards instead of one random shard per index\"}}},\"body\":{\"description\":\"The query definition specified with the Query DSL\"}}}',\r\n);\r\nconst def_info = JSON.parse(\r\n    '{\"info\":{\"documentation\":\"http://www.elastic.co/guide/\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_ingest_delete_pipeline = JSON.parse(\r\n    '{\"ingest.delete_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":true}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_ingest_get_pipeline = JSON.parse(\r\n    '{\"ingest.get_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline\",\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Comma separated list of pipeline ids. Wildcards supported\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_ingest_processor_grok = JSON.parse(\r\n    '{\"ingest.processor.grok\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_ingest/processor/grok\",\"paths\":[\"/_ingest/processor/grok\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_ingest_put_pipeline = JSON.parse(\r\n    '{\"ingest.put_pipeline\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"PUT\"],\"url\":{\"path\":\"/_ingest/pipeline/{id}\",\"paths\":[\"/_ingest/pipeline/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":true}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":{\"description\":\"The ingest definition\",\"required\":true}}}',\r\n);\r\nconst def_ingest_simulate = JSON.parse(\r\n    '{\"ingest.simulate\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_ingest/pipeline/_simulate\",\"paths\":[\"/_ingest/pipeline/_simulate\",\"/_ingest/pipeline/{id}/_simulate\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Pipeline ID\",\"required\":false}},\"params\":{\"verbose\":{\"type\":\"boolean\",\"description\":\"Verbose mode. Display data output for each processor in executed pipeline\",\"default\":false}}},\"body\":{\"description\":\"The simulate definition\",\"required\":true}}}',\r\n);\r\nconst def_mget = JSON.parse(\r\n    '{\"mget\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mget\",\"paths\":[\"/_mget\",\"/{index}/_mget\",\"/{index}/{type}/_mget\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document\"}},\"params\":{\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return in the response\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specify whether to perform the operation in realtime or search mode\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Refresh the shard containing the document before performing the operation\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"}}},\"body\":{\"description\":\"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\"required\":true}}}',\r\n);\r\nconst def_msearch = JSON.parse(\r\n    '{\"msearch\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_msearch\",\"paths\":[\"/_msearch\",\"/{index}/_msearch\",\"/{index}/{type}/_msearch\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to use as default\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to use as default\"}},\"params\":{\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"max_concurrent_searches\":{\"type\":\"number\",\"description\":\"Controls the maximum number of concurrent searches the multi search api will execute\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"pre_filter_shard_size\":{\"type\":\"number\",\"description\":\"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the\\xA0number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it\\'s rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\"default\":128}}},\"body\":{\"description\":\"The request definitions (metadata-search request definition pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_msearch_template = JSON.parse(\r\n    '{\"msearch_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_msearch/template\",\"paths\":[\"/_msearch/template\",\"/{index}/_msearch/template\",\"/{index}/{type}/_msearch/template\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to use as default\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to use as default\"}},\"params\":{\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"max_concurrent_searches\":{\"type\":\"number\",\"description\":\"Controls the maximum number of concurrent searches the multi search api will execute\"}}},\"body\":{\"description\":\"The request definitions (metadata-search request definition pairs), separated by newlines\",\"required\":true,\"serialize\":\"bulk\"}}}',\r\n);\r\nconst def_mtermvectors = JSON.parse(\r\n    '{\"mtermvectors\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_mtermvectors\",\"paths\":[\"/_mtermvectors\",\"/{index}/_mtermvectors\",\"/{index}/{type}/_mtermvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\"},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\"}},\"params\":{\"ids\":{\"type\":\"list\",\"description\":\"A comma-separated list of documents ids. You must define ids as parameter or set \\\\\"ids\\\\\" or \\\\\"docs\\\\\" in the request body\",\"required\":false},\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\\\"params\\\\\" or \\\\\"docs\\\\\".\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_nodes_hot_threads = JSON.parse(\r\n    '{\"nodes.hot_threads\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-hot-threads.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/hot_threads\",\"paths\":[\"/_cluster/nodes/hotthreads\",\"/_cluster/nodes/hot_threads\",\"/_cluster/nodes/{node_id}/hotthreads\",\"/_cluster/nodes/{node_id}/hot_threads\",\"/_nodes/hotthreads\",\"/_nodes/hot_threads\",\"/_nodes/{node_id}/hotthreads\",\"/_nodes/{node_id}/hot_threads\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"interval\":{\"type\":\"time\",\"description\":\"The interval for the second sampling of threads\"},\"snapshots\":{\"type\":\"number\",\"description\":\"Number of samples of thread stacktrace (default: 10)\"},\"threads\":{\"type\":\"number\",\"description\":\"Specify the number of threads to provide information for (default: 3)\"},\"ignore_idle_threads\":{\"type\":\"boolean\",\"description\":\"Don\\'t show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"},\"type\":{\"type\":\"enum\",\"options\":[\"cpu\",\"wait\",\"block\"],\"description\":\"The type to sample (default: cpu)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_info = JSON.parse(\r\n    '{\"nodes.info\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-info.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes\",\"paths\":[\"/_nodes\",\"/_nodes/{node_id}\",\"/_nodes/{metric}\",\"/_nodes/{node_id}/{metric}\"],\"parts\":{\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"metric\":{\"type\":\"list\",\"options\":[\"settings\",\"os\",\"process\",\"jvm\",\"thread_pool\",\"transport\",\"http\",\"plugins\",\"ingest\"],\"description\":\"A comma-separated list of metrics you wish returned. Leave empty to return all.\"}},\"params\":{\"flat_settings\":{\"type\":\"boolean\",\"description\":\"Return settings in flat format (default: false)\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_nodes_stats = JSON.parse(\r\n    '{\"nodes.stats\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-stats.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/stats\",\"paths\":[\"/_nodes/stats\",\"/_nodes/{node_id}/stats\",\"/_nodes/stats/{metric}\",\"/_nodes/{node_id}/stats/{metric}\",\"/_nodes/stats/{metric}/{index_metric}\",\"/_nodes/{node_id}/stats/{metric}/{index_metric}\"],\"parts\":{\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"breaker\",\"fs\",\"http\",\"indices\",\"jvm\",\"os\",\"process\",\"thread_pool\",\"transport\",\"discovery\"],\"description\":\"Limit the information returned to the specified metrics\"},\"index_metric\":{\"type\":\"list\",\"options\":[\"_all\",\"completion\",\"docs\",\"fielddata\",\"query_cache\",\"flush\",\"get\",\"indexing\",\"merge\",\"request_cache\",\"refresh\",\"search\",\"segments\",\"store\",\"warmer\",\"suggest\"],\"description\":\"Limit the information returned for `indices` metric to the specific index metrics. Isn\\'t used if `indices` (or `all`) metric isn\\'t specified.\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"completion_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"},\"fielddata_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"},\"groups\":{\"type\":\"boolean\",\"description\":\"A comma-separated list of search groups for `search` index metric\"},\"level\":{\"type\":\"enum\",\"description\":\"Return indices stats aggregated at index, node or shard level\",\"options\":[\"indices\",\"node\",\"shards\"],\"default\":\"node\"},\"types\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types for the `indexing` index metric\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"include_segment_file_sizes\":{\"type\":\"boolean\",\"description\":\"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\"default\":false}}},\"body\":null}}',\r\n);\r\nconst def_nodes_usage = JSON.parse(\r\n    '{\"nodes.usage\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-usage.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_nodes/usage\",\"paths\":[\"/_nodes/usage\",\"/_nodes/{node_id}/usage\",\"/_nodes/usage/{metric}\",\"/_nodes/{node_id}/usage/{metric}\"],\"parts\":{\"metric\":{\"type\":\"list\",\"options\":[\"_all\",\"rest_actions\"],\"description\":\"Limit the information returned to the specified metrics\"},\"node_id\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"}},\"params\":{\"human\":{\"type\":\"boolean\",\"description\":\"Whether to return time and byte values in human-readable format.\",\"default\":false},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_ping = JSON.parse(\r\n    '{\"ping\":{\"documentation\":\"http://www.elastic.co/guide/\",\"methods\":[\"HEAD\"],\"url\":{\"path\":\"/\",\"paths\":[\"/\"],\"parts\":{},\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_put_script = JSON.parse(\r\n    '{\"put_script\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_scripts/{id}\",\"paths\":[\"/_scripts/{id}\",\"/_scripts/{id}/{context}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"Script ID\",\"required\":true},\"context\":{\"type\":\"string\",\"description\":\"Script context\"}},\"params\":{\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"master_timeout\":{\"type\":\"time\",\"description\":\"Specify timeout for connection to master\"},\"context\":{\"type\":\"string\",\"description\":\"Context name to compile script against\"}}},\"body\":{\"description\":\"The document\",\"required\":true}}}',\r\n);\r\nconst def_reindex = JSON.parse(\r\n    '{\"reindex\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex\",\"paths\":[\"/_reindex\"],\"parts\":{},\"params\":{\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the reindex operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the reindex is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL and the prototype for the index request.\",\"required\":true}}}',\r\n);\r\nconst def_reindex_rethrottle = JSON.parse(\r\n    '{\"reindex_rethrottle\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_reindex/{task_id}/_rethrottle\",\"paths\":[\"/_reindex/{task_id}/_rethrottle\",\"/_update_by_query/{task_id}/_rethrottle\",\"/_delete_by_query/{task_id}/_rethrottle\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"The task id to rethrottle\"}},\"params\":{\"requests_per_second\":{\"type\":\"number\",\"required\":true,\"description\":\"The throttle to set on this request in floating sub-requests per second. -1 means set no throttle.\"}}},\"body\":null}}',\r\n);\r\nconst def_remote_info = JSON.parse(\r\n    '{\"remote.info\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-remote-info.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_remote/info\",\"paths\":[\"/_remote/info\"],\"params\":{}},\"body\":null}}',\r\n);\r\nconst def_render_search_template = JSON.parse(\r\n    '{\"render_search_template\":{\"documentation\":\"http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_render/template\",\"paths\":[\"/_render/template\",\"/_render/template/{id}\"],\"parts\":{\"id\":{\"type\":\"string\",\"description\":\"The id of the stored search template\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_scroll = JSON.parse(\r\n    '{\"scroll\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/scroll\",\"paths\":[\"/_search/scroll\",\"/_search/scroll/{scroll_id}\"],\"parts\":{\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID\"}},\"params\":{\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"scroll_id\":{\"type\":\"string\",\"description\":\"The scroll ID for scrolled search\"}}},\"body\":{\"description\":\"The scroll ID if not passed by URL or query parameter.\"}}}',\r\n);\r\nconst def_search = JSON.parse(\r\n    '{\"search\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search\",\"paths\":[\"/_search\",\"/{index}/_search\",\"/{index}/{type}/_search\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"stored_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of stored fields to return as part of a hit\"},\"docvalue_fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"suggest_field\":{\"type\":\"string\",\"description\":\"Specify which field to use for suggestions\"},\"suggest_mode\":{\"type\":\"enum\",\"options\":[\"missing\",\"popular\",\"always\"],\"default\":\"missing\",\"description\":\"Specify suggest mode\"},\"suggest_size\":{\"type\":\"number\",\"description\":\"How many suggestions to return in response\"},\"suggest_text\":{\"type\":\"string\",\"description\":\"The source text for which the suggestions should be returned\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"track_scores\":{\"type\":\"boolean\",\"description\":\"Whether to calculate and return scores even if they are not used for sorting\"},\"track_total_hits\":{\"type\":\"boolean\",\"description\":\"Indicate if the number of documents that match the query should be tracked\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"batched_reduce_size\":{\"type\":\"number\",\"description\":\"The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.\",\"default\":512},\"max_concurrent_shard_requests\":{\"type\":\"number\",\"description\":\"The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests\",\"default\":\"The default grows with the number of nodes in the cluster but is at most 256.\"},\"pre_filter_shard_size\":{\"type\":\"number\",\"description\":\"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the\\xA0number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it\\'s rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\"default\":128}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\nconst def_search_shards = JSON.parse(\r\n    '{\"search_shards\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/_search_shards\",\"paths\":[\"/_search_shards\",\"/{index}/_search_shards\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"}},\"params\":{\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"}}},\"body\":null}}',\r\n);\r\nconst def_search_template = JSON.parse(\r\n    '{\"search_template\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/_search/template\",\"paths\":[\"/_search/template\",\"/{index}/_search/template\",\"/{index}/{type}/_search/template\"],\"parts\":{\"index\":{\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"query_and_fetch\",\"dfs_query_then_fetch\",\"dfs_query_and_fetch\"],\"description\":\"Search operation type\"},\"explain\":{\"type\":\"boolean\",\"description\":\"Specify whether to return detailed information about score computation as part of a hit\"},\"profile\":{\"type\":\"boolean\",\"description\":\"Specify whether to profile the query execution\"},\"typed_keys\":{\"type\":\"boolean\",\"description\":\"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"}}},\"body\":{\"description\":\"The search definition template and its params\"}}}',\r\n);\r\nconst def_snapshot_create = JSON.parse(\r\n    '{\"snapshot.create\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"The snapshot definition\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_create_repository = JSON.parse(\r\n    '{\"snapshot.create_repository\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"PUT\",\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"verify\":{\"type\":\"boolean\",\"description\":\"Whether to verify the repository after creation\"}}},\"body\":{\"description\":\"The repository definition\",\"required\":true}}}',\r\n);\r\nconst def_snapshot_delete = JSON.parse(\r\n    '{\"snapshot.delete\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_delete_repository = JSON.parse(\r\n    '{\"snapshot.delete_repository\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"DELETE\"],\"url\":{\"path\":\"/_snapshot/{repository}\",\"paths\":[\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get = JSON.parse(\r\n    '{\"snapshot.get\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}\",\"paths\":[\"/_snapshot/{repository}/{snapshot}\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"required\":true,\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"},\"verbose\":{\"type\":\"boolean\",\"description\":\"Whether to show verbose snapshot info or only show the basic info found in the repository index blob\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_get_repository = JSON.parse(\r\n    '{\"snapshot.get_repository\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot\",\"paths\":[\"/_snapshot\",\"/_snapshot/{repository}\"],\"parts\":{\"repository\":{\"type\":\"list\",\"description\":\"A comma-separated list of repository names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"local\":{\"type\":\"boolean\",\"description\":\"Return local information, do not retrieve the state from master node (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_restore = JSON.parse(\r\n    '{\"snapshot.restore\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/{snapshot}/_restore\",\"paths\":[\"/_snapshot/{repository}/{snapshot}/_restore\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"string\",\"required\":true,\"description\":\"A snapshot name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Should this request wait until the operation has completed before returning\",\"default\":false}}},\"body\":{\"description\":\"Details of what to restore\",\"required\":false}}}',\r\n);\r\nconst def_snapshot_status = JSON.parse(\r\n    '{\"snapshot.status\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_snapshot/_status\",\"paths\":[\"/_snapshot/_status\",\"/_snapshot/{repository}/_status\",\"/_snapshot/{repository}/{snapshot}/_status\"],\"parts\":{\"repository\":{\"type\":\"string\",\"description\":\"A repository name\"},\"snapshot\":{\"type\":\"list\",\"description\":\"A comma-separated list of snapshot names\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"}}},\"body\":null}}',\r\n);\r\nconst def_snapshot_verify_repository = JSON.parse(\r\n    '{\"snapshot.verify_repository\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_snapshot/{repository}/_verify\",\"paths\":[\"/_snapshot/{repository}/_verify\"],\"parts\":{\"repository\":{\"type\":\"string\",\"required\":true,\"description\":\"A repository name\"}},\"params\":{\"master_timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout for connection to master node\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_cancel = JSON.parse(\r\n    '{\"tasks.cancel\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks/_cancel\",\"/_tasks/{task_id}/_cancel\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Cancel the task with specified task id (node_id:task_number)\"}},\"params\":{\"nodes\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent node.\"},\"parent_task_id\":{\"type\":\"string\",\"description\":\"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_get = JSON.parse(\r\n    '{\"tasks.get\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_tasks/{task_id}\",\"paths\":[\"/_tasks/{task_id}\"],\"parts\":{\"task_id\":{\"type\":\"string\",\"description\":\"Return the task with specified id (node_id:task_number)\"}},\"params\":{\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Wait for the matching tasks to complete (default: false)\"}}},\"body\":null}}',\r\n);\r\nconst def_tasks_list = JSON.parse(\r\n    '{\"tasks.list\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\"methods\":[\"GET\"],\"url\":{\"path\":\"/_tasks\",\"paths\":[\"/_tasks\"],\"parts\":{},\"params\":{\"nodes\":{\"type\":\"list\",\"description\":\"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you\\'re connecting to, leave empty to get information from all nodes\"},\"actions\":{\"type\":\"list\",\"description\":\"A comma-separated list of actions that should be returned. Leave empty to return all.\"},\"detailed\":{\"type\":\"boolean\",\"description\":\"Return detailed task information (default: false)\"},\"parent_node\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent node.\"},\"parent_task_id\":{\"type\":\"string\",\"description\":\"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"},\"wait_for_completion\":{\"type\":\"boolean\",\"description\":\"Wait for the matching tasks to complete (default: false)\"},\"group_by\":{\"type\":\"enum\",\"description\":\"Group tasks by nodes or parent/child relationships\",\"options\":[\"nodes\",\"parents\"],\"default\":\"nodes\"}}},\"body\":null}}',\r\n);\r\nconst def_termvectors = JSON.parse(\r\n    '{\"termvectors\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html\",\"methods\":[\"GET\",\"POST\"],\"url\":{\"path\":\"/{index}/{type}/_termvectors\",\"paths\":[\"/{index}/{type}/_termvectors\",\"/{index}/{type}/{id}/_termvectors\"],\"parts\":{\"index\":{\"type\":\"string\",\"description\":\"The index in which the document resides.\",\"required\":true},\"type\":{\"type\":\"string\",\"description\":\"The type of the document.\",\"required\":true},\"id\":{\"type\":\"string\",\"description\":\"The id of the document, when not specified a doc param should be supplied.\"}},\"params\":{\"term_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if total term frequency and document frequency should be returned.\",\"default\":false,\"required\":false},\"field_statistics\":{\"type\":\"boolean\",\"description\":\"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\"default\":true,\"required\":false},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return.\",\"required\":false},\"offsets\":{\"type\":\"boolean\",\"description\":\"Specifies if term offsets should be returned.\",\"default\":true,\"required\":false},\"positions\":{\"type\":\"boolean\",\"description\":\"Specifies if term positions should be returned.\",\"default\":true,\"required\":false},\"payloads\":{\"type\":\"boolean\",\"description\":\"Specifies if term payloads should be returned.\",\"default\":true,\"required\":false},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random).\",\"required\":false},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value.\",\"required\":false},\"parent\":{\"type\":\"string\",\"description\":\"Parent id of documents.\",\"required\":false},\"realtime\":{\"type\":\"boolean\",\"description\":\"Specifies if request is real-time as opposed to near-real-time (default: true).\",\"required\":false},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"external\",\"external_gte\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"Define parameters and or supply a document to get termvectors for. See documentation.\",\"required\":false}}}',\r\n);\r\nconst def_update = JSON.parse(\r\n    '{\"update\":{\"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/{type}/{id}/_update\",\"paths\":[\"/{index}/{type}/{id}/_update\"],\"parts\":{\"id\":{\"type\":\"string\",\"required\":true,\"description\":\"Document ID\"},\"index\":{\"type\":\"string\",\"required\":true,\"description\":\"The name of the index\"},\"type\":{\"type\":\"string\",\"required\":true,\"description\":\"The type of the document\"}},\"params\":{\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"fields\":{\"type\":\"list\",\"description\":\"A comma-separated list of fields to return in the response\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"lang\":{\"type\":\"string\",\"description\":\"The script language (default: painless)\"},\"parent\":{\"type\":\"string\",\"description\":\"ID of the parent document. Is is only used for routing and when for the upsert request\"},\"refresh\":{\"type\":\"enum\",\"options\":[\"true\",\"false\",\"wait_for\"],\"description\":\"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"},\"retry_on_conflict\":{\"type\":\"number\",\"description\":\"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"},\"routing\":{\"type\":\"string\",\"description\":\"Specific routing value\"},\"timeout\":{\"type\":\"time\",\"description\":\"Explicit operation timeout\"},\"timestamp\":{\"type\":\"time\",\"description\":\"Explicit timestamp for the document\"},\"ttl\":{\"type\":\"time\",\"description\":\"Expiration time for the document\"},\"version\":{\"type\":\"number\",\"description\":\"Explicit version number for concurrency control\"},\"version_type\":{\"type\":\"enum\",\"options\":[\"internal\",\"force\"],\"description\":\"Specific version type\"}}},\"body\":{\"description\":\"The request definition using either `script` or partial `doc`\"}}}',\r\n);\r\nconst def_update_by_query = JSON.parse(\r\n    '{\"update_by_query\":{\"documentation\":\"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update-by-query.html\",\"methods\":[\"POST\"],\"url\":{\"path\":\"/{index}/_update_by_query\",\"paths\":[\"/{index}/_update_by_query\",\"/{index}/{type}/_update_by_query\"],\"comment\":\"most things below this are just copied from search.json\",\"parts\":{\"index\":{\"required\":true,\"type\":\"list\",\"description\":\"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"},\"type\":{\"type\":\"list\",\"description\":\"A comma-separated list of document types to search; leave empty to perform the operation on all types\"}},\"params\":{\"analyzer\":{\"type\":\"string\",\"description\":\"The analyzer to use for the query string\"},\"analyze_wildcard\":{\"type\":\"boolean\",\"description\":\"Specify whether wildcard and prefix queries should be analyzed (default: false)\"},\"default_operator\":{\"type\":\"enum\",\"options\":[\"AND\",\"OR\"],\"default\":\"OR\",\"description\":\"The default operator for query string query (AND or OR)\"},\"df\":{\"type\":\"string\",\"description\":\"The field to use as default where no field prefix is given in the query string\"},\"from\":{\"type\":\"number\",\"description\":\"Starting offset (default: 0)\"},\"ignore_unavailable\":{\"type\":\"boolean\",\"description\":\"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"},\"allow_no_indices\":{\"type\":\"boolean\",\"description\":\"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"},\"conflicts\":{\"note\":\"This is not copied from search\",\"type\":\"enum\",\"options\":[\"abort\",\"proceed\"],\"default\":\"abort\",\"description\":\"What to do when the update by query hits version conflicts?\"},\"expand_wildcards\":{\"type\":\"enum\",\"options\":[\"open\",\"closed\",\"none\",\"all\"],\"default\":\"open\",\"description\":\"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"},\"lenient\":{\"type\":\"boolean\",\"description\":\"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"},\"pipeline\":{\"type\":\"string\",\"description\":\"Ingest pipeline to set on index requests made by this action. (default: none)\"},\"preference\":{\"type\":\"string\",\"description\":\"Specify the node or shard the operation should be performed on (default: random)\"},\"q\":{\"type\":\"string\",\"description\":\"Query in the Lucene query string syntax\"},\"routing\":{\"type\":\"list\",\"description\":\"A comma-separated list of specific routing values\"},\"scroll\":{\"type\":\"time\",\"description\":\"Specify how long a consistent view of the index should be maintained for scrolled search\"},\"search_type\":{\"type\":\"enum\",\"options\":[\"query_then_fetch\",\"dfs_query_then_fetch\"],\"description\":\"Search operation type\"},\"search_timeout\":{\"type\":\"time\",\"description\":\"Explicit timeout for each search request. Defaults to no timeout.\"},\"size\":{\"type\":\"number\",\"description\":\"Number of hits to return (default: 10)\"},\"sort\":{\"type\":\"list\",\"description\":\"A comma-separated list of <field>:<direction> pairs\"},\"_source\":{\"type\":\"list\",\"description\":\"True or false to return the _source field or not, or a list of fields to return\"},\"_source_exclude\":{\"type\":\"list\",\"description\":\"A list of fields to exclude from the returned _source field\"},\"_source_include\":{\"type\":\"list\",\"description\":\"A list of fields to extract and return from the _source field\"},\"terminate_after\":{\"type\":\"number\",\"description\":\"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"},\"stats\":{\"type\":\"list\",\"description\":\"Specific \\'tag\\' of the request for logging and statistical purposes\"},\"version\":{\"type\":\"boolean\",\"description\":\"Specify whether to return document version as part of a hit\"},\"version_type\":{\"type\":\"boolean\",\"description\":\"Should the document increment the version number (internal) on hit or not (reindex)\"},\"request_cache\":{\"type\":\"boolean\",\"description\":\"Specify if request cache should be used for this request or not, defaults to index level setting\"},\"refresh\":{\"type\":\"boolean\",\"description\":\"Should the effected indexes be refreshed?\"},\"timeout\":{\"type\":\"time\",\"default\":\"1m\",\"description\":\"Time each individual bulk request should wait for shards that are unavailable.\"},\"wait_for_active_shards\":{\"type\":\"string\",\"description\":\"Sets the number of shard copies that must be active before proceeding with the update by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"},\"scroll_size\":{\"type\":\"number\",\"defaut_value\":100,\"description\":\"Size on the scroll request powering the update_by_query\"},\"wait_for_completion\":{\"type\":\"boolean\",\"default\":true,\"description\":\"Should the request should block until the update by query operation is complete.\"},\"requests_per_second\":{\"type\":\"number\",\"default\":0,\"description\":\"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"},\"slices\":{\"type\":\"number\",\"default\":1,\"description\":\"The number of slices this task should be divided into. Defaults to 1 meaning the task isn\\'t sliced into subtasks.\"}}},\"body\":{\"description\":\"The search definition using the Query DSL\"}}}',\r\n);\r\n\r\nexport default {\r\n    _common: def__common,\r\n    bulk: def_bulk['bulk'],\r\n    'cat.aliases': def_cat_aliases['cat.aliases'],\r\n    'cat.allocation': def_cat_allocation['cat.allocation'],\r\n    'cat.count': def_cat_count['cat.count'],\r\n    'cat.fielddata': def_cat_fielddata['cat.fielddata'],\r\n    'cat.health': def_cat_health['cat.health'],\r\n    'cat.help': def_cat_help['cat.help'],\r\n    'cat.indices': def_cat_indices['cat.indices'],\r\n    'cat.master': def_cat_master['cat.master'],\r\n    'cat.nodeattrs': def_cat_nodeattrs['cat.nodeattrs'],\r\n    'cat.nodes': def_cat_nodes['cat.nodes'],\r\n    'cat.pending_tasks': def_cat_pending_tasks['cat.pending_tasks'],\r\n    'cat.plugins': def_cat_plugins['cat.plugins'],\r\n    'cat.recovery': def_cat_recovery['cat.recovery'],\r\n    'cat.repositories': def_cat_repositories['cat.repositories'],\r\n    'cat.segments': def_cat_segments['cat.segments'],\r\n    'cat.shards': def_cat_shards['cat.shards'],\r\n    'cat.snapshots': def_cat_snapshots['cat.snapshots'],\r\n    'cat.tasks': def_cat_tasks['cat.tasks'],\r\n    'cat.templates': def_cat_templates['cat.templates'],\r\n    'cat.thread_pool': def_cat_thread_pool['cat.thread_pool'],\r\n    clear_scroll: def_clear_scroll['clear_scroll'],\r\n    'cluster.allocation_explain': def_cluster_allocation_explain['cluster.allocation_explain'],\r\n    'cluster.get_settings': def_cluster_get_settings['cluster.get_settings'],\r\n    'cluster.health': def_cluster_health['cluster.health'],\r\n    'cluster.pending_tasks': def_cluster_pending_tasks['cluster.pending_tasks'],\r\n    'cluster.put_settings': def_cluster_put_settings['cluster.put_settings'],\r\n    'cluster.reroute': def_cluster_reroute['cluster.reroute'],\r\n    'cluster.state': def_cluster_state['cluster.state'],\r\n    'cluster.stats': def_cluster_stats['cluster.stats'],\r\n    count: def_count['count'],\r\n    create: def_create['create'],\r\n    delete: def_delete['delete'],\r\n    delete_by_query: def_delete_by_query['delete_by_query'],\r\n    delete_script: def_delete_script['delete_script'],\r\n    exists: def_exists['exists'],\r\n    exists_source: def_exists_source['exists_source'],\r\n    explain: def_explain['explain'],\r\n    field_caps: def_field_caps['field_caps'],\r\n    get: def_get['get'],\r\n    get_script: def_get_script['get_script'],\r\n    get_source: def_get_source['get_source'],\r\n    index: def_index['index'],\r\n    'indices.analyze': def_indices_analyze['indices.analyze'],\r\n    'indices.clear_cache': def_indices_clear_cache['indices.clear_cache'],\r\n    'indices.close': def_indices_close['indices.close'],\r\n    'indices.create': def_indices_create['indices.create'],\r\n    'indices.delete': def_indices_delete['indices.delete'],\r\n    'indices.delete_alias': def_indices_delete_alias['indices.delete_alias'],\r\n    'indices.delete_template': def_indices_delete_template['indices.delete_template'],\r\n    'indices.exists': def_indices_exists['indices.exists'],\r\n    'indices.exists_alias': def_indices_exists_alias['indices.exists_alias'],\r\n    'indices.exists_template': def_indices_exists_template['indices.exists_template'],\r\n    'indices.exists_type': def_indices_exists_type['indices.exists_type'],\r\n    'indices.flush': def_indices_flush['indices.flush'],\r\n    'indices.flush_synced': def_indices_flush_synced['indices.flush_synced'],\r\n    'indices.forcemerge': def_indices_forcemerge['indices.forcemerge'],\r\n    'indices.get': def_indices_get['indices.get'],\r\n    'indices.get_alias': def_indices_get_alias['indices.get_alias'],\r\n    'indices.get_field_mapping': def_indices_get_field_mapping['indices.get_field_mapping'],\r\n    'indices.get_mapping': def_indices_get_mapping['indices.get_mapping'],\r\n    'indices.get_settings': def_indices_get_settings['indices.get_settings'],\r\n    'indices.get_template': def_indices_get_template['indices.get_template'],\r\n    'indices.get_upgrade': def_indices_get_upgrade['indices.get_upgrade'],\r\n    'indices.open': def_indices_open['indices.open'],\r\n    'indices.put_alias': def_indices_put_alias['indices.put_alias'],\r\n    'indices.put_mapping': def_indices_put_mapping['indices.put_mapping'],\r\n    'indices.put_settings': def_indices_put_settings['indices.put_settings'],\r\n    'indices.put_template': def_indices_put_template['indices.put_template'],\r\n    'indices.recovery': def_indices_recovery['indices.recovery'],\r\n    'indices.refresh': def_indices_refresh['indices.refresh'],\r\n    'indices.rollover': def_indices_rollover['indices.rollover'],\r\n    'indices.segments': def_indices_segments['indices.segments'],\r\n    'indices.shard_stores': def_indices_shard_stores['indices.shard_stores'],\r\n    'indices.shrink': def_indices_shrink['indices.shrink'],\r\n    'indices.stats': def_indices_stats['indices.stats'],\r\n    'indices.update_aliases': def_indices_update_aliases['indices.update_aliases'],\r\n    'indices.upgrade': def_indices_upgrade['indices.upgrade'],\r\n    'indices.validate_query': def_indices_validate_query['indices.validate_query'],\r\n    info: def_info['info'],\r\n    'ingest.delete_pipeline': def_ingest_delete_pipeline['ingest.delete_pipeline'],\r\n    'ingest.get_pipeline': def_ingest_get_pipeline['ingest.get_pipeline'],\r\n    'ingest.processor.grok': def_ingest_processor_grok['ingest.processor.grok'],\r\n    'ingest.put_pipeline': def_ingest_put_pipeline['ingest.put_pipeline'],\r\n    'ingest.simulate': def_ingest_simulate['ingest.simulate'],\r\n    mget: def_mget['mget'],\r\n    msearch: def_msearch['msearch'],\r\n    msearch_template: def_msearch_template['msearch_template'],\r\n    mtermvectors: def_mtermvectors['mtermvectors'],\r\n    'nodes.hot_threads': def_nodes_hot_threads['nodes.hot_threads'],\r\n    'nodes.info': def_nodes_info['nodes.info'],\r\n    'nodes.stats': def_nodes_stats['nodes.stats'],\r\n    'nodes.usage': def_nodes_usage['nodes.usage'],\r\n    ping: def_ping['ping'],\r\n    put_script: def_put_script['put_script'],\r\n    reindex: def_reindex['reindex'],\r\n    reindex_rethrottle: def_reindex_rethrottle['reindex_rethrottle'],\r\n    'remote.info': def_remote_info['remote.info'],\r\n    render_search_template: def_render_search_template['render_search_template'],\r\n    scroll: def_scroll['scroll'],\r\n    search: def_search['search'],\r\n    search_shards: def_search_shards['search_shards'],\r\n    search_template: def_search_template['search_template'],\r\n    'snapshot.create': def_snapshot_create['snapshot.create'],\r\n    'snapshot.create_repository': def_snapshot_create_repository['snapshot.create_repository'],\r\n    'snapshot.delete': def_snapshot_delete['snapshot.delete'],\r\n    'snapshot.delete_repository': def_snapshot_delete_repository['snapshot.delete_repository'],\r\n    'snapshot.get': def_snapshot_get['snapshot.get'],\r\n    'snapshot.get_repository': def_snapshot_get_repository['snapshot.get_repository'],\r\n    'snapshot.restore': def_snapshot_restore['snapshot.restore'],\r\n    'snapshot.status': def_snapshot_status['snapshot.status'],\r\n    'snapshot.verify_repository': def_snapshot_verify_repository['snapshot.verify_repository'],\r\n    'tasks.cancel': def_tasks_cancel['tasks.cancel'],\r\n    'tasks.get': def_tasks_get['tasks.get'],\r\n    'tasks.list': def_tasks_list['tasks.list'],\r\n    termvectors: def_termvectors['termvectors'],\r\n    update: def_update['update'],\r\n    update_by_query: def_update_by_query['update_by_query'],\r\n};\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.analyze.json",
    "content": "{\r\n  \"indices.analyze\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-analyze.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_analyze\",\r\n      \"paths\": [\"/_analyze\", \"/{index}/_analyze\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index to scope the operation\"\r\n        },\r\n        \"prefer_local\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)\"\r\n        },\r\n        \"format\": {\r\n          \"type\": \"enum\",\r\n          \"options\" : [\"detailed\",\"text\"],\r\n          \"default\": \"detailed\",\r\n          \"description\": \"Format of the output\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Define analyzer/tokenizer parameters and the text on which the analysis should be performed\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.clear_cache.json",
    "content": "{\r\n  \"indices.clear_cache\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-clearcache.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_cache/clear\",\r\n      \"paths\": [\"/_cache/clear\", \"/{index}/_cache/clear\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"field_data\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fielddata\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear field data\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to clear when using the `field_data` parameter (default: all)\"\r\n        },\r\n        \"query\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear query caches\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index name to limit the operation\"\r\n        },\r\n        \"recycler\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear the recycler cache\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear request cache\"\r\n        },\r\n        \"request\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Clear request cache\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.close.json",
    "content": "{\r\n  \"indices.close\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_close\",\r\n      \"paths\": [\"/{index}/_close\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to close\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.create.json",
    "content": "{\r\n  \"indices.create\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for before the operation returns.\" \r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The configuration for the index (`settings` and `mappings`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.delete.json",
    "content": "{\r\n  \"indices.delete\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [\"/{index}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of indices to delete; use `_all` or `*` string to delete all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [ \"open\", \"closed\", \"none\", \"all\" ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.delete_alias.json",
    "content": "{\r\n  \"indices.delete_alias\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names (supports wildcards); use `_all` for all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.delete_template.json",
    "content": "{\r\n  \"indices.delete_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.exists.json",
    "content": "{\r\n  \"indices.exists\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html\",\r\n    \"methods\": [ \"HEAD\" ],\r\n    \"url\": {\r\n      \"path\": \"/{index}\",\r\n      \"paths\": [ \"/{index}\" ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\": \"list\",\r\n          \"required\": true,\r\n          \"description\": \"A comma-separated list of index names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [ \"open\", \"closed\", \"none\", \"all\" ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.exists_alias.json",
    "content": "{\r\n  \"indices.exists_alias\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/{name}\",\r\n      \"paths\": [\"/_alias/{name}\", \"/{index}/_alias/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"all\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.exists_template.json",
    "content": "{\r\n  \"indices.exists_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [ \"/_template/{name}\" ],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"list\",\r\n          \"required\": true,\r\n          \"description\": \"The comma separated names of the index templates\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.exists_type.json",
    "content": "{\r\n  \"indices.exists_type\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-types-exists.html\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_mapping/{type}\",\r\n      \"paths\": [\"/{index}/_mapping/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names; use `_all` to check the types across all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of document types to check\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.flush.json",
    "content": "{\r\n  \"indices.flush\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush\",\r\n      \"paths\": [\"/_flush\", \"/{index}/_flush\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"force\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether a flush should be forced even if it is not necessarily needed ie. if no changes will be committed to the index. This is useful if transaction log IDs should be incremented even if no uncommitted changes are present. (This setting can be considered as internal)\"\r\n        },\r\n        \"wait_if_ongoing\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If set to true the flush operation will block until the flush can be executed if another flush operation is already executing. The default is true. If set to false the flush will be skipped iff if another flush operation is already running.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.flush_synced.json",
    "content": "{\r\n  \"indices.flush_synced\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-synced-flush.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_flush/synced\",\r\n      \"paths\": [\r\n        \"/_flush/synced\",\r\n        \"/{index}/_flush/synced\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string for all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\r\n            \"open\",\r\n            \"closed\",\r\n            \"none\",\r\n            \"all\"\r\n          ],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.forcemerge.json",
    "content": "{\r\n  \"indices.forcemerge\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_forcemerge\",\r\n      \"paths\": [\"/_forcemerge\", \"/{index}/_forcemerge\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flush\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the index should be flushed after performing the operation (default: true)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"max_num_segments\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of segments the index should be merged into (default: dynamic)\"\r\n        },\r\n        \"only_expunge_deletes\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the operation should only expunge deleted documents\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"wait_for_merge\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether the request should block until the merge process is finished (default: true)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get.json",
    "content": "{\r\n  \"indices.get\":{\r\n    \"documentation\":\"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html\",\r\n    \"methods\":[ \"GET\" ],\r\n    \"url\":{\r\n      \"path\":\"/{index}\",\r\n      \"paths\":[ \"/{index}\" ],\r\n      \"parts\":{\r\n        \"index\":{\r\n          \"type\":\"list\",\r\n          \"required\" : true,\r\n          \"description\":\"A comma-separated list of index names\"\r\n        }\r\n      },\r\n      \"params\":{\r\n        \"local\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore unavailable indexes (default: false)\"\r\n        },\r\n        \"allow_no_indices\":{\r\n          \"type\":\"boolean\",\r\n          \"description\":\"Ignore if a wildcard expression resolves to no concrete indices (default: false)\"\r\n        },\r\n        \"expand_wildcards\":{\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\":\"Whether wildcard expressions should get expanded to open or closed indices (default: open)\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_alias.json",
    "content": "{\r\n  \"indices.get_alias\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_alias/\",\r\n      \"paths\": [ \"/_alias\", \"/_alias/{name}\", \"/{index}/_alias/{name}\", \"/{index}/_alias\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to filter aliases\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of alias names to return\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"all\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_field_mapping.json",
    "content": "{\r\n  \"indices.get_field_mapping\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping/field/{fields}\",\r\n      \"paths\": [\"/_mapping/field/{fields}\", \"/{index}/_mapping/field/{fields}\", \"/_mapping/{type}/field/{fields}\", \"/{index}/_mapping/{type}/field/{fields}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"include_defaults\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether the default mapping values should be returned as well\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_mapping.json",
    "content": "{\r\n  \"indices.get_mapping\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_mapping\",\r\n      \"paths\": [\"/_mapping\", \"/{index}/_mapping\", \"/_mapping/{type}\", \"/{index}/_mapping/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_settings.json",
    "content": "{\r\n  \"indices.get_settings\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\", \"/{index}/_settings/{name}\", \"/_settings/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"The name of the settings that should be included\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : [\"open\",\"closed\"],\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"include_defaults\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to return all default setting for each of the indices.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_template.json",
    "content": "{\r\n  \"indices.get_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\r\n        \"/_template\",\r\n        \"/_template/{name}\"\r\n      ],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\": \"list\",\r\n          \"required\": false,\r\n          \"description\": \"The comma separated names of the index templates\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.get_upgrade.json",
    "content": "{\r\n  \"indices.get_upgrade\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.open.json",
    "content": "{\r\n  \"indices.open\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-open-close.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_open\",\r\n      \"paths\": [\"/{index}/_open\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma separated list of indices to open\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n           \"type\" : \"enum\",\r\n           \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n           \"default\" : \"closed\",\r\n           \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.put_alias.json",
    "content": "{\r\n  \"indices.put_alias\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_alias/{name}\",\r\n      \"paths\": [\"/{index}/_alias/{name}\", \"/{index}/_aliases/{name}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"required\" : true,\r\n          \"description\" : \"A comma-separated list of index names the alias should point to (supports wildcards); use `_all` to perform the operation on all indices.\"\r\n        },\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the alias to be created or updated\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timestamp for the document\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The settings for the alias, such as `routing` or `filter`\",\r\n      \"required\"    : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.put_mapping.json",
    "content": "{\r\n  \"indices.put_mapping\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/_mapping\",\r\n      \"paths\": [\"/{index}/{type}/_mapping\", \"/{index}/_mapping/{type}\", \"/_mapping/{type}\", \"/{index}/{type}/_mappings\", \"/{index}/_mappings/{type}\", \"/_mappings/{type}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices.\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the document type\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n          \"default\" : \"open\",\r\n          \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"update_all_types\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update the mapping for all fields with the same name across all types or not\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The mapping definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.put_settings.json",
    "content": "{\r\n  \"indices.put_settings\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html\",\r\n    \"methods\": [\"PUT\"],\r\n    \"url\": {\r\n      \"path\": \"/_settings\",\r\n      \"paths\": [\"/_settings\", \"/{index}/_settings\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Specify timeout for connection to master\"\r\n        },\r\n        \"preserve_existing\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to update existing settings. If set to `true` existing settings on an index remain unchanged, the default is `false`\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"open\", \"closed\",\"none\",\"all\"],\r\n          \"default\": \"open\",\r\n          \"description\": \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n          \"flat_settings\": {\r\n              \"type\": \"boolean\",\r\n              \"description\": \"Return settings in flat format (default: false)\"\r\n          }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The index settings to be updated\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.put_template.json",
    "content": "{\r\n  \"indices.put_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_template/{name}\",\r\n      \"paths\": [\"/_template/{name}\"],\r\n      \"parts\": {\r\n        \"name\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the template\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"order\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)\"\r\n        },\r\n        \"create\" : {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether the index template should only be added if new or can also replace an existing one\",\r\n            \"default\" : false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"flat_settings\": {\r\n           \"type\": \"boolean\",\r\n           \"description\": \"Return settings in flat format (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The template definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.recovery.json",
    "content": "{\r\n    \"indices.recovery\" : {\r\n        \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-recovery.html\",\r\n        \"methods\": [\"GET\"],\r\n        \"url\": {\r\n            \"path\": \"/_recovery\",\r\n            \"paths\": [\"/_recovery\", \"/{index}/_recovery\"],\r\n            \"parts\": {\r\n                \"index\": {\r\n                    \"type\" : \"list\",\r\n                    \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"detailed\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Whether to display detailed information about shard recovery\",\r\n                    \"default\": false\r\n                },\r\n                \"active_only\" : {\r\n                    \"type\": \"boolean\",\r\n                    \"description\": \"Display only those recoveries that are currently on-going\",\r\n                    \"default\": false\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.refresh.json",
    "content": "{\r\n  \"indices.refresh\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html\",\r\n    \"methods\": [\"POST\", \"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_refresh\",\r\n      \"paths\": [\"/_refresh\", \"/{index}/_refresh\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.rollover.json",
    "content": "{\r\n  \"indices.rollover\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-rollover-index.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{alias}/_rollover\",\r\n      \"paths\": [\"/{alias}/_rollover\", \"/{alias}/_rollover/{new_index}\"],\r\n      \"parts\": {\r\n        \"alias\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the alias to rollover\"\r\n        },\r\n        \"new_index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : false,\r\n          \"description\" : \"The name of the rollover index\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"dry_run\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If set to true the rollover action will only be validated but not actually performed even if a condition matches. The default is false\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for on the newly created rollover index before the operation returns.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The conditions that needs to be met for executing rollover\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.segments.json",
    "content": "{\r\n  \"indices.segments\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-segments.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_segments\",\r\n      \"paths\": [\"/_segments\", \"/{index}/_segments\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"verbose\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Includes detailed memory usage by Lucene.\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.shard_stores.json",
    "content": "{\r\n  \"indices.shard_stores\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shards-stores.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_shard_stores\",\r\n      \"paths\": [\"/_shard_stores\", \"/{index}/_shard_stores\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"status\" : {\r\n            \"type\" : \"list\",\r\n            \"options\" : [\"green\", \"yellow\", \"red\", \"all\"],\r\n            \"description\" : \"A comma-separated list of statuses used to filter on shards to get store information for\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.shrink.json",
    "content": "{\r\n  \"indices.shrink\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-shrink-index.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_shrink/{target}\",\r\n      \"paths\": [\"/{index}/_shrink/{target}\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the source index to shrink\"\r\n        },\r\n        \"target\": {\r\n          \"type\" : \"string\",\r\n          \"required\" : true,\r\n          \"description\" : \"The name of the target index to shrink into\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Set the number of active shards to wait for on the shrunken index before the operation returns.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The configuration for the target index (`settings` and `aliases`)\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.stats.json",
    "content": "{\r\n  \"indices.stats\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_stats\",\r\n      \"paths\": [\r\n        \"/_stats\",\r\n        \"/_stats/{metric}\",\r\n        \"/{index}/_stats\",\r\n        \"/{index}/_stats/{metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned the specific metrics.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return stats aggregated at cluster, index or shard level\",\r\n          \"options\" : [\"cluster\", \"indices\", \"shards\"],\r\n          \"default\" : \"indices\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        },\r\n        \"include_segment_file_sizes\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.update_aliases.json",
    "content": "{\r\n  \"indices.update_aliases\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_aliases\",\r\n      \"paths\": [\"/_aliases\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Request timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The definition of `actions` to perform\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.upgrade.json",
    "content": "{\r\n  \"indices.upgrade\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/indices-upgrade.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_upgrade\",\r\n      \"paths\": [\"/_upgrade\", \"/{index}/_upgrade\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"allow_no_indices\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specify whether the request should block until the all segments are upgraded (default: false)\"\r\n        },\r\n        \"only_ancient_segments\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"If true, only ancient (an older Lucene major release) segments will be upgraded\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/indices.validate_query.json",
    "content": "{\r\n  \"indices.validate_query\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_validate/query\",\r\n      \"paths\": [\"/_validate/query\", \"/{index}/_validate/query\", \"/{index}/{type}/_validate/query\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Return detailed information about the error\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"operation_threading\": {\r\n          \"description\" : \"TODO: ?\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"rewrite\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Provide a more detailed explanation showing the actual Lucene query that will be executed.\"\r\n        },\r\n        \"all_shards\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Execute validation on all shards instead of one random shard per index\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The query definition specified with the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/info.json",
    "content": "{\r\n  \"info\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/ingest.delete_pipeline.json",
    "content": "{\r\n  \"ingest.delete_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"DELETE\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/ingest.get_pipeline.json",
    "content": "{\r\n  \"ingest.get_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"GET\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline\", \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Comma separated list of pipeline ids. Wildcards supported\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/ingest.processor.grok.json",
    "content": "{\r\n  \"ingest.processor.grok\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"GET\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/processor/grok\",\r\n      \"paths\": [\"/_ingest/processor/grok\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/ingest.put_pipeline.json",
    "content": "{\r\n  \"ingest.put_pipeline\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"PUT\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/{id}\",\r\n      \"paths\": [ \"/_ingest/pipeline/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : true\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The ingest definition\",\r\n      \"required\" : true\r\n    }    \r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/ingest.simulate.json",
    "content": "{\r\n  \"ingest.simulate\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/plugins/master/ingest.html\",\r\n    \"methods\": [ \"GET\", \"POST\" ],\r\n    \"url\": {\r\n      \"path\": \"/_ingest/pipeline/_simulate\",\r\n      \"paths\": [ \"/_ingest/pipeline/_simulate\", \"/_ingest/pipeline/{id}/_simulate\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Pipeline ID\",\r\n          \"required\" : false\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"verbose\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Verbose mode. Display data output for each processor in executed pipeline\",\r\n          \"default\" : false\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The simulate definition\",\r\n      \"required\" : true\r\n    }    \r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/mget.json",
    "content": "{\r\n  \"mget\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_mget\",\r\n      \"paths\": [\"/_mget\", \"/{index}/_mget\", \"/{index}/{type}/_mget\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"stored_fields\": {\r\n          \"type\": \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return in the response\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"realtime\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to perform the operation in realtime or search mode\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Refresh the shard containing the document before performing the operation\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/msearch.json",
    "content": "{\r\n  \"msearch\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_msearch\",\r\n      \"paths\": [\"/_msearch\", \"/{index}/_msearch\", \"/{index}/{type}/_msearch\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to use as default\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"max_concurrent_searches\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Controls the maximum number of concurrent searches the multi search api will execute\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"pre_filter_shard_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\r\n          \"default\" : 128\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definitions (metadata-search request definition pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/msearch_template.json",
    "content": "{\r\n  \"msearch_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_msearch/template\",\r\n      \"paths\": [\"/_msearch/template\", \"/{index}/_msearch/template\", \"/{index}/{type}/_msearch/template\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to use as default\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to use as default\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"max_concurrent_searches\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Controls the maximum number of concurrent searches the multi search api will execute\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definitions (metadata-search request definition pairs), separated by newlines\",\r\n      \"required\" : true,\r\n      \"serialize\" : \"bulk\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/mtermvectors.json",
    "content": "{\r\n  \"mtermvectors\" : {\r\n    \"documentation\" : \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/_mtermvectors\",\r\n      \"paths\" : [\"/_mtermvectors\", \"/{index}/_mtermvectors\", \"/{index}/{type}/_mtermvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\"\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ids\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of documents ids. You must define ids as parameter or set \\\"ids\\\" or \\\"docs\\\" in the request body\",\r\n          \"required\" : false\r\n        },\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents. Applies to all returned documents unless otherwise specified in body \\\"params\\\" or \\\"docs\\\".\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if requests are real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n        \"description\" : \"Define ids, documents, parameters or a list of parameters per document here. You must at least provide a list of document ids. See documentation.\",\r\n        \"required\" : false\r\n\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/nodes.hot_threads.json",
    "content": "{\r\n  \"nodes.hot_threads\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-hot-threads.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/hot_threads\",\r\n      \"paths\": [\"/_cluster/nodes/hotthreads\", \"/_cluster/nodes/hot_threads\", \"/_cluster/nodes/{node_id}/hotthreads\", \"/_cluster/nodes/{node_id}/hot_threads\", \"/_nodes/hotthreads\", \"/_nodes/hot_threads\", \"/_nodes/{node_id}/hotthreads\", \"/_nodes/{node_id}/hot_threads\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"interval\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"The interval for the second sampling of threads\"\r\n        },\r\n        \"snapshots\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of samples of thread stacktrace (default: 10)\"\r\n        },\r\n        \"threads\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Specify the number of threads to provide information for (default: 3)\"\r\n        },\r\n        \"ignore_idle_threads\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Don't show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true)\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"cpu\", \"wait\", \"block\"],\r\n          \"description\" : \"The type to sample (default: cpu)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/nodes.info.json",
    "content": "{\r\n  \"nodes.info\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-info.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes\",\r\n      \"paths\": [\"/_nodes\", \"/_nodes/{node_id}\", \"/_nodes/{metric}\", \"/_nodes/{node_id}/{metric}\"],\r\n      \"parts\": {\r\n        \"node_id\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"metric\": {\r\n          \"type\": \"list\",\r\n          \"options\": [\"settings\", \"os\", \"process\", \"jvm\", \"thread_pool\", \"transport\", \"http\", \"plugins\", \"ingest\"],\r\n          \"description\": \"A comma-separated list of metrics you wish returned. Leave empty to return all.\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"flat_settings\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return settings in flat format (default: false)\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/nodes.stats.json",
    "content": "{\r\n  \"nodes.stats\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-stats.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/stats\",\r\n      \"paths\": [\r\n        \"/_nodes/stats\",\r\n        \"/_nodes/{node_id}/stats\",\r\n        \"/_nodes/stats/{metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}\",\r\n        \"/_nodes/stats/{metric}/{index_metric}\",\r\n        \"/_nodes/{node_id}/stats/{metric}/{index_metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"breaker\", \"fs\", \"http\", \"indices\", \"jvm\", \"os\", \"process\", \"thread_pool\", \"transport\", \"discovery\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        },\r\n        \"index_metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"completion\", \"docs\", \"fielddata\", \"query_cache\", \"flush\", \"get\", \"indexing\", \"merge\", \"request_cache\", \"refresh\", \"search\", \"segments\", \"store\", \"warmer\", \"suggest\"],\r\n          \"description\" : \"Limit the information returned for `indices` metric to the specific index metrics. Isn't used if `indices` (or `all`) metric isn't specified.\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"completion_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)\"\r\n        },\r\n        \"fielddata_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` index metric (supports wildcards)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)\"\r\n        },\r\n        \"groups\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"A comma-separated list of search groups for `search` index metric\"\r\n        },\r\n        \"level\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Return indices stats aggregated at index, node or shard level\",\r\n          \"options\" : [\"indices\", \"node\", \"shards\"],\r\n          \"default\" : \"node\"\r\n        },\r\n        \"types\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types for the `indexing` index metric\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"include_segment_file_sizes\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/nodes.usage.json",
    "content": "{\r\n  \"nodes.usage\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-nodes-usage.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_nodes/usage\",\r\n      \"paths\": [\r\n        \"/_nodes/usage\",\r\n        \"/_nodes/{node_id}/usage\",\r\n        \"/_nodes/usage/{metric}\",\r\n        \"/_nodes/{node_id}/usage/{metric}\"\r\n      ],\r\n      \"parts\": {\r\n        \"metric\" : {\r\n          \"type\" : \"list\",\r\n          \"options\" : [\"_all\", \"rest_actions\"],\r\n          \"description\" : \"Limit the information returned to the specified metrics\"\r\n        },\r\n        \"node_id\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"human\": {\r\n            \"type\": \"boolean\",\r\n            \"description\": \"Whether to return time and byte values in human-readable format.\",\r\n            \"default\": false\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v6_0_0/ping.json",
    "content": "{\r\n  \"ping\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/\",\r\n    \"methods\": [\"HEAD\"],\r\n    \"url\": {\r\n      \"path\": \"/\",\r\n      \"paths\": [\"/\"],\r\n      \"parts\": {\r\n      },\r\n      \"params\": {\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/put_script.json",
    "content": "{\r\n  \"put_script\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_scripts/{id}\",\r\n      \"paths\": [ \"/_scripts/{id}\", \"/_scripts/{id}/{context}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script ID\",\r\n          \"required\" : true\r\n        },\r\n        \"context\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Script context\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify timeout for connection to master\"\r\n        },\r\n        \"context\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Context name to compile script against\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The document\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/reindex.json",
    "content": "{\r\n  \"reindex\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex\",\r\n      \"paths\": [\"/_reindex\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the reindex operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\" : \"boolean\",\r\n          \"default\": true,\r\n          \"description\" : \"Should the request should block until the reindex is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL and the prototype for the index request.\",\r\n      \"required\": true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/reindex_rethrottle.json",
    "content": "{\r\n  \"reindex_rethrottle\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_reindex/{task_id}/_rethrottle\",\r\n      \"paths\": [\"/_reindex/{task_id}/_rethrottle\", \"/_update_by_query/{task_id}/_rethrottle\", \"/_delete_by_query/{task_id}/_rethrottle\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The task id to rethrottle\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"required\": true,\r\n          \"description\": \"The throttle to set on this request in floating sub-requests per second. -1 means set no throttle.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/remote.info.json",
    "content": "{\r\n  \"remote.info\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-remote-info.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_remote/info\",\r\n      \"paths\": [\"/_remote/info\"],\r\n      \"params\": {}\r\n    },\r\n    \"body\": null\r\n  }\r\n}"
  },
  {
    "path": "src/rest-spec/v6_0_0/render_search_template.json",
    "content": "{\r\n  \"render_search_template\": {\r\n    \"documentation\": \"http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_render/template\",\r\n      \"paths\": [ \"/_render/template\", \"/_render/template/{id}\" ],\r\n      \"parts\": {\r\n        \"id\": {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The id of the stored search template\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/scroll.json",
    "content": "{\r\n  \"scroll\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/scroll\",\r\n      \"paths\": [\"/_search/scroll\", \"/_search/scroll/{scroll_id}\"],\r\n      \"parts\": {\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"scroll_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The scroll ID for scrolled search\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The scroll ID if not passed by URL or query parameter.\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/search.json",
    "content": "{\r\n  \"search\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search\",\r\n      \"paths\": [\"/_search\", \"/{index}/_search\", \"/{index}/{type}/_search\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"stored_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of stored fields to return as part of a hit\"\r\n        },\r\n        \"docvalue_fields\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return as the docvalue representation of a field for each hit\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"suggest_field\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify which field to use for suggestions\"\r\n        },\r\n        \"suggest_mode\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"missing\", \"popular\", \"always\"],\r\n          \"default\" : \"missing\",\r\n          \"description\" : \"Specify suggest mode\"\r\n        },\r\n        \"suggest_size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"How many suggestions to return in response\"\r\n        },\r\n        \"suggest_text\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The source text for which the suggestions should be returned\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"track_scores\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\": \"Whether to calculate and return scores even if they are not used for sorting\"\r\n        },\r\n        \"track_total_hits\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\": \"Indicate if the number of documents that match the query should be tracked\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"batched_reduce_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.\",\r\n          \"default\" : 512\r\n        },\r\n        \"max_concurrent_shard_requests\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests\",\r\n          \"default\" : \"The default grows with the number of nodes in the cluster but is at most 256.\"\r\n        },\r\n        \"pre_filter_shard_size\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.\",\r\n          \"default\" : 128\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/search_shards.json",
    "content": "{\r\n  \"search_shards\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_search_shards\",\r\n      \"paths\": [\"/_search_shards\", \"/{index}/_search_shards\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/search_template.json",
    "content": "{\r\n  \"search_template\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html\",\r\n    \"methods\": [\"GET\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_search/template\",\r\n      \"paths\": [\"/_search/template\", \"/{index}/_search/template\", \"/{index}/{type}/_search/template\"],\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\" : {\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"query_and_fetch\", \"dfs_query_then_fetch\", \"dfs_query_and_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"explain\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return detailed information about score computation as part of a hit\"\r\n        },\r\n        \"profile\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to profile the query execution\"\r\n        },\r\n        \"typed_keys\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether aggregation and suggester names should be prefixed by their respective types in the response\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition template and its params\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.create.json",
    "content": "{\r\n  \"snapshot.create\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"The snapshot definition\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.create_repository.json",
    "content": "{\r\n  \"snapshot.create_repository\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"PUT\", \"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        },\r\n        \"verify\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Whether to verify the repository after creation\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"The repository definition\",\r\n      \"required\" : true\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.delete.json",
    "content": "{\r\n  \"snapshot.delete\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.delete_repository.json",
    "content": "{\r\n  \"snapshot.delete_repository\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"DELETE\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}\",\r\n      \"paths\": [\"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.get.json",
    "content": "{\r\n  \"snapshot.get\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"required\" : true,\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"\r\n        },\r\n        \"verbose\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to show verbose snapshot info or only show the basic info found in the repository index blob\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.get_repository.json",
    "content": "{\r\n  \"snapshot.get_repository\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot\",\r\n      \"paths\": [\"/_snapshot\", \"/_snapshot/{repository}\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of repository names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"local\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return local information, do not retrieve the state from master node (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.restore.json",
    "content": "{\r\n  \"snapshot.restore\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/{repository}/{snapshot}/_restore\",\r\n      \"paths\": [\"/_snapshot/{repository}/{snapshot}/_restore\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"string\",\r\n          \"required\" : true,\r\n          \"description\": \"A snapshot name\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Should this request wait until the operation has completed before returning\",\r\n          \"default\": false\r\n        }\r\n      }\r\n    },\r\n    \"body\" : {\r\n      \"description\" : \"Details of what to restore\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.status.json",
    "content": "{\r\n  \"snapshot.status\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_snapshot/_status\",\r\n      \"paths\": [\"/_snapshot/_status\", \"/_snapshot/{repository}/_status\", \"/_snapshot/{repository}/{snapshot}/_status\"],\r\n      \"parts\": {\r\n        \"repository\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"A repository name\"\r\n        },\r\n        \"snapshot\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of snapshot names\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"master_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit operation timeout for connection to master node\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/snapshot.verify_repository.json",
    "content": "{\r\n    \"snapshot.verify_repository\": {\r\n        \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html\",\r\n        \"methods\": [\"POST\"],\r\n        \"url\": {\r\n            \"path\": \"/_snapshot/{repository}/_verify\",\r\n            \"paths\": [\"/_snapshot/{repository}/_verify\"],\r\n            \"parts\": {\r\n                \"repository\": {\r\n                    \"type\": \"string\",\r\n                    \"required\" : true,\r\n                    \"description\": \"A repository name\"\r\n                }\r\n            },\r\n            \"params\": {\r\n                \"master_timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout for connection to master node\"\r\n                },\r\n                \"timeout\": {\r\n                    \"type\" : \"time\",\r\n                    \"description\" : \"Explicit operation timeout\"\r\n                }\r\n            }\r\n        },\r\n        \"body\": null\r\n    }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/tasks.cancel.json",
    "content": "{\r\n  \"tasks.cancel\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks/_cancel\", \"/_tasks/{task_id}/_cancel\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel the task with specified task id (node_id:task_number)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"nodes\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be cancelled. Leave empty to cancel all.\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Cancel tasks with specified parent node.\"\r\n        },\r\n        \"parent_task_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/tasks.get.json",
    "content": "{\r\n  \"tasks.get\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks/{task_id}\",\r\n      \"paths\": [\"/_tasks/{task_id}\"],\r\n      \"parts\": {\r\n        \"task_id\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return the task with specified id (node_id:task_number)\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Wait for the matching tasks to complete (default: false)\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/tasks.list.json",
    "content": "{\r\n  \"tasks.list\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html\",\r\n    \"methods\": [\"GET\"],\r\n    \"url\": {\r\n      \"path\": \"/_tasks\",\r\n      \"paths\": [\"/_tasks\"],\r\n      \"parts\": {},\r\n      \"params\": {\r\n        \"nodes\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes\"\r\n        },\r\n        \"actions\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of actions that should be returned. Leave empty to return all.\"\r\n        },\r\n        \"detailed\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Return detailed task information (default: false)\"\r\n        },\r\n        \"parent_node\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Return tasks with specified parent node.\"\r\n        },\r\n        \"parent_task_id\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Return tasks with specified parent task id (node_id:task_number). Set to -1 to return all.\"\r\n        },\r\n        \"wait_for_completion\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Wait for the matching tasks to complete (default: false)\"\r\n        },\r\n        \"group_by\": {\r\n          \"type\" : \"enum\",\r\n          \"description\": \"Group tasks by nodes or parent/child relationships\",\r\n          \"options\" : [\"nodes\", \"parents\"],\r\n          \"default\" : \"nodes\"\r\n        }\r\n\r\n      }\r\n    },\r\n    \"body\": null\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/termvectors.json",
    "content": "{\r\n  \"termvectors\" : {\r\n    \"documentation\" : \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html\",\r\n    \"methods\" : [\"GET\", \"POST\"],\r\n    \"url\" : {\r\n      \"path\" : \"/{index}/{type}/_termvectors\",\r\n      \"paths\" : [\"/{index}/{type}/_termvectors\", \"/{index}/{type}/{id}/_termvectors\"],\r\n      \"parts\" : {\r\n        \"index\" : {\r\n         \"type\" : \"string\",\r\n         \"description\" : \"The index in which the document resides.\",\r\n         \"required\" : true\r\n        },\r\n        \"type\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The type of the document.\",\r\n          \"required\" : true\r\n        },\r\n        \"id\" : {\r\n           \"type\" : \"string\",\r\n           \"description\" : \"The id of the document, when not specified a doc param should be supplied.\"\r\n         }\r\n      },\r\n      \"params\": {\r\n        \"term_statistics\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if total term frequency and document frequency should be returned.\",\r\n          \"default\" : false,\r\n          \"required\" : false\r\n        },\r\n        \"field_statistics\" : {\r\n           \"type\" : \"boolean\",\r\n           \"description\" : \"Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned.\",\r\n           \"default\" : true,\r\n           \"required\" : false\r\n        },\r\n        \"fields\" : {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of fields to return.\",\r\n          \"required\" : false\r\n        },\r\n        \"offsets\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term offsets should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"positions\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term positions should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"payloads\" : {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specifies if term payloads should be returned.\",\r\n          \"default\" : true,\r\n          \"required\" : false\r\n        },\r\n        \"preference\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random).\",\r\n          \"required\" : false\r\n        },\r\n        \"routing\" : {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specific routing value.\",\r\n          \"required\" : false\r\n        },\r\n        \"parent\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Parent id of documents.\",\r\n          \"required\" : false\r\n        },\r\n        \"realtime\": {\r\n          \"type\": \"boolean\",\r\n          \"description\": \"Specifies if request is real-time as opposed to near-real-time (default: true).\",\r\n          \"required\": false\r\n        },\r\n        \"version\" : {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"internal\", \"external\", \"external_gte\", \"force\"],\r\n          \"description\" : \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\" : \"Define parameters and or supply a document to get termvectors for. See documentation.\",\r\n      \"required\" : false\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/update.json",
    "content": "{\r\n  \"update\": {\r\n    \"documentation\": \"http://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/{type}/{id}/_update\",\r\n      \"paths\": [\"/{index}/{type}/{id}/_update\"],\r\n      \"parts\": {\r\n        \"id\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"Document ID\"\r\n        },\r\n        \"index\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The name of the index\"\r\n        },\r\n        \"type\": {\r\n          \"type\": \"string\",\r\n          \"required\": true,\r\n          \"description\": \"The type of the document\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"wait_for_active_shards\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Sets the number of shard copies that must be active before proceeding with the update operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"fields\": {\r\n          \"type\": \"list\",\r\n          \"description\": \"A comma-separated list of fields to return in the response\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"lang\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"The script language (default: painless)\"\r\n        },\r\n        \"parent\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"ID of the parent document. Is is only used for routing and when for the upsert request\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"enum\",\r\n          \"options\": [\"true\", \"false\", \"wait_for\"],\r\n          \"description\" : \"If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.\"\r\n        },\r\n        \"retry_on_conflict\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Specify how many times should the operation be retried when a conflict occurs (default: 0)\"\r\n        },\r\n        \"routing\": {\r\n          \"type\": \"string\",\r\n          \"description\": \"Specific routing value\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit operation timeout\"\r\n        },\r\n        \"timestamp\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Explicit timestamp for the document\"\r\n        },\r\n        \"ttl\": {\r\n          \"type\": \"time\",\r\n          \"description\": \"Expiration time for the document\"\r\n        },\r\n        \"version\": {\r\n          \"type\": \"number\",\r\n          \"description\": \"Explicit version number for concurrency control\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\": \"enum\",\r\n          \"options\": [\"internal\", \"force\"],\r\n          \"description\": \"Specific version type\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The request definition using either `script` or partial `doc`\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/rest-spec/v6_0_0/update_by_query.json",
    "content": "{\r\n  \"update_by_query\": {\r\n    \"documentation\": \"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update-by-query.html\",\r\n    \"methods\": [\"POST\"],\r\n    \"url\": {\r\n      \"path\": \"/{index}/_update_by_query\",\r\n      \"paths\": [\"/{index}/_update_by_query\", \"/{index}/{type}/_update_by_query\"],\r\n      \"comment\": \"most things below this are just copied from search.json\",\r\n      \"parts\": {\r\n        \"index\": {\r\n         \"required\" : true,\r\n         \"type\" : \"list\",\r\n         \"description\" : \"A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices\"\r\n        },\r\n        \"type\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of document types to search; leave empty to perform the operation on all types\"\r\n        }\r\n      },\r\n      \"params\": {\r\n        \"analyzer\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The analyzer to use for the query string\"\r\n        },\r\n        \"analyze_wildcard\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether wildcard and prefix queries should be analyzed (default: false)\"\r\n        },\r\n        \"default_operator\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"AND\",\"OR\"],\r\n          \"default\" : \"OR\",\r\n          \"description\" : \"The default operator for query string query (AND or OR)\"\r\n        },\r\n        \"df\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"The field to use as default where no field prefix is given in the query string\"\r\n        },\r\n        \"from\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Starting offset (default: 0)\"\r\n        },\r\n        \"ignore_unavailable\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether specified concrete indices should be ignored when unavailable (missing or closed)\"\r\n        },\r\n        \"allow_no_indices\": {\r\n            \"type\" : \"boolean\",\r\n            \"description\" : \"Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)\"\r\n        },\r\n        \"conflicts\": {\r\n            \"note\": \"This is not copied from search\",\r\n            \"type\" : \"enum\",\r\n            \"options\": [\"abort\", \"proceed\"],\r\n            \"default\": \"abort\",\r\n            \"description\" : \"What to do when the update by query hits version conflicts?\"\r\n        },\r\n        \"expand_wildcards\": {\r\n            \"type\" : \"enum\",\r\n            \"options\" : [\"open\",\"closed\",\"none\",\"all\"],\r\n            \"default\" : \"open\",\r\n            \"description\" : \"Whether to expand wildcard expression to concrete indices that are open, closed or both.\"\r\n        },\r\n        \"lenient\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether format-based query failures (such as providing text to a numeric field) should be ignored\"\r\n        },\r\n        \"pipeline\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Ingest pipeline to set on index requests made by this action. (default: none)\"\r\n        },\r\n        \"preference\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Specify the node or shard the operation should be performed on (default: random)\"\r\n        },\r\n        \"q\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Query in the Lucene query string syntax\"\r\n        },\r\n        \"routing\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of specific routing values\"\r\n        },\r\n        \"scroll\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Specify how long a consistent view of the index should be maintained for scrolled search\"\r\n        },\r\n        \"search_type\": {\r\n          \"type\" : \"enum\",\r\n          \"options\" : [\"query_then_fetch\", \"dfs_query_then_fetch\"],\r\n          \"description\" : \"Search operation type\"\r\n        },\r\n        \"search_timeout\": {\r\n          \"type\" : \"time\",\r\n          \"description\" : \"Explicit timeout for each search request. Defaults to no timeout.\"\r\n        },\r\n        \"size\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"Number of hits to return (default: 10)\"\r\n        },\r\n        \"sort\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A comma-separated list of <field>:<direction> pairs\"\r\n        },\r\n        \"_source\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"True or false to return the _source field or not, or a list of fields to return\"\r\n        },\r\n        \"_source_exclude\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to exclude from the returned _source field\"\r\n        },\r\n        \"_source_include\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"A list of fields to extract and return from the _source field\"\r\n        },\r\n        \"terminate_after\": {\r\n          \"type\" : \"number\",\r\n          \"description\" : \"The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.\"\r\n        },\r\n        \"stats\": {\r\n          \"type\" : \"list\",\r\n          \"description\" : \"Specific 'tag' of the request for logging and statistical purposes\"\r\n        },\r\n        \"version\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify whether to return document version as part of a hit\"\r\n        },\r\n        \"version_type\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the document increment the version number (internal) on hit or not (reindex)\"\r\n        },\r\n        \"request_cache\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Specify if request cache should be used for this request or not, defaults to index level setting\"\r\n        },\r\n        \"refresh\": {\r\n          \"type\" : \"boolean\",\r\n          \"description\" : \"Should the effected indexes be refreshed?\"\r\n        },\r\n        \"timeout\": {\r\n          \"type\" : \"time\",\r\n          \"default\": \"1m\",\r\n          \"description\" : \"Time each individual bulk request should wait for shards that are unavailable.\"\r\n        },\r\n        \"wait_for_active_shards\": {\r\n          \"type\" : \"string\",\r\n          \"description\" : \"Sets the number of shard copies that must be active before proceeding with the update by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)\"\r\n        },\r\n        \"scroll_size\": {\r\n          \"type\": \"number\",\r\n          \"defaut_value\": 100,\r\n          \"description\": \"Size on the scroll request powering the update_by_query\"\r\n        },\r\n        \"wait_for_completion\": {\r\n           \"type\" : \"boolean\",\r\n           \"default\": true,\r\n           \"description\" : \"Should the request should block until the update by query operation is complete.\"\r\n        },\r\n        \"requests_per_second\": {\r\n          \"type\": \"number\",\r\n          \"default\": 0,\r\n          \"description\": \"The throttle to set on this request in sub-requests per second. -1 means no throttle.\"\r\n        },\r\n        \"slices\": {\r\n          \"type\": \"number\",\r\n          \"default\": 1,\r\n          \"description\": \"The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.\"\r\n        }\r\n      }\r\n    },\r\n    \"body\": {\r\n      \"description\": \"The search definition using the Query DSL\"\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\r\n    \"compilerOptions\": {\r\n        \"module\": \"commonjs\",\r\n        \"target\": \"es6\",\r\n        \"outDir\": \"out\",\r\n        \"lib\": [\"es6\"],\r\n        \"sourceMap\": true,\r\n        \"rootDir\": \"src\",\r\n        \"strict\": true\r\n    },\r\n    \"exclude\": [\"node_modules\", \".vscode-test\"]\r\n}\r\n"
  },
  {
    "path": "tslint-imports.json",
    "content": "{\r\n    \"extends\": [\"tslint-etc\"],\r\n    \"rules\": {\r\n        \"no-unused-declaration\": true\r\n    }\r\n}\r\n"
  },
  {
    "path": "webpack.config.js",
    "content": "//@ts-check\n\n'use strict';\n\nconst path = require('path');\n\n/**@type {import('webpack').Configuration}*/\nconst config = {\n    target: 'node', // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/\n    mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')\n\n    entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/\n    output: {\n        // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/\n        path: path.resolve(__dirname, 'out'),\n        filename: 'extension.js',\n        libraryTarget: 'commonjs2',\n    },\n    devtool: 'nosources-source-map',\n    externals: {\n        vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/\n    },\n    resolve: {\n        // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader\n        extensions: ['.ts', '.js'],\n    },\n    module: {\n        rules: [\n            {\n                test: /\\.ts$/,\n                exclude: /node_modules/,\n                use: [\n                    {\n                        loader: 'ts-loader',\n                    },\n                ],\n            },\n        ],\n    },\n};\nmodule.exports = config;\n"
  }
]