diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 5d12634847..0000000000 --- a/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/.github/check-license-headers.sh b/.github/check-license-headers.sh index 9a48a57580..ebc7d61e82 100755 --- a/.github/check-license-headers.sh +++ b/.github/check-license-headers.sh @@ -27,13 +27,13 @@ function check_license_header { cd "$TOP" nErrors=0 -for f in $(git ls-files | grep '\.ts$'); do +for f in $(git ls-files | grep -v compiler-wasm-lib/pkg | grep '\.ts$'); do if ! check_license_header $f; then nErrors=$((nErrors+1)) fi done -for f in $(git ls-files | grep '\.js$'); do +for f in $(git ls-files | grep -v compiler-wasm-lib/pkg |grep '\.js$'); do if ! check_license_header $f; then nErrors=$((nErrors+1)) fi diff --git a/Makefile b/Makefile index 76476f4659..a8fa83a89a 100644 --- a/Makefile +++ b/Makefile @@ -47,10 +47,13 @@ clean-dep: ## Clean npm dependencies transform-expand-generics: ## Create a new schema with all generics expanded @npm run transform-expand-generics --prefix compiler +transform-to-openapi: ## Generate the OpenAPI definition from the compiled schema + @npm run transform-to-openapi --prefix compiler + dump-routes: ## Create a new schema with all generics expanded @npm run dump-routes --prefix compiler -contrib: | generate license-check spec-format-fix ## Pre contribution target +contrib: | generate license-check spec-format-fix transform-to-openapi ## Pre contribution target bump: @echo ">> bumping..." diff --git a/compiler-rs/.gitignore b/compiler-rs/.gitignore new file mode 100644 index 0000000000..ee44a96390 --- /dev/null +++ b/compiler-rs/.gitignore @@ -0,0 +1,2 @@ +.idea +target diff --git a/compiler-rs/Cargo.lock b/compiler-rs/Cargo.lock new file mode 100644 index 0000000000..43b2451532 --- /dev/null +++ b/compiler-rs/Cargo.lock @@ -0,0 +1,792 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +dependencies = [ + "anstyle", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arcstr" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f907281554a3d0312bb7aab855a8e0ef6cbf1614d06de54105039ca8b34460e" +dependencies = [ + "serde", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "clap_lex" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" + +[[package]] +name = "clients_schema" +version = "0.1.0" +dependencies = [ + "anyhow", + "arcstr", + "indexmap", + "once_cell", + "serde", + "serde_ignored", + "serde_json", + "serde_path_to_error", + "testresult", + "typed-builder", +] + +[[package]] +name = "clients_schema_to_openapi" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap", + "clients_schema", + "convert_case", + "either_n", + "indexmap", + "maplit", + "openapiv3", + "quantiles", + "regex", + "serde", + "serde_ignored", + "serde_json", + "serde_path_to_error", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "compiler-wasm-lib" +version = "0.1.0" +dependencies = [ + "anyhow", + "clients_schema", + "clients_schema_to_openapi", + "console_error_panic_hook", + "serde_json", + "wasm-bindgen", + "wasm-bindgen-test", + "web-sys", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "either_n" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c91ae510829160d5cfb19eb4ae7b6e01d44b767ca8f727c6cee936e53cc9ae5" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", + "serde", +] + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "openapi_to_clients_schema" +version = "0.1.0" +dependencies = [ + "anyhow", + "clients_schema", + "convert_case", + "either_n", + "indexmap", + "openapiv3", + "serde", + "serde_ignored", + "serde_json", + "serde_path_to_error", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "openapiv3" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1a9f106eb0a780abd17ba9fca8e0843e3461630bcbe2af0ad4d5d3ba4e9aa4" +dependencies = [ + "indexmap", + "serde", + "serde_json", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quantiles" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c10fa813fb26fb6c321a6f3085b5ade4cb4730d08d0b9e70a3759136940957f2" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89089e897c013b3deb627116ae56a6955a72b8bed395c9526af31c9fe528b484" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa250384981ea14565685dea16a9ccc4d1c541a13f82b9c168572264d1df8c56" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "serde" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "serde_ignored" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94eb4a4087ba8bdf14a9208ac44fddbf55c01a6195f7edfc511ddaff6cae45a6" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_json" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" +dependencies = [ + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "testresult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e045f5cf9ad69772c1c9652f5567a75df88bbb5a1310a64e53cab140c5c459" + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typed-builder" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a126a40dbff39e8320900cd61b8de053a2706e1f782cd27145792feb8fd41e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "unicode-ident" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671" +dependencies = [ + "console_error_panic_hook", + "js-sys", + "scoped-tls", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" diff --git a/compiler-rs/Cargo.toml b/compiler-rs/Cargo.toml new file mode 100644 index 0000000000..4ef4ce4ed0 --- /dev/null +++ b/compiler-rs/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] +resolver = "2" +members = [ + "clients_schema", + "openapi_to_clients_schema", + "clients_schema_to_openapi", + "compiler-wasm-lib", +] + +[profile.release] +lto = true +# Tell `rustc` to optimize for small code size. +opt-level = "s" diff --git a/compiler-rs/Makefile b/compiler-rs/Makefile new file mode 100644 index 0000000000..7a7a4da694 --- /dev/null +++ b/compiler-rs/Makefile @@ -0,0 +1,17 @@ +REQUIRED_BINS := wasm-pack cargo +$(foreach bin,$(REQUIRED_BINS),\ + $(if $(shell command -v $(bin) 2> /dev/null),,$(error Please install `$(bin)`))) + +.PHONY: compiler-wasm-lib + +compiler-wasm-lib: ## Compile the WASM library + wasm-pack build --release -t nodejs compiler-wasm-lib + # we do commit the result in git + rm compiler-wasm-lib/pkg/.gitignore + + +help: ## Display help + @awk 'BEGIN {FS = ":.*##"; printf "Usage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) +#------------- -------------- + +.DEFAULT_GOAL := help diff --git a/compiler-rs/README.md b/compiler-rs/README.md new file mode 100644 index 0000000000..602fae211e --- /dev/null +++ b/compiler-rs/README.md @@ -0,0 +1,14 @@ +# Rust API schema manipulation utilities + +This directory contains a set of Rust crates to manipulate and transform the API specification's `schema.json` file. The primary feature is conversion of `schema.json` to an OpenAPI schema for Elasticsearch Serverless. + +## Workspace members + +* [`clients_schema`](./clients_schema/): a Rust implementation of the [Elasticsearch specification schema](https://github.com/elastic/elasticsearch-specification/blob/main/compiler/src/model/metamodel.ts) metamodel. +* [`clients_schema_to_openapi`](./clients_schema_to_openapi): conversion of the `schema.json` format to OpenAPI. Supersedes [elasticsearch-openapi](https://github.com/elastic/elasticsearch-openapi). +* [`compiler-wasm-lib`](./schema-wasm-lib): a WebAssembly library that exposes features of this workspace, to allow its use from the larger [schema toolchain](../compiler). +* [`openapi_to_clients_schema`](./openapi_to_clients_schema): experimental, incomplete, work in progress: translate an OpenAPI specification to an Elasticsearch schema that can be used as input for code generation. + +## Building + +The output of this directory is the `compiler-wasm-lib` WebAssembly library. It must be built and committed in this repository every time the Rust code is changed. Use `make compiler-wasm-lib` to build it. diff --git a/compiler-rs/clients_schema/Cargo.toml b/compiler-rs/clients_schema/Cargo.toml new file mode 100644 index 0000000000..798b6f3806 --- /dev/null +++ b/compiler-rs/clients_schema/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "clients_schema" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] +serde = {version = "1.0", features=["derive", 'rc']} +serde_json = "1.0" +typed-builder = "0.11" +once_cell = "1.16" +anyhow = "1.0" +indexmap = { version="1.9.3", features = ["serde"] } + +arcstr = { version = "1.1.5", features = ["serde", "substr"] } + +[dev-dependencies] +serde_path_to_error = "0.1" +serde_ignored = "0.1" +testresult = "0.3.0" diff --git a/compiler-rs/clients_schema/src/builtins.rs b/compiler-rs/clients_schema/src/builtins.rs new file mode 100644 index 0000000000..ed574896b1 --- /dev/null +++ b/compiler-rs/clients_schema/src/builtins.rs @@ -0,0 +1,36 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use crate::TypeName; +use once_cell::sync::Lazy; + +pub static STRING: Lazy = Lazy::new(|| TypeName::new("_builtins", "string")); +pub static BOOLEAN: Lazy = Lazy::new(|| TypeName::new("_builtins", "boolean")); +pub static OBJECT: Lazy = Lazy::new(|| TypeName::new("_builtins", "object")); +pub static BINARY: Lazy = Lazy::new(|| TypeName::new("_builtins", "binary")); +pub static VOID: Lazy = Lazy::new(|| TypeName::new("_builtins", "void")); +pub static NUMBER: Lazy = Lazy::new(|| TypeName::new("_builtins", "number")); +pub static BYTE: Lazy = Lazy::new(|| TypeName::new("_builtins", "byte")); +pub static INTEGER: Lazy = Lazy::new(|| TypeName::new("_builtins", "integer")); +pub static LONG: Lazy = Lazy::new(|| TypeName::new("_builtins", "long")); +pub static FLOAT: Lazy = Lazy::new(|| TypeName::new("_builtins", "float")); +pub static DOUBLE: Lazy = Lazy::new(|| TypeName::new("_builtins", "double")); +pub static NULL: Lazy = Lazy::new(|| TypeName::new("_builtins", "null")); +pub static DICTIONARY: Lazy = Lazy::new(|| TypeName::new("_builtins", "Dictionary")); +pub static USER_DEFINED: Lazy = Lazy::new(|| TypeName::new("_builtins", "UserDefined")); + +pub static ADDITIONAL_PROPERTIES: Lazy = Lazy::new(|| TypeName::new("_spec_utils", "AdditionalProperties")); diff --git a/compiler-rs/clients_schema/src/lib.rs b/compiler-rs/clients_schema/src/lib.rs new file mode 100644 index 0000000000..263bf8a916 --- /dev/null +++ b/compiler-rs/clients_schema/src/lib.rs @@ -0,0 +1,1200 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use std::cmp::Ordering; +use std::fmt::{Debug, Display, Formatter}; +use anyhow::anyhow; +use indexmap::IndexMap; +// Re-export crates whose types we expose publicly +pub use once_cell; + +// Child modules +pub mod builtins; +pub mod transform; + +use once_cell::sync::Lazy; +use serde::{Deserialize, Serialize}; +use serde::de::SeqAccess; +use serde::ser::SerializeSeq; + +#[allow(clippy::trivially_copy_pass_by_ref)] // needs to match signature for use in serde attribute +#[inline] +const fn is_false(v: &bool) -> bool { + !(*v) +} + +pub trait Documented { + fn doc_url(&self) -> Option<&str>; + fn doc_id(&self) -> Option<&str>; + fn description(&self) -> Option<&str>; + fn since(&self) -> Option<&str>; +} + +// ArcStr is a compact reference counted string that makes cloning a very cheap operation. +// This is particularly important for `TypeName` that is cloned a lot, e.g. for `IndexedModel` keys +// See https://swatinem.de/blog/optimized-strings/ for a general discussion +// +// TODO: interning at deserialization time to reuse identical values (links from values to types) +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Hash)] +pub struct TypeName { + pub namespace: arcstr::ArcStr, + pub name: arcstr::ArcStr, + // pub namespace: String, + // pub name: String, +} + +impl TypeName { + pub fn new(namespace: &str, name: &str) -> TypeName { + TypeName { + namespace: namespace.into(), + name: name.into(), + } + } + + pub fn is_builtin(&self) -> bool { + self.namespace == "_builtins" + } +} + +impl Display for TypeName { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}:{}", self.namespace, self.name) + } +} + +impl Ord for TypeName { + fn cmp(&self, other: &Self) -> Ordering { + match self.namespace.cmp(&other.namespace) { + Ordering::Equal => self.name.cmp(&other.name), + ordering @ _ => ordering, + } + } +} + +//----------------------------------------------------------------------------- + +/// +/// Type of a value. Used both for property types and nested type definitions. +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +#[serde(tag = "kind", rename_all="snake_case")] +pub enum ValueOf { + InstanceOf(InstanceOf), + ArrayOf(ArrayOf), + UnionOf(UnionOf), + DictionaryOf(DictionaryOf), + UserDefinedValue(UserDefinedValue), + LiteralValue(LiteralValue) +} + +impl ValueOf { + pub fn instance_of(name: TypeName) -> ValueOf { + ValueOf::InstanceOf(InstanceOf::new(name)) + } +} + +impl From for ValueOf { + fn from(value: InstanceOf) -> Self { + ValueOf::InstanceOf(value) + } +} + +impl From for ValueOf { + fn from(value: ArrayOf) -> Self { + ValueOf::ArrayOf(value) + } +} + +impl From for ValueOf { + fn from(value: UnionOf) -> Self { + ValueOf::UnionOf(value) + } +} + +impl From for ValueOf { + fn from(value: DictionaryOf) -> Self { + ValueOf::DictionaryOf(value) + } +} + +impl From for ValueOf { + fn from(name: TypeName) -> Self { + ValueOf::InstanceOf(InstanceOf::new(name)) + } +} + +impl From<&TypeName> for ValueOf { + fn from(name: &TypeName) -> Self { + ValueOf::InstanceOf(InstanceOf::new(name.clone())) + } +} + +impl From<&Lazy> for ValueOf { + fn from(name: &Lazy) -> Self { + ValueOf::InstanceOf(InstanceOf::new((*name).clone())) + } +} + +//----------------------------------------------------------------------------- + +/// +/// A single value +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +pub struct InstanceOf { + #[serde(rename="type")] + pub typ: TypeName, + + /// generic parameters: either concrete types or open parameters from the enclosing type + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec +} + +impl InstanceOf { + pub fn new(name: TypeName) -> InstanceOf { + InstanceOf { + typ: name, + generics: Vec::default(), + } + } +} + +/// +/// An array +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +pub struct ArrayOf { + pub value: Box +} + +/// +/// One of several possible types which don't necessarily have a common superclass +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +pub struct UnionOf { + pub items: Vec +} + +/// +/// A dictionary (or map). The key is a string or a number (or a union thereof), possibly through an alias. +/// +/// If `singleKey` is true, then this dictionary can only have a single key. This is a common pattern in ES APIs, +/// used to associate a value to a field name or some other identifier. +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +#[serde(rename_all = "camelCase")] +pub struct DictionaryOf { + pub key: Box, + pub value: Box, + pub single_key: bool, +} + +/// +/// A user defined value. To be used when bubbling a generic parameter up to the top-level class is +/// inconvenient or impossible (e.g. for lists of user-defined values of possibly different types). +/// +/// Clients will allow providing a serializer/deserializer when reading/writing properties of this type, +/// and should also accept raw json. +/// +/// Think twice before using this as it defeats the purpose of a strongly typed API, and deserialization +/// will also require to buffer raw JSON data which may have performance implications. +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +#[serde(rename_all = "camelCase")] +pub struct UserDefinedValue { +} + +/// +/// A literal value. This is used for tagged unions, where each type member of a union has a 'type' +/// attribute that defines its kind. This metamodel heavily uses this approach with its 'kind' attributes. +/// +/// It may later be used to set a property to a constant value, which is why it accepts not only strings but also +/// other primitive types. +/// +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +#[serde(rename_all = "camelCase")] +pub struct LiteralValue { + pub value: LiteralValueValue +} + +impl Display for LiteralValue { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + Display::fmt(&self.value, f) + } +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, PartialOrd)] +#[serde(untagged)] +pub enum LiteralValueValue { + String(String), + Number(f64), + Boolean(bool) +} + +impl Display for LiteralValueValue { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + match self { + LiteralValueValue::String(x) => Display::fmt(x, f), + LiteralValueValue::Number(x) => Display::fmt(x, f), + LiteralValueValue::Boolean(x) => Display::fmt(x, f), + } + } +} + +//-------------------------------------------------------------------------------------------- + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum Stability { + Stable, + Beta, + Experimental, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum Visibility { + Public, + FeatureFlag, + Private, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Deprecation { + pub version: String, + pub description: String, +} + +/// An API flavor +#[derive(Debug, Clone, Serialize, Deserialize, Hash, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum Flavor { + Stack, + Serverless, +} + +/// The availability of an item in a API flavor +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Availability { + since: Option, + stability: Option, + visibility: Option, +} + +/// The availability of an +pub type Availabilities = IndexMap; + +pub trait AvailabilityFilter: Fn(&Option) -> bool {} + +impl Flavor { + /// Predicate that indicates if a flavor is available in a given set of availabilities + pub fn available(&self, availabilities: &Option) -> bool { + if let Some(ref avail) = availabilities { + avail.contains_key(self) + } else { + // No restriction + true + } + } + + /// Gets the visibility for a given set of availabilities. If the result is `None`, + /// this flavor isn't available. + pub fn visibility(&self, availabilities: &Option) -> Option { + if let Some(ref availabilities) = availabilities { + // Some availabilities defined + if let Some(ref availability) = availabilities.get(self) { + // This one exists. Public by default + availability.visibility.clone().or(Some(Visibility::Public)) + } else { + // Not available + None + } + } else { + // No restriction: available and public + Some(Visibility::Public) + } + } +} + +/// +/// An interface or request interface property. +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Property { + pub name: String, + + #[serde(rename="type")] + pub typ: ValueOf, + + pub required: bool, + + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub since: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub server_default: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub deprecation: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub availability: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub stability: Option, + + /// If specified takes precedence over `name` when generating code. `name` is always the value + /// to be sent over the wire + #[serde(skip_serializing_if = "Option::is_none")] + pub codegen_name: Option, + + /// An optional set of aliases for `name` + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub aliases: Vec, + + /// If the enclosing class is a variants container, is this a property of the container and not a variant? + #[serde(default, skip_serializing_if = "is_false")] + pub container_property: bool, + + /// If this property has a quirk that needs special attention, give a short explanation about it + #[serde(skip_serializing_if = "Option::is_none")] + pub es_quirk: Option, +} + +impl Documented for Property { + fn doc_url(&self) -> Option<&str> { + self.doc_url.as_deref() + } + + fn doc_id(&self) -> Option<&str> { + self.doc_id.as_deref() + } + + fn description(&self) -> Option<&str> { + self.description.as_deref() + } + + fn since(&self) -> Option<&str> { + self.since.as_deref() + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ServerDefault { + Boolean(bool), + String(String), + Number(f64), + StringArray(Vec), + NumberArray(Vec), +} + +//-------------------------------------------------------------------------------------------- + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case", tag="kind")] +pub enum Variants { + ExternalTag(ExternalTag), + InternalTag(InternalTag), + Container(Container), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ExternalTag { + #[serde(default)] + pub non_exhaustive: bool +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct InternalTag { + #[serde(default)] + pub non_exhaustive: bool, + + /// Name of the property that holds the variant tag + pub tag: String, + + /// Default value for the variant tag if it's missing + #[serde(skip_serializing_if = "Option::is_none")] + pub default_tag: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Container { + #[serde(default)] + pub non_exhaustive: bool, +} + +/// +/// Inherits clause (aka extends or implements) for an interface or request +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Inherits { + #[serde(rename="type")] + pub typ: TypeName, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case", tag="kind")] +pub enum TypeDefinition { + Interface(Interface), + Request(Request), + Response(Response), + Enum(Enum), + TypeAlias(TypeAlias), +} + +impl TypeDefinition { + pub fn type_alias(name: TypeName, value: ValueOf) -> TypeDefinition { + TypeDefinition::TypeAlias(TypeAlias::new(name, value)) + } +} + +impl From for TypeDefinition { + fn from(value: Interface) -> Self { + TypeDefinition::Interface(value) + } +} + +impl From for TypeDefinition { + fn from(value: Request) -> Self { + TypeDefinition::Request(value) + } +} + +impl From for TypeDefinition { + fn from(value: Response) -> Self { + TypeDefinition::Response(value) + } +} + +impl From for TypeDefinition { + fn from(value: Enum) -> Self { + TypeDefinition::Enum(value) + } +} + +impl From for TypeDefinition { + fn from(value: TypeAlias) -> Self { + TypeDefinition::TypeAlias(value) + } +} + +impl TypeDefinition { + pub fn name(&self) -> &TypeName { + &self.base().name + } + + pub fn base(&self) -> &BaseType { + use TypeDefinition::*; + match self { + Interface(x) => &x.base, + Request(x) => &x.base, + Response(x) => &x.base, + Enum(x) => &x.base, + TypeAlias(x) => &x.base, + } + } + + pub fn base_mut(&mut self) -> &mut BaseType { + use TypeDefinition::*; + match self { + Interface(x) => &mut x.base, + Request(x) => &mut x.base, + Response(x) => &mut x.base, + Enum(x) => &mut x.base, + TypeAlias(x) => &mut x.base, + } + } +} + +/// +/// Common attributes for all type definitions +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BaseType { + pub name: TypeName, + + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + + /// Link to public documentation + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub deprecation: Option, + + /// If this endpoint has a quirk that needs special attention, give a short explanation about it + #[serde(skip_serializing_if = "Option::is_none")] + pub es_quirk: Option, + + /// Variant name for externally tagged variants + #[serde(skip_serializing_if = "Option::is_none")] + pub variant_name: Option, + + /// Additional identifiers for use by code generators. Usage depends on the actual type: + /// - on unions (modeled as alias(union_of)), these are identifiers for the union members + /// - for additional properties, this is the name of the dict that holds these properties + /// - for additional property, this is the name of the key and value fields that hold the + /// additional property + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub codegen_names: Vec, + + /// Location of an item. The path is relative to the "specification" directory, e.g "_types/common.ts#L1-L2" + #[serde(skip_serializing_if = "Option::is_none")] + pub spec_location: Option, +} + +impl BaseType { + pub fn new(name: TypeName) -> BaseType { + BaseType { + name, + codegen_names: Default::default(), + doc_id: None, + doc_url: None, + deprecation: None, + es_quirk: None, + description: None, + variant_name: None, + spec_location: None + } + } +} + +impl Documented for BaseType { + fn doc_url(&self) -> Option<&str> { + self.doc_url.as_deref() + } + + fn doc_id(&self) -> Option<&str> { + self.doc_id.as_deref() + } + + fn description(&self) -> Option<&str> { + self.description.as_deref() + } + + fn since(&self) -> Option<&str> { + None + } +} + +trait WithBaseType { + fn base(&self) -> &BaseType; +} + +impl Documented for T { + fn doc_url(&self) -> Option<&str> { + self.base().doc_url() + } + + fn doc_id(&self) -> Option<&str> { + self.base().doc_id() + } + + fn description(&self) -> Option<&str> { + self.base().description() + } + + fn since(&self) -> Option<&str> { + self.base().since() + } +} + +/// +/// An interface type +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Interface { + #[serde(flatten)] + pub base: BaseType, + + /// Open generic parameters. The name is that of the parameter, the namespace is an arbitrary value that allows + /// this fully qualified type name to be used when this open generic parameter is used in property's type. + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec, + + #[serde(skip_serializing_if = "Option::is_none")] + pub inherits: Option, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub implements: Vec, + + /// Behaviors directly implemented by this interface + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub behaviors: Vec, + + /// Behaviors attached to this interface, coming from the interface itself (see `behaviors`) + /// or from inherits and implements ancestors + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub attached_behaviors: Vec, + + pub properties: Vec, + + /// The property that can be used as a shortcut for the entire data structure in the JSON. + #[serde(skip_serializing_if = "Option::is_none")] + pub shortcut_property: Option, + + // Identify containers + #[serde(skip_serializing_if = "Option::is_none")] + pub variants: Option +} + +impl WithBaseType for Interface { + fn base(&self) -> &BaseType { + &self.base + } +} + +/// +/// A request type +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +// Note: does not extend Interface as properties are split across path, query and body +pub struct Request { + #[serde(flatten)] + pub base: BaseType, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec, + + /// The parent defines additional body properties that are added to the body, that has to be a PropertyBody + pub inherits: Option, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub implements: Vec, + + /// URL path properties + pub path: Vec, + + /// Query string properties + pub query: Vec, + + /// Body type. Most often a list of properties (that can extend those of the inherited class, see above), except for a + /// few specific cases that use other types such as bulk (array) or create (generic parameter). Or NoBody for requests + /// that don't have a body. + pub body: Body, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub behaviors: Vec, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub attached_behaviors: Vec, +} + +impl WithBaseType for Request { + fn base(&self) -> &BaseType { + &self.base + } +} + +/// +/// A response type +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Response { + #[serde(flatten)] + pub base: BaseType, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec, + + pub body: Body, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub behaviors: Vec, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub attached_behaviors: Vec, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub exceptions: Vec, +} + +impl WithBaseType for Response { + fn base(&self) -> &BaseType { + &self.base + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ResponseException { + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + + pub body: Body, + + pub status_codes: Vec +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case", tag="kind")] +pub enum Body { + Value(ValueBody), + Properties(PropertiesBody), + NoBody(NoBody) +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ValueBody { + pub value: ValueOf, + + #[serde(skip_serializing_if = "Option::is_none")] + pub codegen_name: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PropertiesBody { + pub properties: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct NoBody { +} + +/// +/// An enumeration member. +/// +/// When enumeration members can become ambiguous when translated to an identifier, the `name` property will be a good +/// identifier name, and `stringValue` will be the string value to use on the wire. +/// See DateMathTimeUnit for an example of this, which have members for "m" (minute) and "M" (month). +/// +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct EnumMember { + /// The identifier to use for this enum + pub name: String, + + /// An optional set of aliases for `name` + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub aliases: Vec, + + /// If specified takes precedence over `name` when generating code. `name` is always the value + /// to be sent over the wire + #[serde(skip_serializing_if = "Option::is_none")] + pub codegen_name: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub deprecation: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub since: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub availability: Option, +} + +impl From<&str> for EnumMember { + fn from(name: &str) -> Self { + EnumMember { + name: name.to_string(), + ..Default::default() + } + } +} + +/// +/// An enumeration +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Enum { + #[serde(flatten)] + pub base: BaseType, + + /// If the enum is open, it means that other than the specified values it can accept an arbitrary value. + /// If this property is not present, it means that the enum is not open (in other words, is closed). + #[serde(default)] + pub is_open: bool, + + pub members: Vec +} + +/// +/// An alias for an existing type. +/// +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TypeAlias { + #[serde(flatten)] + pub base: BaseType, + + #[serde(rename="type")] + pub typ: ValueOf, + + /// generic parameters: either concrete types or open parameters from the enclosing type + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub generics: Vec, + + /// Only applicable to `union_of` aliases: identify typed_key unions (external) and variant inventories (internal) + #[serde(default, skip_serializing_if = "Option::is_none")] + pub variants: Option, +} + +impl TypeAlias { + pub fn new(name: TypeName, typ: ValueOf) -> TypeAlias { + TypeAlias { + base: BaseType::new(name), + typ, + variants: Default::default(), + generics: Default::default(), + } + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case", tag="kind")] +pub enum TypeAliasVariants { + ExternalTag(ExternalTag), + InternalTag(InternalTag), +} + +//------------------------------------------------------------------------------------------------------------ + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Endpoint { + pub name: String, + + pub description: String, + + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_url: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub doc_id: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub deprecation: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub availability: Option, + + /// If missing, there is not yet a request definition for this endpoint. + #[serde(skip_serializing_if = "Option::is_none")] + pub request: Option, + + pub request_body_required: bool, // Not sure this is useful + + /// If missing, there is not yet a response definition for this endpoint. + #[serde(skip_serializing_if = "Option::is_none")] + pub response: Option, + + pub urls: Vec, + + /// The version when this endpoint reached its current stability level. + /// Missing data means "forever", i.e. before any of the target client versions produced from this spec. + /// + #[serde(skip_serializing_if = "Option::is_none")] + pub since: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub stability: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub visibility: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub feature_flag: Option, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub request_media_type: Vec, + + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub response_media_type: Vec, + + #[serde(skip_serializing_if = "Option::is_none")] + pub privileges: Option, +} + +impl Documented for Endpoint { + fn doc_url(&self) -> Option<&str> { + self.doc_url.as_deref() + } + + fn doc_id(&self) -> Option<&str> { + self.doc_id.as_deref() + } + + fn description(&self) -> Option<&str> { + Some(self.description.as_str()) + } + + fn since(&self) -> Option<&str> { + self.since.as_deref() + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Privileges { + #[serde(default)] + pub index: Vec, + + #[serde(default)] + pub cluster: Vec +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct UrlTemplate { + pub path: String, + + pub methods: Vec, + + #[serde(skip_serializing_if = "Option::is_none")] + pub deprecation: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ModelInfo { + pub title: String, + pub license: License, + pub version: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct License { + pub name: String, + pub url: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct Model { + #[serde(rename="_info", skip_serializing_if = "Option::is_none")] + pub info: Option, + pub endpoints: Vec, + pub types: Vec, +} + +impl Model { + pub fn from_reader(r: impl std::io::Read) -> Result { + serde_json::from_reader(r) + } +} + +//------------------------------------------------------------------------------------------------- +/// An api model with types indexed by their name. This version is much more convenient to use +/// when traversing the type graph and provides convenience accessors to the various kinds of +/// types. +/// +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct IndexedModel { + #[serde(rename="_info", skip_serializing_if = "Option::is_none")] + pub info: Option, + + pub endpoints: Vec, + + #[serde(serialize_with = "serialize_types")] + #[serde(deserialize_with = "deserialize_types")] + pub types: IndexMap, +} + +impl IndexedModel { + pub fn from_reader(r: impl std::io::Read) -> Result { + serde_json::from_reader(r) + } + + pub fn get_type(&self, name: &TypeName) -> anyhow::Result<&TypeDefinition> { + match self.types.get(name) { + Some(value) => Ok(value), + None => Err(anyhow!("Type not found: {}", name)), + } + } + + pub fn get_type_mut(&mut self, name: &TypeName) -> anyhow::Result<&mut TypeDefinition> { + match self.types.get_mut(name) { + Some(value) => Ok(value), + None => Err(anyhow!("Type not found: {}", name)), + } + } + + pub fn get_interface(&self, name: &TypeName) -> anyhow::Result<&Interface> { + match self.get_type(name)? { + TypeDefinition::Interface(ref v) => Ok(v), + _ => Err(anyhow!("Type is not an interface: {}", name)), + } + } + + pub fn get_interface_mut(&mut self, name: &TypeName) -> anyhow::Result<&mut Interface> { + match self.get_type_mut(name)? { + TypeDefinition::Interface(ref mut v) => Ok(v), + _ => Err(anyhow!("Type is not an interface: {}", name)), + } + } + + pub fn get_request(&self, name: &TypeName) -> anyhow::Result<&Request> { + match self.get_type(name)? { + TypeDefinition::Request(ref v) => Ok(v), + _ => Err(anyhow!("Type is not a request: {}", name)), + } + } + + pub fn get_request_mut(&mut self, name: &TypeName) -> anyhow::Result<&mut Request> { + match self.get_type_mut(name)? { + TypeDefinition::Request(ref mut v) => Ok(v), + _ => Err(anyhow!("Type is not a request: {}", name)), + } + } + + pub fn get_response(&self, name: &TypeName) -> anyhow::Result<&Response> { + match self.get_type(name)? { + TypeDefinition::Response(ref v) => Ok(v), + _ => Err(anyhow!("Type is not a request: {}", name)), + } + } + + pub fn get_response_mut(&mut self, name: &TypeName) -> anyhow::Result<&mut Response> { + match self.get_type_mut(name)? { + TypeDefinition::Response(ref mut v) => Ok(v), + _ => Err(anyhow!("Type is not a request: {}", name)), + } + } +} + +//------------------------------------------------------------------------------------------------- +// IndexedModel serialization and deserialization +//------------------------------------------------------------------------------------------------- + +fn serialize_types (value: &IndexMap, serializer: S) -> Result where S: serde::Serializer { + let mut seq = serializer.serialize_seq(Some(value.len()))?; + for (_, v) in value { + seq.serialize_element(v)?; + } + seq.end() +} + +fn deserialize_types<'de, D>(deser: D) -> Result, D::Error> where D: serde::Deserializer<'de> { + deser.deserialize_seq(IndexMapVisitor) +} + +struct IndexMapVisitor; + +impl<'a> serde::de::Visitor<'a> for IndexMapVisitor { + type Value = IndexMap; + + fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { + write!(formatter, "an array") + } + + fn visit_seq(self, mut seq: A) -> Result where A: SeqAccess<'a> { + let mut result = IndexMap::with_capacity(seq.size_hint().unwrap_or(0)); + + while let Some(item) = seq.next_element::()? { + result.insert(item.name().clone(), item); + } + + Ok(result) + } +} + +//------------------------------------------------------------------------------------------------- +// Conversions between Model and IndexedModel +//------------------------------------------------------------------------------------------------- + +impl Into for Model { + fn into(self) -> IndexedModel { + IndexedModel { + info: self.info, + endpoints: self.endpoints, + types: self.types.into_iter().map(|t| (t.name().clone(), t)).collect(), + } + } +} + +impl Into for IndexedModel { + fn into(self) -> Model { + Model { + info: self.info, + endpoints: self.endpoints, + types: self.types.into_iter().map(|(_, t)| t).collect(), + } + } +} + +//------------------------------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + /// Loads the Elasticsearch schema. Assumes the elasticsearch-specification project has been + /// checked out as a sibling of this one. + fn load_schema() { + println!("{:?}", std::env::current_dir()); + let json = std::fs::read_to_string("../../output/schema/schema.json").unwrap(); + + let jd = &mut serde_json::Deserializer::from_str(&json); + let result = serde_path_to_error::deserialize::<_, IndexedModel>(jd); + + let result = result.map_err(|e| { + println!("Error at path {}", e.path()); + e.into_inner() + }).unwrap(); + + // Simple smoke test + let search_req = TypeName { + namespace: "_global.search".into(), + name: "Request".into(), + }; + + let search_type = result.get_type(&search_req).unwrap(); + + match search_type { + TypeDefinition::Request(r) => assert_eq!(true, !r.path.is_empty()), + _ => panic!("Expecting a Request") + }; + } +} diff --git a/compiler-rs/clients_schema/src/transform/availability.rs b/compiler-rs/clients_schema/src/transform/availability.rs new file mode 100644 index 0000000000..2620ae5c9b --- /dev/null +++ b/compiler-rs/clients_schema/src/transform/availability.rs @@ -0,0 +1,160 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use std::cell::RefCell; +use crate::{Availabilities, Body, IndexedModel, Inherits, Property, TypeDefinition, TypeName, ValueOf}; +use crate::transform::Worksheet; + +pub struct Availability { + avail_filter: Box) -> bool>, + // Note: we could have avoided the use of interior mutability by adding + // a `&mut Worksheet` parameter to all methods. + worksheet: RefCell, +} + +impl <'a> Availability { + pub fn filter (mut model: IndexedModel, avail_filter: fn(&Option) -> bool) -> anyhow::Result { + let filter = Availability { + avail_filter: Box::new(avail_filter), + worksheet: Worksheet::default().into(), + }; + + // Remove unavailable endpoints + model.endpoints.retain(|ns| filter.is_available(&ns.availability)); + + // Initialize worksheet with request and response of all retained endpoints + for endpoint in &model.endpoints { + endpoint.request.as_ref().map(|name| filter.filter_type(name)); + endpoint.response.as_ref().map(|name| filter.filter_type(name)); + } + + while let Some(name) = { + // filter.worksheet.borrow_mut().next() will not drop the borrow? + let mut ws = filter.worksheet.borrow_mut(); + ws.next() + } { + if !name.is_builtin() { + let typedef = model.get_type_mut(&name)?; + filter.filter_typedef(typedef); + } + } + + // Keep types that we have visited + let ws = filter.worksheet.borrow(); + model.types.retain(|k, _| ws.was_visited(k)); + + return Ok(model); + } + + fn is_available(&self, availabilities: &Option) -> bool { + (self.avail_filter)(availabilities) + } + + fn filter_type(&self, name: &TypeName) { + self.worksheet.borrow_mut().add(name); + } + + fn filter_typedef(&self, typedef: &mut TypeDefinition) { + match typedef { + TypeDefinition::Interface(ref mut itf) => { + itf.inherits.as_ref().map(|i| self.filter_inherits(i)); + itf.behaviors.iter().for_each(|i| self.filter_behaviors(i)); + self.filter_properties(&mut itf.properties); + }, + + TypeDefinition::Enum(ref mut enm) => { + enm.members.retain(|member| self.is_available(&member.availability)); + }, + + TypeDefinition::TypeAlias(ref alias) => { + self.filter_value_of(&alias.typ); + alias.generics.iter().for_each(|g| self.filter_type(g)); + }, + + TypeDefinition::Request(ref mut request) => { + request.inherits.as_ref().map(|i| self.filter_inherits(i)); + request.behaviors.iter().for_each(|i| self.filter_behaviors(i)); + self.filter_properties(&mut request.path); + self.filter_properties(&mut request.query); + self.filter_body(&mut request.body); + }, + + TypeDefinition::Response(ref mut response) => { + response.behaviors.iter().for_each(|i| self.filter_behaviors(i)); + self.filter_body(&mut response.body); + }, + } + } + + fn filter_inherits(&self, inherits: &Inherits) { + self.filter_type(&inherits.typ); + self.filter_values_of(&inherits.generics); + } + + fn filter_behaviors(&self, inherits: &Inherits) { + // Do not traverse the behavior's type: it's builtin, even if part of the _spec_utils namespace + self.filter_values_of(&inherits.generics); + } + + fn filter_properties(&self, props: &mut Vec) { + props.retain(|p| self.is_available(&p.availability)); + for prop in props { + self.filter_value_of(&mut prop.typ); + } + } + + fn filter_values_of(&self, values_of: &Vec) { + for value in values_of { + self.filter_value_of(value); + } + } + + fn filter_value_of(&self, value_of: &ValueOf) { + match value_of { + ValueOf::InstanceOf(ref inst_of) => { + self.filter_type(&inst_of.typ); + self.filter_values_of(&inst_of.generics); + } + + ValueOf::ArrayOf(ref arr) => { + self.filter_value_of(arr.value.as_ref()); + } + + ValueOf::UnionOf(ref union) => { + for item in &union.items { + self.filter_value_of(item); + } + } + + ValueOf::DictionaryOf(ref dict) => { + self.filter_value_of(dict.value.as_ref()); + self.filter_value_of(dict.key.as_ref()); + } + + ValueOf::UserDefinedValue(_) => {} + ValueOf::LiteralValue(_) => {} + } + } + + fn filter_body(&self, body: &mut Body) { + match body { + Body::Value(ref value) => self.filter_value_of(&value.value), + Body::Properties(ref mut props) => self.filter_properties(&mut props.properties), + Body::NoBody(_) => {} + } + } +} diff --git a/compiler-rs/clients_schema/src/transform/expand_generics.rs b/compiler-rs/clients_schema/src/transform/expand_generics.rs new file mode 100644 index 0000000000..aa4e8f5226 --- /dev/null +++ b/compiler-rs/clients_schema/src/transform/expand_generics.rs @@ -0,0 +1,409 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use std::collections::HashMap; +use anyhow::bail; +use indexmap::IndexMap; +use crate::*; + +#[derive(Default)] +struct Ctx { + new_types: IndexMap, + types_seen: std::collections::HashSet, +} + +/// Generic parameters of a type +type GenericParams = Vec; +/// Generic arguments for an instanciated generic type +type GenericArgs = Vec; +/// Mapping from generic arguments to values +type GenericMapping = HashMap; + +/// Expand all generics by creating new concrete types for every instanciation of a generic type. +/// +/// The resulting model has no generics anymore. Top-level generic parameters (e.g. SearchRequest's TDocument) are +/// replaced by user_defined_data. +/// +pub fn expand_generics( + model: IndexedModel +) -> anyhow::Result { + + let mut model = model; + let mut ctx = Ctx::default(); + + for endpoint in &model.endpoints { + endpoint.request.as_ref().map(|t| expand_root_type(&t, &model, &mut ctx)); + endpoint.response.as_ref().map(|t| expand_root_type(&t, &model, &mut ctx)); + } + + // Add new types that were created to the model + ctx.new_types.sort_keys(); + model.types = ctx.new_types; + + return Ok(model); + + //--------------------------------------------------------------------------------------------- + // Expanding types + //--------------------------------------------------------------------------------------------- + + fn expand_root_type(t: &TypeName, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result<()> { + const NO_GENERICS: &Vec = &Vec::new(); + const USER_DEFINED: ValueOf = ValueOf::UserDefinedValue(UserDefinedValue{}); + + use TypeDefinition::*; + let generics = match model.get_type(t)? { + Interface(itf) => &itf.generics, + Request(req) => &req.generics, + Response(resp) => &resp.generics, + Enum(_) | TypeAlias(_) => NO_GENERICS, + }; + + // Top-level generic parameters (e.g. TDocument in SearchResponse) are set to UserDefined + let args: GenericArgs = generics.iter().map(|_| USER_DEFINED).collect(); + + expand_type(t, args, model, ctx)?; + + Ok(()) + } + + /// + /// Expand a type definition, given concrete values for its generic parameters. + /// The new type definition is stored in the context. + /// + /// Returns the name to use for this (type, args) combination + /// + fn expand_type(name: &TypeName, args: GenericArgs, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + if name.is_builtin() { + return Ok(name.clone()); + } + + let def = model.get_type(name)?; + let name = expanded_name(def.name(), &args); + + if !ctx.types_seen.contains(&name) { + // Mark it as seen to avoid infinite recursion + ctx.types_seen.insert(name.clone()); + + let mut new_def = match def { + TypeDefinition::Interface(ref itf) => expand_interface(itf, args, model, ctx)?, + TypeDefinition::Request(req) => expand_request(req, args, model, ctx)?, + TypeDefinition::Response(resp) => expand_response(resp, args, model, ctx)?, + TypeDefinition::TypeAlias(ref alias) => expand_type_alias(alias, args, model, ctx)?, + TypeDefinition::Enum(_) => def.clone(), + + }; + new_def.base_mut().name = name.clone(); + ctx.new_types.insert(name.clone(), new_def); + } + + Ok(name) + } + + fn expand_interface(itf: &Interface, args: GenericArgs, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + // Clone and modify in place + let mut itf = itf.clone(); + + let mappings = param_mapping(&itf.generics, args); + + itf.generics = Vec::new(); + + if let Some(inherit) = itf.inherits { + itf.inherits = Some(expand_inherits(inherit, &mappings, model, ctx)?); + } + + // We keep the generic parameters of behaviors, but expand their value + for behavior in &mut itf.behaviors { + for arg in &mut behavior.generics { + *arg = expand_valueof(arg, &mappings, model, ctx)?; + } + } + + expand_properties(&mut itf.properties, &mappings, model, ctx)?; + + Ok(itf.into()) + } + + fn expand_request(req: &Request, args: GenericArgs, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + // Clone and modify in place + let mut req = req.clone(); + + let mappings = param_mapping(&req.generics, args); + req.generics = Vec::new(); + + if let Some(inherit) = req.inherits { + req.inherits = Some(expand_inherits(inherit, &mappings, model, ctx)?); + } + + expand_behaviors(&mut req.behaviors, &mappings, model, ctx)?; + expand_properties(&mut req.path, &mappings, model, ctx)?; + expand_properties(&mut req.query, &mappings, model, ctx)?; + expand_body(&mut req.body, &mappings, model, ctx)?; + + Ok(req.into()) + } + + fn expand_response(resp: &Response, args: GenericArgs, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + // Clone and modify in place + let mut resp = resp.clone(); + + let mappings = param_mapping(&resp.generics, args); + resp.generics = Vec::new(); + + expand_behaviors(&mut resp.behaviors, &mappings, model, ctx)?; + expand_body(&mut resp.body, &mappings, model, ctx)?; + + // TODO: exceptions + + Ok(resp.into()) + } + + fn expand_type_alias(t: &TypeAlias, args: GenericArgs, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + let mapping = param_mapping(&t.generics, args); + let value = expand_valueof(&t.typ, &mapping, model, ctx)?; + + Ok(TypeDefinition::TypeAlias(TypeAlias { + base: t.base.clone(), + generics: Vec::new(), + typ: value, + variants: t.variants.clone(), + })) + } + + //--------------------------------------------------------------------------------------------- + // Expanding type parts in place + //--------------------------------------------------------------------------------------------- + + fn expand_inherits(i: Inherits, mappings: &GenericMapping, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + let expanded = expand_valueof(&InstanceOf { + typ: i.typ, + generics: i.generics + }.into(), mappings, model, ctx)?; + + if let ValueOf::InstanceOf(inst) = expanded { + Ok(Inherits { + typ: inst.typ, + generics: Vec::new(), + }) + } else { + bail!("Inherits clause doesn't expand to an instance_of: {:?}", &expanded); + } + } + + /// + /// Expand behaviors in place + /// + fn expand_behaviors(behaviors: &mut Vec, mappings: &GenericMapping, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result<()> { + // We keep the generic parameters of behaviors, but expand their value + for behavior in behaviors { + for arg in &mut behavior.generics { + *arg = expand_valueof(arg, &mappings, model, ctx)?; + } + } + Ok(()) + } + + /// + /// Expand properties in place + /// + fn expand_properties(props: &mut Vec, mappings: &GenericMapping, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result<()> { + for prop in props { + prop.typ = expand_valueof(&prop.typ, mappings, model, ctx)?; + } + Ok(()) + } + + /// + /// Expand body in place + /// + fn expand_body(body: &mut Body, mappings: &GenericMapping, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result<()> { + match body { + Body::Value(ref mut value) => { + value.value = expand_valueof(&value.value, mappings, model, ctx)?; + }, + Body::Properties(ref mut prop_body) => { + expand_properties(&mut prop_body.properties, mappings, model, ctx)?; + }, + Body::NoBody(_) => {}, + } + + Ok(()) + } + + //--------------------------------------------------------------------------------------------- + // Expanding values + //--------------------------------------------------------------------------------------------- + + fn expand_valueof(value: &ValueOf, mappings: &GenericMapping, model: &IndexedModel, ctx: &mut Ctx) -> anyhow::Result { + match value { + ValueOf::ArrayOf(ref arr) => { + let value = expand_valueof(&arr.value, mappings, model, ctx)?; + Ok(ArrayOf{ + value: Box::new(value) + }.into()) + }, + + ValueOf::DictionaryOf(dict) => { + let key = expand_valueof(&dict.key, mappings, model, ctx)?; + let value = expand_valueof(&dict.value, mappings, model, ctx)?; + Ok(DictionaryOf { + single_key: dict.single_key, + key: Box::new(key), + value: Box::new(value), + }.into()) + + }, + + ValueOf::InstanceOf(inst) => { + // If this is a generic parameter, return its mapping + if let Some(p) = mappings.get(&inst.typ) { + return Ok(p.clone()); + } + + // Expand generic parameters, if any + let args = inst.generics.iter() + .map(|arg| expand_valueof(arg, mappings, model, ctx)) + .collect::, _>>()?; + + Ok(InstanceOf { + typ: expand_type(&inst.typ, args, model, ctx)?, + generics: Vec::new() + }.into()) + }, + + ValueOf::UnionOf(u) => { + let items = u.items.iter() + .map(|item| expand_valueof(item, mappings, model, ctx)) + .collect::, _>>()?; + Ok(UnionOf { items }.into()) + }, + + ValueOf::UserDefinedValue(_) => { + Ok(value.clone()) + }, + + ValueOf::LiteralValue(_) => { + Ok(value.clone()) + }, + } + } + + //--------------------------------------------------------------------------------------------- + // Misc + //--------------------------------------------------------------------------------------------- + + /// + /// Builds the mapping from generic parameter name to actual value + /// + fn param_mapping(generics: &GenericParams, args: GenericArgs) -> GenericMapping { + generics.iter().map(|name| name.clone()).zip(args).collect() + } + + /// + /// Creates an expanded type name if needed (i.e. when `generics` is not empty) + /// + fn expanded_name(type_name: &TypeName, args: &GenericArgs) -> TypeName { + if args.is_empty() { + return type_name.clone(); + } + + let mut name: String = type_name.name.to_string(); + for arg in args { + if let ValueOf::UserDefinedValue(_) = arg { + // Top-level types. Don't append it. + } else { + push_valueof_name(&mut name, arg); + } + } + + TypeName { + namespace: type_name.namespace.clone(), + name: name.into(), + } + } + + /// + /// Appends the type representation of a value to a string + /// + fn push_valueof_name(name: &mut String, value: &ValueOf) { + use std::fmt::Write; + match value { + ValueOf::LiteralValue(lit) => { + write!(name, "{}", lit).unwrap() + } + ValueOf::UserDefinedValue(_) => { + write!(name, "UserDefined").unwrap() + } + ValueOf::ArrayOf(a) => { + name.push_str("Array"); + push_valueof_name(name, a.value.as_ref()); + } + ValueOf::DictionaryOf(dict) => { + // Don't care about key, it's always aliased to string + name.push_str("Dict"); + push_valueof_name(name, dict.value.as_ref()) + } + ValueOf::UnionOf(u) => { + name.push_str("Union"); + for item in &u.items { + push_valueof_name(name, item) + } + } + ValueOf::InstanceOf(inst) => { + // Append unqualified name (assuming we have no duplicate generic value for the same type) + name.push_str(&inst.typ.name); + } + } + } +} + +#[cfg(test)] +mod tests { + use std::io::Write; + use super::*; + + #[test] + pub fn compare_with_js_version() -> testresult::TestResult { + + let canonical_json = { + // Deserialize and reserialize to have a consistent JSON format + let json = std::fs::read_to_string("../../output/schema/schema-no-generics.json")?; + let model: IndexedModel = serde_json::from_str(&json)?; + serde_json::to_string_pretty(&model)? + }; + + let schema_json = std::fs::read_to_string("../../output/schema/schema.json")?; + let model: IndexedModel = serde_json::from_str(&schema_json)?; + let model = expand_generics(model)?; + + let json_no_generics = serde_json::to_string_pretty(&model)?; + + if canonical_json != json_no_generics { + std::fs::create_dir("test-output")?; + let mut out = std::fs::File::create("test-output/schema-no-generics-canonical.json")?; + out.write(canonical_json.as_bytes())?; + + let mut out = std::fs::File::create("test-output/schema-no-generics-new.json")?; + out.write(json_no_generics.as_bytes())?; + + panic!("Output differs from the canonical version. Both were written to 'test-output'"); + } + + Ok(()) + } +} + + diff --git a/compiler-rs/clients_schema/src/transform/mod.rs b/compiler-rs/clients_schema/src/transform/mod.rs new file mode 100644 index 0000000000..3a8bb06a9d --- /dev/null +++ b/compiler-rs/clients_schema/src/transform/mod.rs @@ -0,0 +1,80 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//! Utilities to transform API models and common transformations: +//! * filtering according to availability +//! + +mod availability; +mod expand_generics; + +use std::collections::HashSet; +use availability::Availability; +use crate::{Availabilities, IndexedModel, TypeName}; + +/// The working state of a type graph traversal algorithm. It keeps track of the types that +/// have been visited/processed and registers those that still need to be visited. +/// +/// Using this structure allows to flatten recursion and also handle recursive data structures +/// by ensuring a type is never visited twice. +/// +#[derive(Default)] +pub struct Worksheet { + visited: HashSet::, + pending: Vec, +} + +impl Worksheet { + /// Add a type name to the pending work list, if it hasn't already been visited and if it's not + /// already in the pending list. + pub fn add(&mut self, name: &TypeName) { + if !self.visited.contains(name) && !self.pending.contains(name) { + self.pending.push(name.clone()); + } + } + + /// Retrieves a type name from the work list, if some are left. This assumes the caller will + /// process the corresponding type, and thus adds it to the list of visited type names. + pub fn next(&mut self) -> Option { + let result = self.pending.pop(); + if let Some(ref name) = result { + self.visited.insert(name.clone()); + } + result + } + + /// Has this type name been visited? + pub fn was_visited(&self, name: &TypeName) -> bool { + self.visited.contains(name) + } +} + +/// Transform a model to only keep the endpoints and types that match a predicate on the `availability` +/// properties. +/// +pub fn filter_availability( + model: IndexedModel, + avail_filter: fn(&Option) -> bool +) -> anyhow::Result { + Availability::filter(model, avail_filter) +} + +pub fn expand_generics( + model: IndexedModel +) -> anyhow::Result { + expand_generics::expand_generics(model) +} diff --git a/compiler-rs/clients_schema_to_openapi/.gitignore b/compiler-rs/clients_schema_to_openapi/.gitignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/compiler-rs/clients_schema_to_openapi/.spectral.yaml b/compiler-rs/clients_schema_to_openapi/.spectral.yaml new file mode 100644 index 0000000000..c4f537b2af --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/.spectral.yaml @@ -0,0 +1,10 @@ +# Configuration for the Spectral OpenAPI linter https://github.com/stoplightio/spectral + +extends: ["spectral:oas"] + +# Silence some rules +rules: + oas3-api-servers: off # OpenAPI "servers" must be present and non-empty array. + info-contact: off # Info object must have "contact" object. + info-description: off # Info "description" must be present and non-empty string. + operation-tag-defined: off # Operation tags must be defined in global tags. diff --git a/compiler-rs/clients_schema_to_openapi/Cargo.toml b/compiler-rs/clients_schema_to_openapi/Cargo.toml new file mode 100644 index 0000000000..355e7e52b0 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "clients_schema_to_openapi" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] +clients_schema = {path="../clients_schema"} + +serde = {version = "1.0", features=["derive"]} +serde_json = "1.0" +serde_path_to_error = "0.1" +serde_ignored = "0.1" +openapiv3 = "1.0" +anyhow = "1.0" +indexmap = "1.9" +convert_case = "0.6" +either_n = "0.2.0" +regex = "1.8" +maplit = "1.0" + +tracing = "0.1.37" +tracing-subscriber = "0.3.16" +clap = { version = "4.4.2", features = ["derive"] } + + +quantiles = "0.7.1" diff --git a/compiler-rs/clients_schema_to_openapi/README.md b/compiler-rs/clients_schema_to_openapi/README.md new file mode 100644 index 0000000000..22b14a9bf8 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/README.md @@ -0,0 +1,26 @@ +# Schema.json to OpenAPI converter + +This project provides a utility to convert the [schema.json](../../output/schema) file representing the Elasticsearch API specification to OpenAPI version 3.0.3. + +The conversion pipeline is the following: + +```mermaid +flowchart LR + ts[TypeScript API] + schema[schema.json] + schema-no-generics[schema-no-generics.json] + openapi[openapi.json] + + ts --> schema + schema --> schema-no-generics + schema-no-generics --> openapi + schema-no-generics --> serverless-openapi.json +``` + +This branch is the work for [PR #2047](https://github.com/elastic/elasticsearch-specification/pull/2047) where reviews and comments should be made. + +The OpenAPI specification generated from the current `schema.json` can be found in the [output/openapi](../../output/openapi) directory. + +The generated OpenAPI schemas validate successfully using the rather strict [Spectral OpenAPI linter](https://github.com/stoplightio/spectral), except for endpoint (this is an ES API issue). You can run the linter using: +* `npm run validate` for the Stack/Stateful OpenAPI spec +* `npm run validate-serverless` for the Serverless OpenAPI spec diff --git a/compiler-rs/clients_schema_to_openapi/package-lock.json b/compiler-rs/clients_schema_to_openapi/package-lock.json new file mode 100644 index 0000000000..921545df06 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/package-lock.json @@ -0,0 +1,3922 @@ +{ + "name": "clients_schema_to_openapi", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "clients_schema_to_openapi", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@stoplight/spectral-cli": "^6.10.1", + "json-diff": "^1.0.6" + } + }, + "node_modules/@asyncapi/specs": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-4.3.1.tgz", + "integrity": "sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==", + "dependencies": { + "@types/json-schema": "^7.0.11" + } + }, + "node_modules/@ewoudenberg/difflib": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", + "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", + "dependencies": { + "heap": ">= 0.2.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.3.tgz", + "integrity": "sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/ternary": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.3.tgz", + "integrity": "sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", + "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/@stoplight/better-ajv-errors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", + "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "dependencies": { + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@stoplight/json": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", + "integrity": "sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.3", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "jsonc-parser": "~2.2.1", + "lodash": "^4.17.21", + "safe-stable-stringify": "^1.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", + "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", + "dependencies": { + "node-fetch": "^2.6.0", + "tslib": "^1.14.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@stoplight/json-ref-resolver": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", + "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", + "dependencies": { + "@stoplight/json": "^3.21.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0 || ^13.0.0", + "@types/urijs": "^1.19.19", + "dependency-graph": "~0.11.0", + "fast-memoize": "^2.5.2", + "immer": "^9.0.6", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "urijs": "^1.19.11" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/ordered-object-literal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.4.tgz", + "integrity": "sha512-OF8uib1jjDs5/cCU+iOVy+GJjU3X7vk/qJIkIJFqwmlJKrrtijFmqwbu8XToXrwTYLQTP+Hebws5gtZEmk9jag==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/path": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", + "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/spectral-cli": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-cli/-/spectral-cli-6.10.1.tgz", + "integrity": "sha512-yjal3WE42buthVnqfwppw2YmjeXZJ8rmMaHjpx9/94xbbfS79RsReExH9sj1QZam6A9XPGWtjLdWSrklqydpYg==", + "dependencies": { + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-core": "^1.18.3", + "@stoplight/spectral-formatters": "^1.2.0", + "@stoplight/spectral-parsers": "^1.0.3", + "@stoplight/spectral-ref-resolver": "^1.0.4", + "@stoplight/spectral-ruleset-bundler": "^1.5.2", + "@stoplight/spectral-ruleset-migrator": "^1.9.5", + "@stoplight/spectral-rulesets": ">=1", + "@stoplight/spectral-runtime": "^1.1.2", + "@stoplight/types": "^13.6.0", + "chalk": "4.1.2", + "fast-glob": "~3.2.12", + "hpagent": "~1.2.0", + "lodash": "~4.17.21", + "pony-cause": "^1.0.0", + "stacktracey": "^2.1.7", + "tslib": "^2.3.0", + "yargs": "17.3.1" + }, + "bin": { + "spectral": "dist/index.js" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/@stoplight/spectral-core": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.18.3.tgz", + "integrity": "sha512-YY8x7X2SWJIhGTLPol+eFiQpWPz0D0mJdkK2i4A0QJG68KkNhypP6+JBC7/Kz3XWjqr0L/RqAd+N5cQLPOKZGQ==", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-parsers": "^1.0.0", + "@stoplight/spectral-ref-resolver": "^1.0.0", + "@stoplight/spectral-runtime": "^1.0.0", + "@stoplight/types": "~13.6.0", + "@types/es-aggregate-error": "^1.0.2", + "@types/json-schema": "^7.0.11", + "ajv": "^8.6.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "es-aggregate-error": "^1.0.7", + "jsonpath-plus": "7.1.0", + "lodash": "~4.17.21", + "lodash.topath": "^4.5.2", + "minimatch": "3.1.2", + "nimma": "0.2.2", + "pony-cause": "^1.0.0", + "simple-eval": "1.0.0", + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", + "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-formats": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.5.0.tgz", + "integrity": "sha512-VskkdU3qBSvI1dfJ79ysjvTssfNlbA6wrf/XkXK6iTyjfIVqOAWVtjypTb2U95tN/X8IjIBBhNWtZ4tNVZilrA==", + "dependencies": { + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.8.0", + "@types/json-schema": "^7.0.7", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-formatters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formatters/-/spectral-formatters-1.2.0.tgz", + "integrity": "sha512-1IrQksU1fpuvK7oT8t0jk419vkvzHbwqKYtnyoF9yZa+MV1AcSsieD5I6wBFL0WlgFr6iCg23s1V99VXlrFelw==", + "dependencies": { + "@stoplight/path": "^1.3.2", + "@stoplight/spectral-core": "^1.15.1", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.15.0", + "chalk": "4.1.2", + "cliui": "7.0.4", + "lodash": "^4.17.21", + "strip-ansi": "6.0", + "text-table": "^0.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-functions": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.7.2.tgz", + "integrity": "sha512-f+61/FtIkQeIo+a269CeaeqjpyRsgDyIk6DGr7iS4hyuk1PPk7Uf6MNRDs9FEIBh7CpdEJ+HSHbMLwgpymWTIw==", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.1", + "@stoplight/spectral-core": "^1.7.0", + "@stoplight/spectral-formats": "^1.0.0", + "@stoplight/spectral-runtime": "^1.1.0", + "ajv": "^8.6.3", + "ajv-draft-04": "~1.0.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "lodash": "~4.17.21", + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-parsers": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.3.tgz", + "integrity": "sha512-J0KW5Rh5cHWnJQ3yN+cr/ijNFVirPSR0pkQbdrNX30VboEl083UEDrQ3yov9kjLVIWEk9t9kKE7Eo3QT/k4JLA==", + "dependencies": { + "@stoplight/json": "~3.21.0", + "@stoplight/types": "^13.6.0", + "@stoplight/yaml": "~4.2.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-ref-resolver": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.4.tgz", + "integrity": "sha512-5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==", + "dependencies": { + "@stoplight/json-ref-readers": "1.2.2", + "@stoplight/json-ref-resolver": "~3.1.6", + "@stoplight/spectral-runtime": "^1.1.2", + "dependency-graph": "0.11.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-ruleset-bundler": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-bundler/-/spectral-ruleset-bundler-1.5.2.tgz", + "integrity": "sha512-4QUVUFAU+S7IQ9XeCu+0TQMYxKFpKnkOAfa9unRQ1iPL2cviaipEN6witpbAptdHJD3UUjx4OnwlX8WwmXSq9w==", + "dependencies": { + "@rollup/plugin-commonjs": "~22.0.2", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-core": ">=1", + "@stoplight/spectral-formats": ">=1", + "@stoplight/spectral-functions": ">=1", + "@stoplight/spectral-parsers": ">=1", + "@stoplight/spectral-ref-resolver": ">=1", + "@stoplight/spectral-ruleset-migrator": "^1.7.4", + "@stoplight/spectral-rulesets": ">=1", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.6.0", + "@types/node": "*", + "pony-cause": "1.1.1", + "rollup": "~2.79.0", + "tslib": "^2.3.1", + "validate-npm-package-name": "3.0.0" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/@stoplight/spectral-ruleset-migrator": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.9.5.tgz", + "integrity": "sha512-76n/HETr3UinVl/xLNldrH9p0JNoD8Gz4K75J6E4OHp4xD0P+BA2e8+W30HjIvqm1LJdLU2BNma0ioy+q3B9RA==", + "dependencies": { + "@stoplight/json": "~3.21.0", + "@stoplight/ordered-object-literal": "~1.0.4", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-functions": "^1.0.0", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.6.0", + "@stoplight/yaml": "~4.2.3", + "@types/node": "*", + "ajv": "^8.6.0", + "ast-types": "0.14.2", + "astring": "^1.7.5", + "reserved": "0.1.2", + "tslib": "^2.3.1", + "validate-npm-package-name": "3.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-rulesets": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.17.0.tgz", + "integrity": "sha512-fRWunqvtP9k0vRonwqXQ663Xt1UfmOZRdaO+S02zA3mlKdA5a1vBQjVV9QYK70TXWmqUfmabc1G35FHNT+7iRw==", + "dependencies": { + "@asyncapi/specs": "^4.1.0", + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.8.1", + "@stoplight/spectral-formats": "^1.5.0", + "@stoplight/spectral-functions": "^1.5.1", + "@stoplight/spectral-runtime": "^1.1.1", + "@stoplight/types": "^13.6.0", + "@types/json-schema": "^7.0.7", + "ajv": "^8.8.2", + "ajv-formats": "~2.1.0", + "json-schema-traverse": "^1.0.0", + "lodash": "~4.17.21", + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-runtime": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.2.tgz", + "integrity": "sha512-fr5zRceXI+hrl82yAVoME+4GvJie8v3wmOe9tU+ZLRRNonizthy8qDi0Z/z4olE+vGreSDcuDOZ7JjRxFW5kTw==", + "dependencies": { + "@stoplight/json": "^3.17.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0", + "abort-controller": "^3.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@stoplight/spectral-runtime/node_modules/@stoplight/types": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-12.5.0.tgz", + "integrity": "sha512-dwqYcDrGmEyUv5TWrDam5TGOxU72ufyQ7hnOIIDdmW5ezOwZaBFoR5XQ9AsH49w7wgvOqB2Bmo799pJPWnpCbg==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/types": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", + "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/yaml": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.2.3.tgz", + "integrity": "sha512-Mx01wjRAR9C7yLMUyYFTfbUf5DimEpHMkRDQ1PKLe9dfNILbgdxyrncsOXM3vCpsQ1Hfj4bPiGl+u4u6e9Akqw==", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.1", + "@stoplight/types": "^13.0.0", + "@stoplight/yaml-ast-parser": "0.0.48", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=10.8" + } + }, + "node_modules/@stoplight/yaml-ast-parser": { + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz", + "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==" + }, + "node_modules/@types/es-aggregate-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.2.tgz", + "integrity": "sha512-erqUpFXksaeR2kejKnhnjZjbFxUpGZx4Z7ydNL9ie8tEhXPiZTsLeUDJ6aR1F8j5wWUAtOAQWUqkc7givBJbBA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + }, + "node_modules/@types/node": { + "version": "20.5.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz", + "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==" + }, + "node_modules/@types/urijs": { + "version": "1.19.20", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.20.tgz", + "integrity": "sha512-77Mq/2BeHU894J364dUv9tSwxxyCLtcX228Pc8TwZpP5bvOoMns+gZoftp3LYl3FBH8vChpWbuagKGiMki2c1A==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "peerDependencies": { + "ajv": "^8.0.1" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==" + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dreamopt": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", + "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", + "dependencies": { + "wordwrap": ">=0.0.2" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-aggregate-error": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.10.tgz", + "integrity": "sha512-qX3K9eP7HcgeFckzRy1T5Mtb7wYwZt9ahFteBDigG5Te0vGOmOH3dHDncBiuNkZBX9i+C8LgSbpqSEl97gN11Q==", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "function-bind": "^1.1.1", + "functions-have-names": "^1.2.3", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-source": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "dependencies": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, + "node_modules/hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/jsep": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", + "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==", + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/json-diff": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.6.tgz", + "integrity": "sha512-tcFIPRdlc35YkYdGxcamJjllUhXWv4n2rK9oJ2RsAzV4FBkuV4ojKEDgcZ+kpKxDmJKv+PFK65+1tVVOnSeEqA==", + "dependencies": { + "@ewoudenberg/difflib": "0.1.0", + "colors": "^1.4.0", + "dreamopt": "~0.8.0" + }, + "bin": { + "json-diff": "bin/json-diff.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/jsonc-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==" + }, + "node_modules/jsonpath-plus": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.1.0.tgz", + "integrity": "sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nimma": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.2.tgz", + "integrity": "sha512-V52MLl7BU+tH2Np9tDrIXK8bql3MVUadnMIl/0/oZSGC9keuro0O9UUv9QKp0aMvtN8HRew4G7byY7H4eWsxaQ==", + "dependencies": { + "@jsep-plugin/regex": "^1.0.1", + "@jsep-plugin/ternary": "^1.0.2", + "astring": "^1.8.1", + "jsep": "^1.2.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + }, + "optionalDependencies": { + "jsonpath-plus": "^6.0.1", + "lodash.topath": "^4.5.2" + } + }, + "node_modules/nimma/node_modules/jsonpath-plus": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", + "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pony-cause": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", + "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==" + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reserved": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved/-/reserved-0.1.2.tgz", + "integrity": "sha512-/qO54MWj5L8WCBP9/UNe2iefJc+L9yETbH32xO/ft/EYPOTCR5k+azvDUgdCOKwZH8hXwPd0b8XBL78Nn2U69g==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-eval": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.0.tgz", + "integrity": "sha512-kpKJR+bqTscgC0xuAl2xHN6bB12lHjC2DCUfqjAx19bQyO3R2EVLOurm3H9AUltv/uFVcSCVNc6faegR+8NYLw==", + "dependencies": { + "jsep": "^1.1.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "dependencies": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@asyncapi/specs": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-4.3.1.tgz", + "integrity": "sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==", + "requires": { + "@types/json-schema": "^7.0.11" + } + }, + "@ewoudenberg/difflib": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", + "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", + "requires": { + "heap": ">= 0.2.0" + } + }, + "@jsep-plugin/regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.3.tgz", + "integrity": "sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==", + "requires": {} + }, + "@jsep-plugin/ternary": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.3.tgz", + "integrity": "sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==", + "requires": {} + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", + "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + } + } + }, + "@stoplight/better-ajv-errors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", + "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "requires": { + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "@stoplight/json": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", + "integrity": "sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==", + "requires": { + "@stoplight/ordered-object-literal": "^1.0.3", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "jsonc-parser": "~2.2.1", + "lodash": "^4.17.21", + "safe-stable-stringify": "^1.1" + } + }, + "@stoplight/json-ref-readers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", + "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", + "requires": { + "node-fetch": "^2.6.0", + "tslib": "^1.14.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@stoplight/json-ref-resolver": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", + "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", + "requires": { + "@stoplight/json": "^3.21.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0 || ^13.0.0", + "@types/urijs": "^1.19.19", + "dependency-graph": "~0.11.0", + "fast-memoize": "^2.5.2", + "immer": "^9.0.6", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "urijs": "^1.19.11" + } + }, + "@stoplight/ordered-object-literal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.4.tgz", + "integrity": "sha512-OF8uib1jjDs5/cCU+iOVy+GJjU3X7vk/qJIkIJFqwmlJKrrtijFmqwbu8XToXrwTYLQTP+Hebws5gtZEmk9jag==" + }, + "@stoplight/path": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", + "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==" + }, + "@stoplight/spectral-cli": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-cli/-/spectral-cli-6.10.1.tgz", + "integrity": "sha512-yjal3WE42buthVnqfwppw2YmjeXZJ8rmMaHjpx9/94xbbfS79RsReExH9sj1QZam6A9XPGWtjLdWSrklqydpYg==", + "requires": { + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-core": "^1.18.3", + "@stoplight/spectral-formatters": "^1.2.0", + "@stoplight/spectral-parsers": "^1.0.3", + "@stoplight/spectral-ref-resolver": "^1.0.4", + "@stoplight/spectral-ruleset-bundler": "^1.5.2", + "@stoplight/spectral-ruleset-migrator": "^1.9.5", + "@stoplight/spectral-rulesets": ">=1", + "@stoplight/spectral-runtime": "^1.1.2", + "@stoplight/types": "^13.6.0", + "chalk": "4.1.2", + "fast-glob": "~3.2.12", + "hpagent": "~1.2.0", + "lodash": "~4.17.21", + "pony-cause": "^1.0.0", + "stacktracey": "^2.1.7", + "tslib": "^2.3.0", + "yargs": "17.3.1" + } + }, + "@stoplight/spectral-core": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.18.3.tgz", + "integrity": "sha512-YY8x7X2SWJIhGTLPol+eFiQpWPz0D0mJdkK2i4A0QJG68KkNhypP6+JBC7/Kz3XWjqr0L/RqAd+N5cQLPOKZGQ==", + "requires": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-parsers": "^1.0.0", + "@stoplight/spectral-ref-resolver": "^1.0.0", + "@stoplight/spectral-runtime": "^1.0.0", + "@stoplight/types": "~13.6.0", + "@types/es-aggregate-error": "^1.0.2", + "@types/json-schema": "^7.0.11", + "ajv": "^8.6.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "es-aggregate-error": "^1.0.7", + "jsonpath-plus": "7.1.0", + "lodash": "~4.17.21", + "lodash.topath": "^4.5.2", + "minimatch": "3.1.2", + "nimma": "0.2.2", + "pony-cause": "^1.0.0", + "simple-eval": "1.0.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "@stoplight/types": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", + "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", + "requires": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + } + } + } + }, + "@stoplight/spectral-formats": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.5.0.tgz", + "integrity": "sha512-VskkdU3qBSvI1dfJ79ysjvTssfNlbA6wrf/XkXK6iTyjfIVqOAWVtjypTb2U95tN/X8IjIBBhNWtZ4tNVZilrA==", + "requires": { + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.8.0", + "@types/json-schema": "^7.0.7", + "tslib": "^2.3.1" + } + }, + "@stoplight/spectral-formatters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formatters/-/spectral-formatters-1.2.0.tgz", + "integrity": "sha512-1IrQksU1fpuvK7oT8t0jk419vkvzHbwqKYtnyoF9yZa+MV1AcSsieD5I6wBFL0WlgFr6iCg23s1V99VXlrFelw==", + "requires": { + "@stoplight/path": "^1.3.2", + "@stoplight/spectral-core": "^1.15.1", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.15.0", + "chalk": "4.1.2", + "cliui": "7.0.4", + "lodash": "^4.17.21", + "strip-ansi": "6.0", + "text-table": "^0.2.0", + "tslib": "^2.5.0" + } + }, + "@stoplight/spectral-functions": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.7.2.tgz", + "integrity": "sha512-f+61/FtIkQeIo+a269CeaeqjpyRsgDyIk6DGr7iS4hyuk1PPk7Uf6MNRDs9FEIBh7CpdEJ+HSHbMLwgpymWTIw==", + "requires": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.1", + "@stoplight/spectral-core": "^1.7.0", + "@stoplight/spectral-formats": "^1.0.0", + "@stoplight/spectral-runtime": "^1.1.0", + "ajv": "^8.6.3", + "ajv-draft-04": "~1.0.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "lodash": "~4.17.21", + "tslib": "^2.3.0" + } + }, + "@stoplight/spectral-parsers": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.3.tgz", + "integrity": "sha512-J0KW5Rh5cHWnJQ3yN+cr/ijNFVirPSR0pkQbdrNX30VboEl083UEDrQ3yov9kjLVIWEk9t9kKE7Eo3QT/k4JLA==", + "requires": { + "@stoplight/json": "~3.21.0", + "@stoplight/types": "^13.6.0", + "@stoplight/yaml": "~4.2.3", + "tslib": "^2.3.1" + } + }, + "@stoplight/spectral-ref-resolver": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.4.tgz", + "integrity": "sha512-5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==", + "requires": { + "@stoplight/json-ref-readers": "1.2.2", + "@stoplight/json-ref-resolver": "~3.1.6", + "@stoplight/spectral-runtime": "^1.1.2", + "dependency-graph": "0.11.0", + "tslib": "^2.3.1" + } + }, + "@stoplight/spectral-ruleset-bundler": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-bundler/-/spectral-ruleset-bundler-1.5.2.tgz", + "integrity": "sha512-4QUVUFAU+S7IQ9XeCu+0TQMYxKFpKnkOAfa9unRQ1iPL2cviaipEN6witpbAptdHJD3UUjx4OnwlX8WwmXSq9w==", + "requires": { + "@rollup/plugin-commonjs": "~22.0.2", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-core": ">=1", + "@stoplight/spectral-formats": ">=1", + "@stoplight/spectral-functions": ">=1", + "@stoplight/spectral-parsers": ">=1", + "@stoplight/spectral-ref-resolver": ">=1", + "@stoplight/spectral-ruleset-migrator": "^1.7.4", + "@stoplight/spectral-rulesets": ">=1", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.6.0", + "@types/node": "*", + "pony-cause": "1.1.1", + "rollup": "~2.79.0", + "tslib": "^2.3.1", + "validate-npm-package-name": "3.0.0" + } + }, + "@stoplight/spectral-ruleset-migrator": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ruleset-migrator/-/spectral-ruleset-migrator-1.9.5.tgz", + "integrity": "sha512-76n/HETr3UinVl/xLNldrH9p0JNoD8Gz4K75J6E4OHp4xD0P+BA2e8+W30HjIvqm1LJdLU2BNma0ioy+q3B9RA==", + "requires": { + "@stoplight/json": "~3.21.0", + "@stoplight/ordered-object-literal": "~1.0.4", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-functions": "^1.0.0", + "@stoplight/spectral-runtime": "^1.1.0", + "@stoplight/types": "^13.6.0", + "@stoplight/yaml": "~4.2.3", + "@types/node": "*", + "ajv": "^8.6.0", + "ast-types": "0.14.2", + "astring": "^1.7.5", + "reserved": "0.1.2", + "tslib": "^2.3.1", + "validate-npm-package-name": "3.0.0" + } + }, + "@stoplight/spectral-rulesets": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-rulesets/-/spectral-rulesets-1.17.0.tgz", + "integrity": "sha512-fRWunqvtP9k0vRonwqXQ663Xt1UfmOZRdaO+S02zA3mlKdA5a1vBQjVV9QYK70TXWmqUfmabc1G35FHNT+7iRw==", + "requires": { + "@asyncapi/specs": "^4.1.0", + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.8.1", + "@stoplight/spectral-formats": "^1.5.0", + "@stoplight/spectral-functions": "^1.5.1", + "@stoplight/spectral-runtime": "^1.1.1", + "@stoplight/types": "^13.6.0", + "@types/json-schema": "^7.0.7", + "ajv": "^8.8.2", + "ajv-formats": "~2.1.0", + "json-schema-traverse": "^1.0.0", + "lodash": "~4.17.21", + "tslib": "^2.3.0" + } + }, + "@stoplight/spectral-runtime": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.2.tgz", + "integrity": "sha512-fr5zRceXI+hrl82yAVoME+4GvJie8v3wmOe9tU+ZLRRNonizthy8qDi0Z/z4olE+vGreSDcuDOZ7JjRxFW5kTw==", + "requires": { + "@stoplight/json": "^3.17.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0", + "abort-controller": "^3.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "tslib": "^2.3.1" + }, + "dependencies": { + "@stoplight/types": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-12.5.0.tgz", + "integrity": "sha512-dwqYcDrGmEyUv5TWrDam5TGOxU72ufyQ7hnOIIDdmW5ezOwZaBFoR5XQ9AsH49w7wgvOqB2Bmo799pJPWnpCbg==", + "requires": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + } + } + } + }, + "@stoplight/types": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", + "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", + "requires": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + } + }, + "@stoplight/yaml": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.2.3.tgz", + "integrity": "sha512-Mx01wjRAR9C7yLMUyYFTfbUf5DimEpHMkRDQ1PKLe9dfNILbgdxyrncsOXM3vCpsQ1Hfj4bPiGl+u4u6e9Akqw==", + "requires": { + "@stoplight/ordered-object-literal": "^1.0.1", + "@stoplight/types": "^13.0.0", + "@stoplight/yaml-ast-parser": "0.0.48", + "tslib": "^2.2.0" + } + }, + "@stoplight/yaml-ast-parser": { + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz", + "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==" + }, + "@types/es-aggregate-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.2.tgz", + "integrity": "sha512-erqUpFXksaeR2kejKnhnjZjbFxUpGZx4Z7ydNL9ie8tEhXPiZTsLeUDJ6aR1F8j5wWUAtOAQWUqkc7givBJbBA==", + "requires": { + "@types/node": "*" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + }, + "@types/node": { + "version": "20.5.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz", + "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==" + }, + "@types/urijs": { + "version": "1.19.20", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.20.tgz", + "integrity": "sha512-77Mq/2BeHU894J364dUv9tSwxxyCLtcX228Pc8TwZpP5bvOoMns+gZoftp3LYl3FBH8vChpWbuagKGiMki2c1A==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "requires": {} + }, + "ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "requires": {} + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "requires": { + "printable-characters": "^1.0.42" + } + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "requires": { + "tslib": "^2.0.1" + } + }, + "astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==" + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==" + }, + "dreamopt": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", + "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", + "requires": { + "wordwrap": ">=0.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + } + }, + "es-aggregate-error": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.10.tgz", + "integrity": "sha512-qX3K9eP7HcgeFckzRy1T5Mtb7wYwZt9ahFteBDigG5Te0vGOmOH3dHDncBiuNkZBX9i+C8LgSbpqSEl97gN11Q==", + "requires": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "function-bind": "^1.1.1", + "functions-have-names": "^1.2.3", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-source": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "requires": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, + "hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==" + }, + "immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "jsep": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.3.8.tgz", + "integrity": "sha512-qofGylTGgYj9gZFsHuyWAN4jr35eJ66qJCK4eKDnldohuUoQFbU3iZn2zjvEbd9wOAhP9Wx5DsAAduTyE1PSWQ==" + }, + "json-diff": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.6.tgz", + "integrity": "sha512-tcFIPRdlc35YkYdGxcamJjllUhXWv4n2rK9oJ2RsAzV4FBkuV4ojKEDgcZ+kpKxDmJKv+PFK65+1tVVOnSeEqA==", + "requires": { + "@ewoudenberg/difflib": "0.1.0", + "colors": "^1.4.0", + "dreamopt": "~0.8.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "jsonc-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==" + }, + "jsonpath-plus": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.1.0.tgz", + "integrity": "sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "nimma": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.2.tgz", + "integrity": "sha512-V52MLl7BU+tH2Np9tDrIXK8bql3MVUadnMIl/0/oZSGC9keuro0O9UUv9QKp0aMvtN8HRew4G7byY7H4eWsxaQ==", + "requires": { + "@jsep-plugin/regex": "^1.0.1", + "@jsep-plugin/ternary": "^1.0.2", + "astring": "^1.8.1", + "jsep": "^1.2.0", + "jsonpath-plus": "^6.0.1", + "lodash.topath": "^4.5.2" + }, + "dependencies": { + "jsonpath-plus": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", + "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==", + "optional": true + } + } + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pony-cause": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", + "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==" + }, + "printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==" + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "reserved": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved/-/reserved-0.1.2.tgz", + "integrity": "sha512-/qO54MWj5L8WCBP9/UNe2iefJc+L9yETbH32xO/ft/EYPOTCR5k+azvDUgdCOKwZH8hXwPd0b8XBL78Nn2U69g==" + }, + "resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-eval": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.0.tgz", + "integrity": "sha512-kpKJR+bqTscgC0xuAl2xHN6bB12lHjC2DCUfqjAx19bQyO3R2EVLOurm3H9AUltv/uFVcSCVNc6faegR+8NYLw==", + "requires": { + "jsep": "^1.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "requires": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" + }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "requires": { + "builtins": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } + } +} diff --git a/compiler-rs/clients_schema_to_openapi/package.json b/compiler-rs/clients_schema_to_openapi/package.json new file mode 100644 index 0000000000..2610fe5481 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/package.json @@ -0,0 +1,17 @@ +{ + "name": "clients_schema_to_openapi", + "version": "1.0.0", + "type": "module", + "description": "", + "main": "index.js", + "scripts": { + "validate": "./node_modules/.bin/spectral lint ../../output/openapi/elasticsearch-openapi.json", + "validate-serverless": "./node_modules/.bin/spectral lint ../../output/openapi/elasticsearch-serverless-openapi.json" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@stoplight/spectral-cli": "^6.10.1", + "json-diff": "^1.0.6" + } +} diff --git a/compiler-rs/clients_schema_to_openapi/src/components.rs b/compiler-rs/clients_schema_to_openapi/src/components.rs new file mode 100644 index 0000000000..d56da11212 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/components.rs @@ -0,0 +1,65 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use openapiv3::{Components, Parameter, ReferenceOr, RequestBody, Response, Schema, StatusCode}; +use clients_schema::TypeName; +use crate::utils::SchemaName; + +pub struct TypesAndComponents<'a> { + pub model: &'a clients_schema::IndexedModel, + pub components: &'a mut Components, +} + +impl <'a> TypesAndComponents<'a> { + pub fn new(model: &'a clients_schema::IndexedModel, components: &'a mut Components) -> TypesAndComponents<'a> { + TypesAndComponents { + model, + components, + } + } + + pub fn add_request_body(&mut self, endpoint: &str, body: RequestBody,) -> ReferenceOr { + self.components.request_bodies.insert(endpoint.to_string(), ReferenceOr::Item(body)); + ReferenceOr::Reference { + reference: format!("#/components/requestBodies/{}", endpoint) + } + } + + pub fn add_parameter(&mut self, endpoint: &str, param: Parameter, duplicate: bool) -> ReferenceOr { + let suffix = if duplicate {"_"} else {""}; + let result = ReferenceOr::Reference { + reference: format!("#/components/parameters/{}#{}{}", endpoint, ¶m.parameter_data_ref().name, suffix) + }; + self.components.parameters.insert( + format!("{}#{}{}", endpoint, ¶m.parameter_data_ref().name, suffix), + ReferenceOr::Item(param) + ); + result + } + + pub fn add_response(&mut self, endpoint: &str, status: StatusCode, response: Response) -> ReferenceOr { + self.components.responses.insert(format!("{}#{}", endpoint, status), ReferenceOr::Item(response)); + ReferenceOr::Reference { + reference: format!("#/components/responses/{}#{}", endpoint, status) + } + } + + pub fn add_schema(&mut self, name: &TypeName, schema: ReferenceOr) -> ReferenceOr { + self.components.schemas.insert(name.schema_name(), schema); + name.schema_ref() + } +} diff --git a/compiler-rs/clients_schema_to_openapi/src/lib.rs b/compiler-rs/clients_schema_to_openapi/src/lib.rs new file mode 100644 index 0000000000..f5ae627245 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/lib.rs @@ -0,0 +1,146 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +mod paths; +mod schemas; +mod components; +mod utils; + +use std::collections::HashSet; +use std::io::{BufWriter, Write}; +use std::path::Path; +use openapiv3::{Components, OpenAPI}; +use tracing::warn; + +use clients_schema::{Availabilities, Endpoint, IndexedModel}; +use crate::components::TypesAndComponents; + +pub fn convert_schema_file( + path: impl AsRef, + filter: Option) -> bool>, + endpoint_filter: fn(e: &Endpoint) -> bool, + out: impl Write +) -> anyhow::Result<()> { + + // Parsing from a string is faster than using a buffered reader when there is a need for look-ahead + // See https://github.com/serde-rs/json/issues/160 + let json = &std::fs::read_to_string(path)?; + let json_deser = &mut serde_json::Deserializer::from_str(&json); + + let mut unused = HashSet::new(); + let mut model: IndexedModel = serde_ignored::deserialize(json_deser, |path| { + if let serde_ignored::Path::Map {parent: _, key} = path { + unused.insert(key); + } + })?; + if !unused.is_empty() { + let msg = unused.into_iter().collect::>().join(", "); + warn!("Unknown fields found in schema.json: {}", msg); + } + + if let Some(filter) = filter { + model = clients_schema::transform::filter_availability(model, filter)?; + } + + model.endpoints.retain(endpoint_filter); + + let openapi = convert_schema(&model)?; + serde_json::to_writer_pretty(BufWriter::new(out), &openapi)?; + Ok(()) +} + +pub fn convert_schema( + model: &IndexedModel, +) -> anyhow::Result { + + let mut openapi = OpenAPI { + openapi: "3.0.3".into(), + info: info(model), + servers: vec![], + paths: Default::default(), + components: Some(Components { + security_schemes: Default::default(), + // Filled from endpoints + responses: Default::default(), + // Filled from endpoints + // TODO: add common request parameters and common cat parameters? + parameters: Default::default(), + examples: Default::default(), + // Filled from endpoints + request_bodies: Default::default(), + headers: Default::default(), + // Filled with type definitions + schemas: Default::default(), + links: Default::default(), + callbacks: Default::default(), + extensions: Default::default(), + }), + security: None, + tags: vec![], + external_docs: None, + extensions: Default::default(), + }; + + let mut tac = TypesAndComponents::new(&model, openapi.components.as_mut().unwrap()); + + // Endpoints + for endpoint in &model.endpoints { + paths::add_endpoint(endpoint, &mut tac, &mut openapi.paths)?; + } + + // // Sort maps to ensure output stability + // openapi.paths.extensions.sort_keys(); + // if let Some(ref mut comp) = openapi.components { + // comp.callbacks.sort_keys(); + // comp.examples.sort_keys(); + // comp.extensions.sort_keys(); + // comp.headers.sort_keys(); + // comp.links.sort_keys(); + // comp.parameters.sort_keys(); + // comp.request_bodies.sort_keys(); + // comp.responses.sort_keys(); + // comp.schemas.sort_keys(); + // comp.security_schemes.sort_keys(); + // } + + Ok(openapi) +} + +fn info(model: &IndexedModel) -> openapiv3::Info { + let (title, license) = if let Some(info) = &model.info { + ( + info.title.clone(), + Some(openapiv3::License { + name: info.license.name.clone(), + url: Some(info.license.url.clone()), + extensions: Default::default(), + }) + ) + } else { + ("".to_string(), None) + }; + + openapiv3::Info { + title, + description: None, + terms_of_service: None, + contact: None, + license, + version: "".to_string(), // TODO + extensions: Default::default(), + } +} diff --git a/compiler-rs/clients_schema_to_openapi/src/main.rs b/compiler-rs/clients_schema_to_openapi/src/main.rs new file mode 100644 index 0000000000..1cd1264319 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/main.rs @@ -0,0 +1,176 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use clap::{Parser, ValueEnum}; +use tracing::Level; +use tracing_subscriber::fmt::format::FmtSpan; +use tracing_subscriber::FmtSubscriber; +use std::path::{Path, PathBuf}; +use clients_schema::{Availabilities, Visibility}; + +fn main() -> anyhow::Result<()> { + + let cli = Cli::parse(); + + let subscriber = FmtSubscriber::builder() + .with_writer(std::io::stderr) + .with_max_level(Level::TRACE) + .with_span_events(FmtSpan::EXIT) + .finish(); + tracing::subscriber::set_global_default(subscriber)?; + + cli.run()?; + + Ok(()) +} + +// fn main() -> anyhow::Result<()> { +// +// let subscriber = FmtSubscriber::builder() +// .with_writer(std::io::stderr) +// .with_max_level(Level::TRACE) +// .with_span_events(FmtSpan::EXIT) +// .finish(); +// tracing::subscriber::set_global_default(subscriber)?; +// +// clients_schema_to_openapi::convert_schema_file( +// "../output/schema/schema-no-generics.json", +// None, +// |e| true, +// //|e| e.name == "search", +// //|e| e.name == "clear_scroll", +// //|e| e.name.starts_with("indices."), +// //|e| e.name == "indices.exists_alias" || e.name == "indices.delete_alias", +// //|e| &e.name[0..1] < "d", +// std::fs::File::create("../output/openapi/elasticsearch-openapi.json")? +// //std::io::stdout() +// )?; +// +// Ok(()) +// } + +impl Cli { + fn run(self) -> anyhow::Result<()>{ + + let json = if self.schema == Path::new("-") { + std::io::read_to_string(std::io::stdin())? + } else { + std::fs::read_to_string(self.schema)? + }; + + let mut model: clients_schema::IndexedModel = serde_json::from_str(&json)?; + + if let Some(flavor) = self.flavor { + if flavor != SchemaFlavor::All { + let filter: fn(&Option) -> bool = match flavor { + SchemaFlavor::All => |_| { + true + }, + SchemaFlavor::Stack => |a| { + // Generate public and private items for Stack + clients_schema::Flavor::Stack.available(a) + }, + SchemaFlavor::Serverless => |a| { + // Generate only public items for Serverless + clients_schema::Flavor::Serverless.visibility(a) == Some(Visibility::Public) + }, + }; + + model = clients_schema::transform::expand_generics(model)?; + model = clients_schema::transform::filter_availability(model, filter)?; + } + } + + let openapi = clients_schema_to_openapi::convert_schema(&model)?; + + let output: Box = { + if let Some(output) = self.output { + if output == Path::new("-") { + Box::new(std::io::stdout()) + } else { + Box::new(std::fs::File::create(output)?) + } + } else { + Box::new(std::io::stdout()) + } + }; + let output = std::io::BufWriter::new(output); + + serde_json::to_writer_pretty(output, &openapi)?; + + Ok(()) + } +} + +#[derive(Debug, Parser)] +#[command(author, version, about, long_about = None)] +pub struct Cli { + /// Schema file to transform. Use '-' for stdin. + schema: PathBuf, + + #[arg(short, long)] + /// Output file. Defaults to stdout. + output: Option, + + /// Elasticsearch flavor to produce + #[arg(short, long)] + flavor: Option +} + +#[derive(Debug, Clone, PartialEq, ValueEnum)] +pub enum SchemaFlavor { + /// No schema filtering + All, + /// Stack (stateful) flavor + Stack, + /// Serverless flavor + Serverless, + // /// Common subset to Stack and Serverless + // Common, +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_full() -> anyhow::Result<()> { + Cli { + schema: "../../output/schema/schema-no-generics.json".into(), + flavor: None, + output: Some("../../output/openapi/elasticsearch-openapi.json".into()) + }.run() + } + + #[test] + fn test_serverless() -> anyhow::Result<()> { + Cli { + schema: "../../output/schema/schema-no-generics.json".into(), + flavor: Some(SchemaFlavor::Serverless), + output: Some("../../output/openapi/elasticsearch-serverless-openapi.json".into()) + }.run() + } + + #[test] + fn test_serverless0() -> anyhow::Result<()> { + Cli { + schema: "../../output/schema/schema.json".into(), + flavor: Some(SchemaFlavor::Serverless), + output: Some("../../output/openapi/elasticsearch-serverless-openapi2.json".into()) + }.run() + } +} diff --git a/compiler-rs/clients_schema_to_openapi/src/paths.rs b/compiler-rs/clients_schema_to_openapi/src/paths.rs new file mode 100644 index 0000000000..d0ba26021a --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/paths.rs @@ -0,0 +1,299 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use std::collections::HashMap; +use std::fmt::Write; +use anyhow::{anyhow, bail}; +use indexmap::indexmap; + +use openapiv3::{MediaType, Parameter, ParameterData, ParameterSchemaOrContent, PathItem, Paths, PathStyle, QueryStyle, ReferenceOr, RequestBody, Response, Responses, StatusCode}; +use regex::Regex; + +use clients_schema::Property; +use crate::components::TypesAndComponents; + +/// Add an endpoint to the OpenAPI schema. This will result in the addition of a number of elements to the +/// openapi schema's `paths` and `components` sections. +/// +pub fn add_endpoint(endpoint: &clients_schema::Endpoint, tac: &mut TypesAndComponents, out: &mut Paths) -> anyhow::Result<()> { + + if endpoint.request.is_none() { + tracing::warn!("Endpoint {} is missing a request -- ignored", &endpoint.name); + return Ok(()); + } + + if endpoint.response.is_none() { + tracing::warn!("Endpoint {} is missing a response -- ignored", &endpoint.name); + return Ok(()); + } + + // Namespace + //let namespace = match endpoint.name.split_once('.') { + // Some((ns, _)) => ns, + // None => "core", + //}; + + // Will we produce multiple paths? If true, we will register components for reuse across paths + let is_multipath = endpoint.urls.len() > 1 || endpoint.urls.iter().find(|u| u.methods.len() > 1).is_some(); + + let request = tac.model.get_request(endpoint.request.as_ref().unwrap())?; + + fn parameter_data(prop: &Property, in_path: bool, tac: &mut TypesAndComponents) -> anyhow::Result { + Ok(ParameterData { + name: prop.name.clone(), + description: prop.description.clone(), + required: in_path || prop.required, // Path parameters are always required + deprecated: Some(prop.deprecation.is_some()), + format: ParameterSchemaOrContent::Schema(tac.convert_value_of(&prop.typ)?), + example: None, + examples: Default::default(), + explode: None, // Defaults to simple, i.e. comma-separated values for arrays + extensions: Default::default(), + }) + } + + //----- Prepare path parameters + + let mut path_params = HashMap::new(); + for prop in request.path.iter() { + let parameter = Parameter::Path { + parameter_data: parameter_data(prop, true, tac)?, + // Simple (the default) maps array to comma-separated values, which is ES behavior + // See https://www.rfc-editor.org/rfc/rfc6570#section-3.2.2 + style: PathStyle::Simple, + }; + + // Reuse reference if multiple paths, and inline otherwise + path_params.insert(prop.name.clone(), if is_multipath { + tac.add_parameter(&endpoint.name, parameter, false) + } else { + ReferenceOr::Item(parameter) + }); + }; + + //----- Prepare query parameters + + let mut query_params = Vec::new(); + for prop in request.query.iter() { + let parameter = Parameter::Query { + parameter_data: parameter_data(prop, false, tac)?, + allow_reserved: false, + style: QueryStyle::Form, + allow_empty_value: None, + }; + + // Does this also exist as a path parameter? (e.g fields in _cat/fielddata) + let duplicate = path_params.contains_key(&prop.name); + + query_params.push(if is_multipath { + tac.add_parameter(&endpoint.name, parameter, duplicate) + } else { + ReferenceOr::Item(parameter) + }); + }; + + //---- Prepare request body + + let request_body = tac.convert_request(request)?.map(|schema| { + let media = MediaType { + schema: Some(schema), + example: None, + examples: Default::default(), + encoding: Default::default(), + extensions: Default::default(), + }; + + let body = RequestBody { + description: None, + // FIXME: nd-json requests + content: indexmap!{ "application/json".to_string() => media }, + required: endpoint.request_body_required, + extensions: Default::default(), + }; + + if is_multipath { + tac.add_request_body(&endpoint.name, body) + } else { + ReferenceOr::Item(body) + } + }); + + //---- Prepare request responses + + // FIXME: buggy for responses with no body + // TODO: handle binary responses + let response_def = tac.model.get_response(endpoint.response.as_ref().unwrap())?; + let response = Response { + description: "".to_string(), + headers: Default::default(), + content: indexmap! { + "application/json".to_string() => MediaType { + schema: tac.convert_response(response_def)?, + example: None, + examples: Default::default(), + encoding: Default::default(), + extensions: Default::default(), + } + }, + links: Default::default(), + extensions: Default::default(), + }; + let response = if is_multipath { + tac.add_response(&endpoint.name, StatusCode::Code(200), response) + } else { + ReferenceOr::Item(response) + }; + + let responses = indexmap! { + StatusCode::Code(200) => response + // TODO: add error responses + }; + + //---- Build a path for each url + method + let mut operation_counter = 0; + + for url_template in &endpoint.urls { + + // Path and query parameters + + let mut parameters = Vec::new(); + + for path_variable in get_path_parameters(&url_template.path) { + let parameter = path_params.get(path_variable) + .ok_or_else(|| anyhow!("Missing path parameter definition {} for endpoint {}", + path_variable, &endpoint.name) + )?; + parameters.push(parameter.clone()); + } + + parameters.append(&mut query_params.clone()); + + // Create the operation, it will be repeated if we have several methods + let operation = openapiv3::Operation { + tags: vec![endpoint.name.clone()], + summary: Some(endpoint.description.clone()), + description: Some(endpoint.description.clone()), + external_docs: tac.convert_external_docs(endpoint), + operation_id: None, // set in clone_operation below with operation_counter + parameters, + request_body: request_body.clone(), + responses: Responses { + default: None, + responses: responses.clone(), + extensions: Default::default(), + }, + deprecated: endpoint.deprecation.is_some(), + security: None, + servers: vec![], + extensions: Default::default(), // FIXME: translate availability? + }; + + + let mut operation_path = url_template.path.clone(); + + // Disabled -- OpenAPI path templates do not contain the query string + if false { + // Add query parameter names to the path template + // See https://www.rfc-editor.org/rfc/rfc6570#section-3.2.8 + if !&request.query.is_empty() { + let params = &request.query.iter().map(|p| p.name.as_str()).collect::>().join(","); + operation_path = format!("{operation_path}{{?{params}}}"); + } + } + + // info!("Adding {} - {}", &endpoint.name, &operation_path); + + // Check if this path has already been encountered with a different http method (possibly in a + // different endpoint) + let path = out.paths + .entry(operation_path) + .or_insert(ReferenceOr::Item(PathItem::default())); + + // A PathItem contains entries for all http methods, and some additional fields + // that we can't fill as they cross several endpoints. This could be some namespace-level + // documentation though. + // PathItem { + // summary: None, + // description: None, + // get: None, + // put: None, + // post: None, + // delete: None, + // options: None, + // head: None, + // patch: None, + // trace: None, + // servers: vec![], + // parameters: vec![], + // extensions: Default::default(), + // }; + + let path = match path { + ReferenceOr::Item(ref mut item) => item, + _ => bail!("Expecting an item (should not happe)") + }; + + for method in &url_template.methods { + let method_field = match method.as_str() { + "GET" => &mut path.get, + "PUT" => &mut path.put, + "POST" => &mut path.post, + "DELETE" => &mut path.delete, + "OPTIONS" => &mut path.options, + "HEAD" => &mut path.head, + "PATCH" => &mut path.patch, + "TRACE" => &mut path.trace, + _ => bail!("Unsupported method: {}", method), + }; + + let mut operation = operation.clone(); + let mut operation_id: String = endpoint.name + .chars() + .map(|x| match x { + '_' | '.' => '-', + _ => x + }).collect(); + if operation_counter != 0 { + write!(&mut operation_id, "-{}", operation_counter)?; + } + operation.operation_id = Some(operation_id); + + operation_counter += 1; + *method_field = Some(operation); + } + } + + Ok(()) +} + +fn get_path_parameters (template: &str) -> Vec<&str> { + let regex = Regex::new(r"\{([^}]*)\}").unwrap(); + regex + .find_iter(template) + .map(|m| &template[m.start()+1 .. m.end()-1]) + .collect() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_path_parameters() { + assert_eq!(get_path_parameters("/{index}/{id}"), vec!{"index", "id"}) + } +} diff --git a/compiler-rs/clients_schema_to_openapi/src/schemas.rs b/compiler-rs/clients_schema_to_openapi/src/schemas.rs new file mode 100644 index 0000000000..a87f2b271b --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/schemas.rs @@ -0,0 +1,454 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use anyhow::bail; +use indexmap::IndexMap; +use openapiv3::{AdditionalProperties, ArrayType, Discriminator, ExternalDocumentation, NumberType, ObjectType, ReferenceOr, Schema, SchemaData, SchemaKind, StringType, Type}; +use clients_schema::{Body, Enum, Interface, LiteralValueValue, PropertiesBody, Property, Request, Response, TypeAlias, TypeAliasVariants, TypeDefinition, TypeName, ValueOf}; + +use crate::components::TypesAndComponents; +use crate::utils::{ IntoSchema, SchemaName, ReferenceOrBoxed }; + +// A placeholder in components.schema to handle recursive types +const SCHEMA_PLACEHOLDER: ReferenceOr = ReferenceOr::Reference { + reference: String::new() +}; + +/// +/// Convert `schema.json` type and value definitions to OpenAPI schemas: +/// +/// The `convert_*` functions return a concrete schema and not a reference and do not store them in +/// the OpenAPI `components.schema`. This is the role of `for_type_name` hat creates and stores the +/// schema and returns a reference. +/// +impl <'a> TypesAndComponents<'a> { + + /// + /// Convert a value. Returns a schema reference and not a concrete schema, as values can + /// be simple references to types. + /// + pub fn convert_value_of(&mut self, value_of: &ValueOf) -> anyhow::Result> { + + Ok(match value_of { + // + // Instance_of + ValueOf::InstanceOf(instance) => { + // Do not care about generics, we work with an expanded schema + self.for_type_name(&instance.typ)? + }, + + // + // Array + ValueOf::ArrayOf(array) => { + ReferenceOr::Item(Schema { + schema_data: Default::default(), + schema_kind: SchemaKind::Type(Type::Array(ArrayType { + items: Some(self.convert_value_of(&array.value)?.boxed()), + min_items: None, + max_items: None, + unique_items: false, + })) + }) + }, + + // + // Union + ValueOf::UnionOf(union) => { + let mut items = Vec::new(); + for item in &union.items { + items.push(self.convert_value_of(item)?) + } + + ReferenceOr::Item(Schema { + schema_data: Default::default(), + schema_kind: SchemaKind::OneOf { + one_of: items, + } + }) + }, + + // + // Dictionary + // See https://swagger.io/docs/specification/data-models/dictionaries/ + ValueOf::DictionaryOf(dict) => { + ObjectType { + properties: Default::default(), + required: vec![], + additional_properties: Some(AdditionalProperties::Schema(Box::new(self.convert_value_of(&dict.value)?))), + // Single key dictionaries have exactly one property + min_properties: if dict.single_key { Some(1) } else { None }, + max_properties: if dict.single_key { Some(1) } else { None }, + }.into_schema_ref() + }, + + // + // User defined value + ValueOf::UserDefinedValue(_) => { + ReferenceOr::Item(Schema { + schema_data: Default::default(), + // FIXME: not the right way to represent an arbitrary value + schema_kind: SchemaKind::Type(Type::Object(ObjectType::default())) + }) + }, + + // + // Literal value + ValueOf::LiteralValue(literal) => { + let str_value = match &literal.value { + LiteralValueValue::String(s) => s.clone(), + LiteralValueValue::Number(n) => n.to_string(), + LiteralValueValue::Boolean(b) => b.to_string(), + }; + + ReferenceOr::Item(Schema { + // Note: the enclosing property will add "required: true" + schema_data: Default::default(), + schema_kind: SchemaKind::Type(Type::String(StringType { + format: Default::default(), + pattern: None, + enumeration: vec![Some(str_value)], + min_length: None, + max_length: None, + })), + }) + } + }) + } + + /// + /// Return the reference for a type name, registering it if needed + /// + pub fn for_type_name(&mut self, type_name: &TypeName) -> anyhow::Result> { + let schema_name = type_name.schema_name(); + + if self.components.schemas.contains_key(&schema_name) { + // Has already been processed + return Ok(type_name.schema_ref()); + } + + // Builtin types + if type_name.namespace == "_builtins" { + return match type_name.name.as_str() { + "string" => { + Ok(Type::String(StringType { + format: Default::default(), + pattern: None, + enumeration: vec![], + min_length: None, + max_length: None, + }).into_schema_ref()) + }, + "boolean" => { + Ok(Type::Boolean {}.into_schema_ref()) + }, + "number" => { + Ok(Type::Number(NumberType::default()).into_schema_ref()) + }, + "void" => { + // Empty object + Ok(ObjectType::default().into_schema_ref()) + }, + "null" => { + // Note that there is no null type; instead, the nullable attribute is used as a modifier of the base type. + // https://swagger.io/docs/specification/data-models/data-types/ + // FIXME: null should be handled in unions by setting "nullable" to the resulting schema + + Ok(Type::String(StringType { + format: Default::default(), + pattern: None, + enumeration: vec![], + min_length: None, + max_length: None, + }).into_schema_ref_with_data_fn(|data| { data.nullable = true; })) + }, + "binary" => { + // FIXME: must be handled in requests and responses + Ok(ObjectType::default().into_schema_ref()) + } + _ => bail!("unknown builtin type: {}", type_name), + } + } + + if type_name.namespace == "_types" { + match type_name.name.as_str() { + "double" | "long" | "integer" | "float" => { + return Ok(Type::Number(NumberType::default()).into_schema_ref()); + }, + _ => {}, + } + } + + // Store a placeholder, it will avoid infinite loops with recursive types + self.components.schemas.insert(schema_name, SCHEMA_PLACEHOLDER); + + let typedef = self.model.get_type(type_name)?; + use TypeDefinition::*; + let schema = match typedef { + // Request and response may not have a body (and a schema) and so have dedicated methods below + Request(_) => bail!("Requests should be handled using for_request"), + Response(_) => bail!("Responses should be handled using for_request"), + + Enum(enumm) => self.convert_enum(enumm)?.into_schema_ref(), + Interface(itf) => self.convert_interface_definition(itf)?.into_schema_ref(), + TypeAlias(alias) => self.convert_type_alias(alias)?.into_schema_ref(), + }; + + Ok(self.add_schema(type_name, schema)) + } + + // Returns the schema, if any, for a request body + pub fn convert_request(&mut self, request: &Request) -> anyhow::Result>> { + self.for_body(&request.body) + } + + pub fn convert_response(&mut self, response: &Response) -> anyhow::Result>> { + self.for_body(&response.body) + } + + pub fn convert_external_docs(&self, obj: & impl clients_schema::Documented) + -> Option { + // FIXME: does the model contain resolved doc_id? + obj.doc_url().map (|url| { + let branch: &str = self.model.info.as_ref().and_then(|i| i.version.as_deref()).unwrap_or("current"); + ExternalDocumentation { + description: None, + url: url.trim().replace("{branch}", branch), + extensions: Default::default(), + } + }) + } + + fn for_body(&mut self, body: &Body) -> anyhow::Result>> { + + let result = match body { + Body::NoBody(_) => None, + Body::Value(value_body) => Some(self.convert_value_of(&value_body.value)?), // TODO codegen_name? + Body::Properties(PropertiesBody { properties }) => { + Some(ObjectType { + properties: self.convert_properties(properties.iter())?, + required: self.required_properties(properties.iter()), + additional_properties: None, + min_properties: None, + max_properties: None, + }.into_schema_ref()) + } + }; + + Ok(result) + } + + fn convert_property(&mut self, prop: &Property) -> anyhow::Result> { + let mut result = self.convert_value_of(&prop.typ)?; + // TODO: how can we just wrap a reference so that we can add docs? + if let ReferenceOr::Item(ref mut schema) = &mut result { + self.fill_data_with_prop(&mut schema.schema_data, prop); + } + Ok(result) + } + + fn convert_properties<'b> (&mut self, props: impl Iterator) -> anyhow::Result>>> { + let mut result = IndexMap::new(); + for prop in props { + result.insert(prop.name.clone(), self.convert_property(prop)?.boxed()); + } + Ok(result) + } + + fn required_properties<'b> (&mut self, props: impl Iterator) -> Vec { + props.filter_map(|prop| prop.required.then(|| prop.name.clone())).collect() + } + + /// + /// Convert an interface definition into a schema + /// + fn convert_interface_definition(&mut self, itf: &Interface) -> anyhow::Result { + + if !itf.generics.is_empty() { + bail!("Interface definition {} has generic parameters. Expand generics before conversion", itf.base.name); + } + + let mut schema = if let Some(container) = &itf.variants { + // TODO: interface definition container.non_exhaustive + let _non_exhaustive = container.non_exhaustive; + + // Split container properties and variants + let container_props = itf.properties.iter().filter(|p| p.container_property).collect::>(); + let variant_props = itf.properties.iter().filter(|p| !p.container_property).collect::>(); + + // A container is represented by an object will all optional properties and exactly one that + // needs to be set. + let mut schema = ObjectType { + properties: self.convert_properties(variant_props.iter().map(|p| *p))?, + required: vec![], + additional_properties: None, + min_properties: Some(1), + max_properties: Some(1), + }.into_schema(); + + if !container_props.is_empty() { + // Create a schema for the container property, and group it in an "allOf" with variants + let container_props_schema = ObjectType { + properties: self.convert_properties(container_props.iter().map(|p| *p))?, + required: self.required_properties(container_props.iter().map(|p| *p)), + additional_properties: None, + min_properties: None, + max_properties: None, + }.into_schema_ref(); + + schema = SchemaKind::AllOf { + all_of: vec![container_props_schema, schema.into_schema_ref()], + }.into_schema(); + } + + self.fill_schema_with_base(&mut schema, &itf.base); + schema + + } else { + let schema = ObjectType { + properties: self.convert_properties(itf.properties.iter())?, + required: self.required_properties(itf.properties.iter()), + additional_properties: None, + min_properties: None, + max_properties: None, + }.into_schema(); + + schema + }; + + // Inheritance + if let Some(inherit) = &itf.inherits { + schema = SchemaKind::AllOf { + all_of: vec![self.for_type_name(&inherit.typ)?, schema.into_schema_ref()], + }.into_schema(); + } + + // Behaviors + for bh in &itf.implements { + match bh.typ.name.as_str() { + name @ ("AdditionalProperty" | "AdditionalProperties") => { + let single = name == "AdditionalProperty"; + let value_schema = self.convert_value_of(&bh.generics[1])?; + + schema = ObjectType { + properties: Default::default(), + required: vec![], + additional_properties: Some(AdditionalProperties::Schema(Box::new(value_schema))), + min_properties: if single { Some(1) } else { None }, + max_properties: if single { Some(1) } else { None }, + }.into_schema(); + } + _ => bail!("Unknown behavior {}", &bh.typ) + } + } + Ok(schema) + } + + /// + /// Creates alias an alias that references another type. + /// + fn convert_type_alias(&mut self, alias: &TypeAlias) -> anyhow::Result { + + if !alias.generics.is_empty() { + bail!("Type alias {} has generic parameters. Expand generics before conversion", alias.base.name); + } + + let mut schema = self + .convert_value_of(&alias.typ)? + .into_schema_with_base(self, &alias.base); + + match &alias.variants { + None => {}, + Some(TypeAliasVariants::ExternalTag(_tag)) => { + // TODO: typed-keys: add an extension to identify it? + }, + Some(TypeAliasVariants::InternalTag(tag)) => { + // TODO: add tag.default_tag as an extension + schema.schema_data.discriminator = Some(Discriminator { + property_name: tag.tag.clone(), + mapping: Default::default(), + extensions: Default::default(), + }); + }, + }; + + Ok(schema) + } + + /// + /// Register an enumeration and return the schema reference. + /// + fn convert_enum(&mut self, enumm: &Enum) -> anyhow::Result { + + // TODO: enum.is_open + + let enum_values = enumm.members.iter().map(|m| { + Some(m.name.clone()) + }).collect::>(); + + Ok(StringType { + format: Default::default(), + pattern: None, + enumeration: enum_values, + min_length: None, + max_length: None, + }.into_schema_with_base(self, &enumm.base)) + } + + fn fill_schema_with_base(&self, schema: &mut Schema, base: &clients_schema::BaseType) { + self.fill_data_with_base(&mut schema.schema_data, base); + } + + pub fn fill_data_with_base(&self, data: &mut SchemaData, base: &clients_schema::BaseType) { + // SchemaData { + // nullable: false, + // read_only: false, + // write_only: false, + // deprecated: false, + // external_docs: Default::default(), + // example: None, + // title: None, + // description: base.description.clone(), + // discriminator: None, + // default: None, + // extensions: Default::default(), + // } + + data.external_docs = self.convert_external_docs(base); + data.deprecated = base.deprecation.is_some(); + data.description = base.description.clone(); + // TODO: base.deprecation as extension + // TODO: base.spec_location as extension? + // TODO: base.doc_id as extension + // TODO: base.variant_name as extension? (used for external_variants) + // TODO: base.codegen_names as extension? + } + + fn fill_data_with_prop(&self, data: &mut SchemaData, prop: &Property) { + data.external_docs = self.convert_external_docs(prop); + data.deprecated = prop.deprecation.is_some(); + data.description = prop.description.clone(); + // TODO: prop.aliases as extensions + // TODO: prop.server_default as extension + // TODO: prop.availability as extension + // TODO: prop.doc_id as extension (new representation of since and stability) + // TODO: prop.es_quirk as extension? + // TODO: prop.codegen_name as extension? + // TODO: prop.deprecation as extension + } +} + + diff --git a/compiler-rs/clients_schema_to_openapi/src/utils.rs b/compiler-rs/clients_schema_to_openapi/src/utils.rs new file mode 100644 index 0000000000..e937313ca5 --- /dev/null +++ b/compiler-rs/clients_schema_to_openapi/src/utils.rs @@ -0,0 +1,155 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use openapiv3::{ObjectType, ReferenceOr, Schema, SchemaData, SchemaKind, StringType, Type}; +use clients_schema::TypeName; +use crate::components::TypesAndComponents; + +/// +/// Extensions to `ReferenceOr` to ease conversion to boxed versions. +/// +pub trait ReferenceOrBoxed { + fn boxed(self) -> ReferenceOr>; +} + +impl ReferenceOrBoxed for ReferenceOr { + fn boxed(self) -> ReferenceOr> { + match self { + ReferenceOr::Item(t) => ReferenceOr::Item(Box::new(t)), + ReferenceOr::Reference { reference } => ReferenceOr::Reference { reference }, + } + } +} + +/// +/// Extension to `TypeName` to return its name as an OpenAPI schema +/// +pub trait SchemaName { + /// Name in the `#/components/schema` section + fn schema_name(&self) -> String; + /// Full reference + fn schema_ref(&self) -> ReferenceOr; +} + +impl SchemaName for TypeName { + fn schema_name(&self) -> String { + format!("{}", self) + } + + fn schema_ref(&self) -> ReferenceOr { + ReferenceOr::Reference { + reference: format!("#/components/schemas/{}", self) + } + } +} + +/// +/// Convenience extensions to turn OpenAPI type declarations into a `ReferenceOr`. +/// This avoids a lot of boiler plate when creating schema objects. +/// +pub trait IntoSchema { + fn into_schema_ref(self) -> ReferenceOr where Self: Sized{ + ReferenceOr::Item(self.into_schema()) + } + + // fn into_schema_ref_with_base(self, base: &clients_schema::BaseType) -> ReferenceOr where Self: Sized { + // let mut result = self.into_schema_ref(); + // if let ReferenceOr::Item(ref mut schema) = &mut result { + // crate::schemas::fill_data_with_base(&mut schema.schema_data, base); + // } + // result + // } + + fn into_schema_ref_with_data_fn(self, f: fn (&mut SchemaData) -> ()) -> ReferenceOr where Self: Sized { + let mut result = self.into_schema_ref(); + if let ReferenceOr::Item(ref mut schema) = &mut result { + f(&mut schema.schema_data); + } + result + } + + fn into_schema_with_base(self, tac: &TypesAndComponents, base: &clients_schema::BaseType) -> Schema where Self: Sized { + let mut schema = self.into_schema(); + tac.fill_data_with_base(&mut schema.schema_data, base); + schema + } + + fn into_schema_with_data_fn(self, f: fn (&mut SchemaData) -> ()) -> Schema where Self: Sized { + let mut schema = self.into_schema(); + f(&mut schema.schema_data); + schema + } + + fn into_schema(self) -> Schema; +} + +impl IntoSchema for Schema { + fn into_schema(self) -> Schema { + self + } +} + +impl IntoSchema for ReferenceOr { + fn into_schema_ref(self) -> ReferenceOr where Self: Sized { + self + } + + fn into_schema(self) -> Schema { + match self { + ReferenceOr::Item(schema) => schema, + ReferenceOr::Reference { .. } => SchemaKind::AllOf { + all_of: vec![self] + }.into_schema() + } + } +} + +impl IntoSchema for SchemaKind { + fn into_schema(self) -> Schema { + Schema { + schema_data: Default::default(), + schema_kind: self, + } + } +} + +impl IntoSchema for Type { + fn into_schema(self) -> Schema { + Schema { + schema_kind: SchemaKind::Type(self), + schema_data: Default::default(), + } + } +} + +impl IntoSchema for ObjectType { + fn into_schema(self) -> Schema { + Schema { + schema_kind: SchemaKind::Type(Type::Object(self)), + schema_data: Default::default(), + } + } +} + +impl IntoSchema for StringType { + fn into_schema(self) -> Schema { + Schema { + schema_kind: SchemaKind::Type(Type::String(self)), + schema_data: Default::default(), + } + } +} diff --git a/compiler-rs/compiler-wasm-lib/Cargo.toml b/compiler-rs/compiler-wasm-lib/Cargo.toml new file mode 100644 index 0000000000..dd7e197cee --- /dev/null +++ b/compiler-rs/compiler-wasm-lib/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "compiler-wasm-lib" +version = "0.1.0" +edition = "2021" +description = "WASM library to manipulate and convert schema.json files" + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +default = ["console_error_panic_hook"] + +[dependencies] +wasm-bindgen = "0.2.87" +clients_schema = {path="../clients_schema"} +clients_schema_to_openapi = {path="../clients_schema_to_openapi"} +serde_json = "1.0.107" +anyhow = "1.0.75" + +console_error_panic_hook = { version = "0.1.7", optional = true } +web-sys = { version = "0.3.64", features = ["console"] } + +[dev-dependencies] +wasm-bindgen-test = "0.3.37" + +[package.metadata.wasm-pack.profile.release] +wasm-opt = ['-Oz'] + diff --git a/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib.js b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib.js new file mode 100644 index 0000000000..70bf745913 --- /dev/null +++ b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib.js @@ -0,0 +1,191 @@ +let imports = {}; +imports['__wbindgen_placeholder__'] = module.exports; +let wasm; +const { TextDecoder, TextEncoder } = require(`util`); + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +let cachedUint8Memory0 = null; + +function getUint8Memory0() { + if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { + cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8Memory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +const heap = new Array(128).fill(undefined); + +heap.push(undefined, null, true, false); + +let heap_next = heap.length; + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + +function getObject(idx) { return heap[idx]; } + +function dropObject(idx) { + if (idx < 132) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} + +let WASM_VECTOR_LEN = 0; + +let cachedTextEncoder = new TextEncoder('utf-8'); + +const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' + ? function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} + : function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; +}); + +function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8Memory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8Memory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +let cachedInt32Memory0 = null; + +function getInt32Memory0() { + if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { + cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); + } + return cachedInt32Memory0; +} +/** +* @param {string} json +* @param {string} flavor +* @returns {string} +*/ +module.exports.convert_schema_to_openapi = function(json, flavor) { + let deferred4_0; + let deferred4_1; + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(flavor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + wasm.convert_schema_to_openapi(retptr, ptr0, len0, ptr1, len1); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + var r2 = getInt32Memory0()[retptr / 4 + 2]; + var r3 = getInt32Memory0()[retptr / 4 + 3]; + var ptr3 = r0; + var len3 = r1; + if (r3) { + ptr3 = 0; len3 = 0; + throw takeObject(r2); + } + deferred4_0 = ptr3; + deferred4_1 = len3; + return getStringFromWasm0(ptr3, len3); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } +}; + +module.exports.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return addHeapObject(ret); +}; + +module.exports.__wbg_new_abda76e883ba8a5f = function() { + const ret = new Error(); + return addHeapObject(ret); +}; + +module.exports.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) { + const ret = getObject(arg1).stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len1; + getInt32Memory0()[arg0 / 4 + 0] = ptr1; +}; + +module.exports.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } +}; + +module.exports.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); +}; + +const path = require('path').join(__dirname, 'compiler_wasm_lib_bg.wasm'); +const bytes = require('fs').readFileSync(path); + +const wasmModule = new WebAssembly.Module(bytes); +const wasmInstance = new WebAssembly.Instance(wasmModule, imports); +wasm = wasmInstance.exports; +module.exports.__wasm = wasm; + diff --git a/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm new file mode 100644 index 0000000000..628035e4af Binary files /dev/null and b/compiler-rs/compiler-wasm-lib/pkg/compiler_wasm_lib_bg.wasm differ diff --git a/compiler-rs/compiler-wasm-lib/pkg/package.json b/compiler-rs/compiler-wasm-lib/pkg/package.json new file mode 100644 index 0000000000..b54f35b006 --- /dev/null +++ b/compiler-rs/compiler-wasm-lib/pkg/package.json @@ -0,0 +1,12 @@ +{ + "name": "compiler-wasm-lib", + "description": "WASM library to manipulate and convert schema.json files", + "version": "0.1.0", + "files": [ + "compiler_wasm_lib_bg.wasm", + "compiler_wasm_lib.js", + "compiler_wasm_lib.d.ts" + ], + "main": "compiler_wasm_lib.js", + "types": "compiler_wasm_lib.d.ts" +} \ No newline at end of file diff --git a/compiler-rs/compiler-wasm-lib/src/lib.rs b/compiler-rs/compiler-wasm-lib/src/lib.rs new file mode 100644 index 0000000000..e90090c977 --- /dev/null +++ b/compiler-rs/compiler-wasm-lib/src/lib.rs @@ -0,0 +1,62 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use anyhow::bail; +use wasm_bindgen::prelude::*; +use clients_schema::{Availabilities, Visibility}; + +#[wasm_bindgen] +pub fn convert_schema_to_openapi(json: &str, flavor: &str) -> Result { + set_panic_hook(); + convert0(json, flavor).map_err(|err| err.to_string()) +} + +fn convert0(json: &str, flavor: &str) -> anyhow::Result { + + let filter: Option) -> bool> = match flavor { + "all" => None, + "stack" => Some(|a| { + // Generate public and private items for Stack + clients_schema::Flavor::Stack.available(a) + }), + "serverless" => Some(|a| { + // Generate only public items for Serverless + clients_schema::Flavor::Serverless.visibility(a) == Some(Visibility::Public) + }), + _ => bail!("Unknown flavor {}", flavor), + }; + + let mut schema = clients_schema::IndexedModel::from_reader(json.as_bytes())?; + schema = clients_schema::transform::expand_generics(schema)?; + if let Some(filter) = filter { + schema = clients_schema::transform::filter_availability(schema, filter)?; + } + let openapi = clients_schema_to_openapi::convert_schema(&schema)?; + let result = serde_json::to_string_pretty(&openapi)?; + Ok(result) +} + +pub fn set_panic_hook() { + // When the `console_error_panic_hook` feature is enabled, we can call the + // `set_panic_hook` function at least once during initialization, and then + // we will get better error messages if our code ever panics. + // + // For more details see + // https://github.com/rustwasm/console_error_panic_hook#readme + #[cfg(feature = "console_error_panic_hook")] + console_error_panic_hook::set_once(); +} diff --git a/compiler-rs/openapi_to_clients_schema/Cargo.toml b/compiler-rs/openapi_to_clients_schema/Cargo.toml new file mode 100644 index 0000000000..6ca9f90703 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "openapi_to_clients_schema" +version = "0.1.0" +edition = "2021" +publish = false + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +clients_schema = {path="../clients_schema"} + +serde = {version = "1.0", features=["derive"]} +serde_json = "1.0" +serde_path_to_error = "0.1" +serde_ignored = "0.1" +openapiv3 = "1.0" +anyhow = "1.0" +indexmap = "1.9" +convert_case = "0.6" +either_n = "0.2.0" + +tracing = "0.1.37" +tracing-subscriber = "0.3.16" + +# Some json schema implementations +#boon = "0.3.1" +#jsonschema-transpiler = "1.10.0" +#serde_valid = "0.13.0" +#jsonschema-valid = "0.5.1" +#jsonschema = { version = "0.16.1", features=[]} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/enterprise-search.json b/compiler-rs/openapi_to_clients_schema/fixtures/enterprise-search.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/enums.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/enums.json new file mode 100644 index 0000000000..9ae49918a6 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/enums.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "Test": { + "enum": [ + "one1", + "TWO", + "Three_and_four" + ], + "type": "string" + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/flatten-union.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/flatten-union.json new file mode 100644 index 0000000000..1de56f3dc9 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/flatten-union.json @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "TestCase": { + "properties": { + "multi_type_union_list": { + "type": [ + "number", + "string" + ] + }, + "multi_type_union_one_of": { + "oneOf": [ + { + "type": [ + "number", + "string" + ] + } + ] + }, + "multi_type_union_one_of_and_list": { + "oneOf": [ + { + "type": [ + "number" + ] + }, + { + "type": [ + "string" + ] + } + ] + }, + "scalar": { + "type": "number" + }, + "single_type_union_list": { + "type": [ + "number" + ] + }, + "single_type_union_one_of": { + "oneOf": [ + { + "type": "number" + } + ] + }, + "single_type_union_one_of_and_list": { + "oneOf": [ + { + "type": [ + "number" + ] + } + ] + } + }, + "type": "object" + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/names.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/names.json new file mode 100644 index 0000000000..c849137cde --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/names.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "test": { + "properties": { + "Name6": { + "type": "boolean" + }, + "NameFive": { + "type": "boolean" + }, + "name": { + "type": "boolean" + }, + "name1": { + "type": "boolean" + }, + "nameThree": { + "type": "boolean" + }, + "name_2": { + "type": "boolean" + }, + "name_four": { + "type": "boolean" + } + } + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/recursive-refs.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/recursive-refs.json new file mode 100644 index 0000000000..f02106abd9 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/recursive-refs.json @@ -0,0 +1,61 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "Logic": { + "oneOf": [ + { + "properties": { + "value": { + "type": "boolean" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + { + "properties": { + "and": { + "items": { + "$ref": "#/components/schemas/Logic" + }, + "type": "array" + } + }, + "required": [ + "and" + ], + "type": "object" + }, + { + "properties": { + "or": { + "items": { + "$ref": "#/components/schemas/Logic" + }, + "type": "array" + } + }, + "required": [ + "or" + ], + "type": "object" + }, + { + "properties": { + "not": { + "$ref": "#/components/schemas/Logic" + } + }, + "required": [ + "not" + ], + "type": "object" + } + ] + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/scalars.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/scalars.json new file mode 100644 index 0000000000..b4c0f92572 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/scalars.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "TestCase": { + "additionalProperties": false, + "properties": { + "array_of_scalars": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "array_or_scalar": { + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + }, + "integer": { + "type": "integer" + }, + "number": { + "type": "number" + }, + "string": { + "type": "string" + }, + "union_of_scalars": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "string", + "integer", + "number", + "boolean", + "array_of_scalars", + "union_of_scalars", + "array_or_scalar" + ], + "type": "object" + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/structural-union.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/structural-union.json new file mode 100644 index 0000000000..0ea6440d27 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/structural-union.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "InlineScript": { + "allOf": [ + { + "$ref": "#/components/schemas/_ScriptParams" + }, + { + "properties": { + "lang": { + "$ref": "#/components/schemas/ScriptLanguage" + }, + "options": { + "additionalProperties": { + "type": "string" + } + }, + "source": { + "type": "string" + } + } + } + ] + }, + "Script": { + "oneOf": [ + { + "$ref": "#/components/schemas/InlineScript" + }, + { + "$ref": "#/components/schemas/StoredScriptId" + } + ] + }, + "ScriptLanguage": { + "enum": [ + "painless", + "expression", + "mustache", + "java" + ], + "type": "string" + }, + "StoredScriptId": { + "allOf": [ + { + "$ref": "#/components/schemas/_ScriptParams" + }, + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + ] + }, + "_ScriptParams": { + "additionalProperties": false, + "properties": { + "params": { + "additionalProperties": true + } + }, + "type": "object" + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-external-with-properties.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-external-with-properties.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-external.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-external.json new file mode 100644 index 0000000000..2a647b8d1e --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-external.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "TestCase": { + "oneOf": [ + { + "properties": { + "one": { + "type": "number" + } + }, + "required": [ + "one" + ], + "type": "object" + }, + { + "properties": { + "two": { + "type": "boolean" + } + }, + "required": [ + "two" + ], + "type": "object" + }, + { + "properties": { + "three": { + "type": "string" + } + }, + "required": [ + "three" + ], + "type": "object" + } + ] + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-internal.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-internal.json new file mode 100644 index 0000000000..f88dc50c4f --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/union-of-variants-internal.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "Variant": { + "discriminator": { + "mapping": { + "variant1": "#/components/schemas/Variant1", + "variant2": "#/components/schemas/Variant2" + }, + "propertyName": "type" + }, + "properties": { + "type": { + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "Variant1": { + "allOf": [ + { + "$ref": "#/components/schemas/Variant" + }, + { + "properties": { + "variant1": { + "type": "boolean" + } + }, + "type": "object" + } + ] + }, + "Variant2": { + "allOf": [ + { + "$ref": "#/components/schemas/Variant" + }, + { + "properties": { + "variant2": { + "type": "boolean" + } + }, + "required": [ + "variant2" + ], + "type": "object" + } + ] + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/tests/xof.json b/compiler-rs/openapi_to_clients_schema/fixtures/tests/xof.json new file mode 100644 index 0000000000..191aa5ee11 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/fixtures/tests/xof.json @@ -0,0 +1,130 @@ +{ + "$schema": "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json", + "components": { + "schemas": { + "Schema1": { + "properties": { + "schema1": { + "type": "integer" + } + }, + "type": "object" + }, + "Schema2": { + "properties": { + "schema2": { + "type": "integer" + } + }, + "type": "object" + }, + "Schema3": { + "properties": { + "schema3": { + "type": "integer" + } + }, + "type": "object" + }, + "Schema4": { + "properties": { + "schema4": { + "type": "integer" + } + }, + "required": [ + "schema4" + ], + "type": "object" + }, + "Schema5": { + "properties": { + "schema5": { + "type": "integer" + } + }, + "required": [ + "schema5" + ], + "type": "object" + }, + "SchemaCombined1": { + "allOf": [ + { + "$ref": "#/components/schemas/Schema1" + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Schema2" + }, + { + "$ref": "#/components/schemas/Schema3" + } + ] + } + ] + }, + "SchemaCombined2": { + "allOf": [ + { + "$ref": "#/components/schemas/Schema4" + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Schema5" + } + ] + } + ] + }, + "TestCase1": { + "oneOf": [ + { + "$ref": "#/components/schemas/Schema1" + }, + { + "$ref": "#/components/schemas/Schema2" + }, + { + "$ref": "#/components/schemas/Schema4" + } + ] + }, + "TestCase2": { + "allOf": [ + { + "oneOf": [ + { + "$ref": "#/components/schemas/Schema1" + }, + { + "$ref": "#/components/schemas/Schema2" + }, + { + "$ref": "#/components/schemas/Schema4" + } + ] + }, + { + "$ref": "#/components/schemas/Schema3" + }, + { + "$ref": "#/components/schemas/Schema5" + } + ] + }, + "Testcase3": { + "oneOf": [ + { + "$ref": "#/components/schemas/SchemaCombined1" + }, + { + "$ref": "#/components/schemas/SchemaCombined2" + } + ] + } + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/fixtures/workplace-search.json b/compiler-rs/openapi_to_clients_schema/fixtures/workplace-search.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler-rs/openapi_to_clients_schema/src/endpoints.rs b/compiler-rs/openapi_to_clients_schema/src/endpoints.rs new file mode 100644 index 0000000000..468c24678e --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/src/endpoints.rs @@ -0,0 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// TODO diff --git a/compiler-rs/openapi_to_clients_schema/src/lib.rs b/compiler-rs/openapi_to_clients_schema/src/lib.rs new file mode 100644 index 0000000000..de0db5073a --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/src/lib.rs @@ -0,0 +1,67 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +pub mod openapi; +pub mod types; +pub mod endpoints; + +use std::convert::Into; +use tracing::warn; +use clients_schema::IndexedModel; +use openapi::OpenAPI; + +/// +/// Generate a schema.json from an OpenAPI schema +/// +pub fn generate(open_api: &OpenAPI) -> anyhow::Result { + + let mut json_schema = clients_schema::IndexedModel::default(); + + generate_types(open_api, &mut json_schema)?; + + // endpoints + // for (id, path) in &open_api.paths.paths { + // let endpoint = generate_endpoint(open_api, id, path)?; + // json_schema.endpoints.push(endpoint); + // } + + Ok(json_schema) +} + +/// +/// Generate all types from OpenAPI components +/// +fn generate_types( + open_api: &OpenAPI, + model: &mut IndexedModel +) -> anyhow::Result<()> { + + if let Some(ref components) = open_api.components { + let mut types = types::Types::default(); + for (id, schema) in &components.schemas { + let result = types::generate_type(open_api, &id, &schema.into(), &mut types); + + if let Err(err) = result { + warn!("Problem with type '{id}'\n {err}\n Definition: {:?}", &schema); + } + } + let _ = types.check_tracker(); // TODO: actually fail + model.types = types.types(); + } + + Ok(()) +} diff --git a/compiler-rs/openapi_to_clients_schema/src/main.rs b/compiler-rs/openapi_to_clients_schema/src/main.rs new file mode 100644 index 0000000000..87be8dec54 --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/src/main.rs @@ -0,0 +1,61 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use std::collections::BTreeSet; +use openapi_to_clients_schema::openapi::OpenAPI; +use tracing::{Level, info}; +use tracing_subscriber::FmtSubscriber; +use std::path::PathBuf; + +fn main() -> anyhow::Result<()> { + + let subscriber = FmtSubscriber::builder() + .with_max_level(Level::TRACE) + .finish(); + tracing::subscriber::set_global_default(subscriber)?; + + //let file = "../../ent-search/swagger/v1/enterprise-search.json"; + //let file = "../../ent-search/swagger/v1/workplace-search.json"; + let file = "./openapi_to_clients_schema/fixtures/workplace-search.json"; + + let src = PathBuf::from(file); + let dest = src.with_extension("schema.json"); + + info!("Loading OpenAPI from {file}"); + + let file = std::fs::File::open(file)?; + + let json_deser = &mut serde_json::Deserializer::from_reader(file); + + // Track unused fields, to find any additional stuff the OpenAPI model would miss + let mut unused = BTreeSet::new(); + + let open_api: openapiv3::OpenAPI = serde_ignored::deserialize(json_deser, |path| { + unused.insert(path.to_string()); + })?; + + if !unused.is_empty() { + println!("Unused fields in the OpenAPI schema: {:?}", unused); + } + + let sch_json = openapi_to_clients_schema::generate(&OpenAPI(open_api))?; + let output = std::fs::File::create(dest)?; + serde_json::to_writer_pretty(output, &sch_json)?; + + Ok(()) +} + diff --git a/compiler-rs/openapi_to_clients_schema/src/openapi.rs b/compiler-rs/openapi_to_clients_schema/src/openapi.rs new file mode 100644 index 0000000000..0209ebe6ce --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/src/openapi.rs @@ -0,0 +1,408 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//! OpenAPI schema utilities + +use std::fmt::Debug; +use openapiv3::*; +use std::ops::Deref; +use anyhow::{anyhow, bail}; +use serde_json::Value as JsonValue; +use tracing::info; + +/// A wrapper around an openapi schema, also providing helper methods to explore it. +pub struct OpenAPI(pub openapiv3::OpenAPI); + +impl Deref for OpenAPI { + type Target = openapiv3::OpenAPI; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl OpenAPI { + + /// + /// Get the schema for a reference, if it exists, and follows references until we find a schema + /// + pub fn ref_to_schema(&self, reference: &str) -> anyhow::Result<&Schema> { + + if let Some(name) = reference.strip_prefix("#/components/schemas/") { + match self.components.as_ref().unwrap().schemas.get(name) { + Some(ReferenceOr::Item(sch)) => return Ok(sch), + Some(ReferenceOr::Reference { reference }) => return self.ref_to_schema(reference), + _ => {}, + } + } + + bail!("No schema definition found for {reference}") + } + + /// + /// Get the schema for a reference or schema + /// + pub fn get_schema<'a>(&'a self, r_or_s: &'a ReferenceOr) -> anyhow::Result<&'a Schema> { + match r_or_s { + ReferenceOr::Reference { reference } => self.ref_to_schema(&reference), + ReferenceOr::Item(schema) => Ok(&schema), + } + } + + /// + /// Is this type nullable? + /// + pub fn is_nullable(&self, id: &str) -> bool { + self.components + .as_ref() + .and_then(|c| c.schemas.get(id)) + .map(|s| match s { + ReferenceOr::Reference { reference: _r } => false, + ReferenceOr::Item(item) => item.schema_data.nullable + }) + .unwrap_or_default() + } + + /// + /// Is this a `not` schema? + /// + pub fn is_not(&self, r_or_s: &ReferenceOr) -> bool { + if let Ok(schema) = self.get_schema(r_or_s) { + if let SchemaKind::Not {..} = schema.schema_kind { + return true; + } + } + false + } + + /// + /// Merge a series of schemas and return a single combined schema that is guaranteed to not be an `Any`. + /// Used to resolve `allOf` directives. + /// + pub fn merge_schemas(&self, schemas: &Vec>, data: &SchemaData) -> anyhow::Result { + let mut merged = AnySchema::default(); + for schema in schemas { + merged = self.merge_in_any(merged, schema)?; + } + + Ok(Schema { + schema_data: data.clone(), + schema_kind: any_to_schema(merged)?, + }) + } + + fn merge_in_any(&self, acc: AnySchema, schema: &ReferenceOr) -> anyhow::Result { + + let schema = self.get_schema(schema)?; + + match &schema.schema_kind { + SchemaKind::AllOf { all_of } | SchemaKind::Any(AnySchema{ all_of, .. }) if !all_of.is_empty() => { + let mut result = acc; + for schema in all_of { + result = self.merge_in_any(result, &schema)?; + } + return Ok(result); + }, + _ => {}, + } + + let schema = schema_to_any(&schema.schema_kind)?; + + let result = AnySchema { + typ: merge_option(acc.typ, schema.typ)?, + + any_of: merge_vec(acc.any_of, schema.any_of), + one_of: merge_vec(acc.one_of, schema.one_of), + all_of: merge_vec(acc.all_of, schema.all_of), + not: merge_option(acc.not, schema.not)?, + + // Structure properties + additional_properties: merge_option(acc.additional_properties, schema.additional_properties)?, + items: merge_option(acc.items, schema.items)?, + + unique_items: merge_option(acc.unique_items, schema.unique_items)?, + properties: Default::default(), + max_properties: merge_option(acc.max_properties, schema.max_properties)?, + min_properties: merge_option(acc.min_properties, schema.min_properties)?, + + // Scalar properties + required: merge_vec(acc.required, schema.required), + format: merge_option(acc.format, schema.format)?, + exclusive_maximum: merge_option(acc.exclusive_maximum, schema.exclusive_maximum)?, + exclusive_minimum: merge_option(acc.exclusive_minimum, schema.exclusive_minimum)?, + + maximum: merge_option(acc.maximum, schema.maximum)?, + max_items: merge_option(acc.max_items, schema.max_items)?, + max_length: merge_option(acc.max_length, schema.max_length)?, + + minimum: merge_option(acc.minimum, schema.minimum)?, + min_items: merge_option(acc.min_items, schema.min_items)?, + min_length: merge_option(acc.min_length, schema.min_length)?, + + pattern: merge_option(acc.pattern, schema.pattern)?, + multiple_of: merge_option(acc.multiple_of, schema.multiple_of)?, + enumeration: merge_vec(acc.enumeration, schema.enumeration), + }; + + Ok(result) + } +} + +/// +/// Converts a schema to the "any" form that has all properties of an OpenAPI schema. +/// Used for schema merging operations +/// +pub fn schema_to_any(schema: &SchemaKind) -> anyhow::Result { + // TODO: could return Cow to reduce cloning + + match schema { + SchemaKind::Type(typ) => match typ { + Type::String(x) => Ok(AnySchema { + typ: Some("string".into()), + format: format_to_string(&x.format), + pattern: x.pattern.clone(), + enumeration: x.enumeration.iter() + // turn Vec> into Vec + .filter_map(|e| e.as_ref().map(|s| JsonValue::String(s.clone()))) + .collect(), + max_length: x.max_length, + min_length: x.min_length, + ..AnySchema::default() + }), + Type::Number(x) => Ok(AnySchema { + typ: Some("number".into()), + format: format_to_string(&x.format), + multiple_of: x.multiple_of, + exclusive_minimum: Some(x.exclusive_minimum), + exclusive_maximum: Some(x.exclusive_maximum), + minimum: x.minimum, + maximum: x.maximum, + enumeration: x.enumeration.iter() + .filter_map(|e| *e) + .filter_map(|s| serde_json::Number::from_f64(s)) + .map(|s| JsonValue::Number(s)) + .collect(), + ..AnySchema::default() + }), + Type::Integer(x) => Ok(AnySchema { + typ: Some("integer".into()), + format: format_to_string(&x.format), + multiple_of: x.multiple_of.map(|x| x as f64), + exclusive_minimum: Some(x.exclusive_minimum), + exclusive_maximum: Some(x.exclusive_maximum), + minimum: x.minimum.map(|x| x as f64), + maximum: x.maximum.map(|x| x as f64), + enumeration: x.enumeration.iter() + .filter_map(|e| *e) + .map(|s| JsonValue::Number(s.into())) + .collect(), + ..AnySchema::default() + }), + Type::Object(x) => Ok(AnySchema { + typ: Some("object".into()), + properties: x.properties.clone(), + required: x.required.clone(), + additional_properties: x.additional_properties.clone(), + min_properties: x.min_properties, + max_properties: x.max_properties, + ..AnySchema::default() + }), + Type::Array(x) => Ok(AnySchema { + typ: Some("array".into()), + items: x.items.clone(), + min_items: x.min_items, + max_items: x.max_items, + unique_items: Some(x.unique_items), + ..AnySchema::default() + }), + Type::Boolean { .. } => Ok(AnySchema { + typ: Some("boolean".into()), + ..AnySchema::default() + }), + } + + SchemaKind::OneOf { one_of } => Ok(AnySchema { + one_of: one_of.clone(), + ..AnySchema::default() + }), + + SchemaKind::AllOf { all_of } => Ok(AnySchema { + all_of: all_of.clone(), + ..AnySchema::default() + }), + + SchemaKind::AnyOf { any_of } => Ok(AnySchema { + any_of: any_of.clone(), + ..AnySchema::default() + }), + + SchemaKind::Not { not } => Ok(AnySchema { + not: Some(not.clone()), + ..AnySchema::default() + }), + + SchemaKind::Any(any) => Ok(any.clone()), + } +} + + +/// +/// Concatenates two vectors and returns the resulting vector +/// +fn merge_vec(mut vec1: Vec, mut vec2: Vec) -> Vec { + vec1.append(&mut vec2); + vec1 +} + +/// +/// Merge two options. Fails if both options are set and have different values. +/// +fn merge_option(opt1: Option, opt2: Option) -> anyhow::Result> { + match (&opt1, &opt2) { + (Some(v1), Some(v2)) if v1 == v2 => bail!("Merge conflict: {opt1:?} and {opt2:?}"), + _ => Ok(opt1.or(opt2)) + } +} + +pub fn any_to_schema(any: AnySchema) -> anyhow::Result { + + // TODO: SchemaData.default could be used for disambiguation + let typ: Option<&str> = if let Some(typ) = &any.typ { + Some(typ) + } else if any.additional_properties.is_some() || + !any.properties.is_empty() || + !any.required.is_empty() { + Some("object") + } else if let Some(JsonValue::String(_)) = any.enumeration.get(0) { + Some("string") + } else { + // TODO: add more heuristics + None + }; + + let typ = typ.ok_or_else(|| anyhow!("Cannot infer schema type in {:?}", any))?; + + match typ { + + "object" => Ok(SchemaKind::Type(Type::Object(ObjectType { + properties: any.properties, + required: any.required, + additional_properties: any.additional_properties, + min_properties: any.min_properties, + max_properties: any.max_properties, + }))), + + "string" => Ok(SchemaKind::Type(Type::String(StringType { + format: as_unknown_or_empty(any.format), + pattern: any.pattern, + enumeration: any.enumeration.iter() + .map(|v| if let JsonValue::String(s) = v { Some(s.clone()) } else { None }) + .collect(), + min_length: any.min_length, + max_length: any.max_length, + }))), + + "integer" => Ok(SchemaKind::Type(Type::Integer(IntegerType { + format: as_unknown_or_empty(any.format), + multiple_of: any.multiple_of.map(|f| f as i64), + exclusive_minimum: any.exclusive_minimum.unwrap_or(false), + exclusive_maximum: any.exclusive_maximum.unwrap_or(false), + minimum: any.minimum.map(|f| f as i64), + maximum: any.maximum.map(|f| f as i64), + enumeration: vec![], // TODO: not supported in schema.json + }))), + + "number" => Ok(SchemaKind::Type(Type::Number(NumberType { + format: as_unknown_or_empty(any.format), + multiple_of: any.multiple_of, + exclusive_minimum: any.exclusive_minimum.unwrap_or(false), + exclusive_maximum: any.exclusive_maximum.unwrap_or(false), + minimum: any.minimum, + maximum: any.maximum, + enumeration: vec![], // TODO: not supported in schema.json + }))), + + "boolean" => Ok(SchemaKind::Type(Type::Boolean { + })), + + "array" => Ok(SchemaKind::Type(Type::Array(ArrayType { + items: any.items, + min_items: any.min_items, + max_items: any.max_items, + unique_items: any.unique_items.unwrap_or(false), + }))), + + _ => bail!("Unknown type {typ} in {any:?}"), + } +} + +fn as_unknown_or_empty(value: Option) -> VariantOrUnknownOrEmpty { + if let Some(value) = value { + VariantOrUnknownOrEmpty::Unknown(value) + } else { + VariantOrUnknownOrEmpty::Empty + } +} + +fn format_to_string(value: &VariantOrUnknownOrEmpty) -> Option { + match value { + VariantOrUnknownOrEmpty::Item(i) => Some(format!("{i:?}")), + VariantOrUnknownOrEmpty::Unknown(s) => Some(s.clone()), + VariantOrUnknownOrEmpty::Empty => None, + } +} + +/// A wrapper around either a type name reference or a type schema reference. +/// +/// The `openapiv3` crate doesn't use `ReferenceOr` in a consistent way. For top-level types, is uses +/// `ReferenceOr` whereas for deeper levels of the hierarchy it uses `ReferenceOr>` and +/// `Box` because of the recursive nature of the type. +/// +/// This makes it impractical to have functions that operate on all shapes. `RefOrSchema` solves this by holding only +/// references and providing easy conversion with `From` implementations for all variants. +/// +pub enum RefOrSchema<'a> { + Ref(&'a str), + Schema(&'a Schema), +} + +impl <'a> From<&'a ReferenceOr> for RefOrSchema<'a> { + fn from(value: &'a ReferenceOr) -> Self { + match value { + ReferenceOr::Reference { reference } => RefOrSchema::Ref(reference), + ReferenceOr::Item(schema) => RefOrSchema::Schema(schema), + } + } +} + +impl <'a> From<&'a ReferenceOr>> for RefOrSchema<'a> { + fn from(value: &'a ReferenceOr>) -> Self { + match value { + ReferenceOr::Reference { reference } => RefOrSchema::Ref(reference), + ReferenceOr::Item(schema) => RefOrSchema::Schema(schema), + } + } +} + +impl <'a> From<&'a Box>> for RefOrSchema<'a> { + fn from(value: &'a Box>) -> Self { + match value.as_ref() { + ReferenceOr::Reference { reference } => RefOrSchema::Ref(reference), + ReferenceOr::Item(schema) => RefOrSchema::Schema(schema), + } + } +} diff --git a/compiler-rs/openapi_to_clients_schema/src/types.rs b/compiler-rs/openapi_to_clients_schema/src/types.rs new file mode 100644 index 0000000000..f10479812c --- /dev/null +++ b/compiler-rs/openapi_to_clients_schema/src/types.rs @@ -0,0 +1,542 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +use clients_schema::*; +use openapiv3::*; +use indexmap::IndexMap; +use std::collections::{BTreeMap, HashSet}; +use anyhow::{anyhow, bail}; +use tracing::{error, info}; +use crate::openapi; +use crate::openapi::{OpenAPI, RefOrSchema}; + +#[derive(Default)] +pub struct Types { + types: BTreeMap, + tracker: HashSet, +} + +impl Types { + + pub fn track(&mut self, id: &str) { + self.tracker.insert(id.to_string()); + } + + pub fn get(&self, id: &str) -> Option<&TypeDefinition> { + self.types.get(id) + } + + pub fn add(&mut self, id: &str, type_def: TypeDefinition) { + //info!("Adding type '{id}'"); + self.types.insert(id.to_string(), type_def); + } + + pub fn types(self) -> Vec { + self.types.into_values().collect() + } + + pub fn check_tracker(&self) -> anyhow::Result<()> { + info!("Generated {} types", self.types.len()); + let mut failed = false; + for id in self.tracker.iter() { + if !self.types.contains_key(id) { + error!("Type '{id}' tracked but but not generated."); + failed = true; + } + } + + if failed { + Err(anyhow!("Some tracked types were not generated - check the logs")) + } else { + Ok(()) + } + } +} + +/// +/// Generate a top-level type, which can be an alias or a type definition +/// +pub fn generate_type ( + open_api: &OpenAPI, + id: &str, + definition: &RefOrSchema, + types: &mut Types +) -> anyhow::Result { + + //info!("Generating type '{id}'"); + types.track(id); + match definition { + RefOrSchema::Ref(ref_id) => { + // Type alias + let type_name = ref_to_typename(id); + types.add(id, TypeDefinition::type_alias( + type_name.clone(), + ref_to_typename(&ref_id).into() + )); + Ok(type_name) + } + RefOrSchema::Schema(schema) => { + // Type definition + generate_type_for_schema(open_api, id, schema, types) + } + } +} + +/// +/// Generate a type definition from an OpenAPI component schema. +/// This can result in several types if the schema contains anonymous nested structures +/// +fn generate_type_for_schema( + open_api: &OpenAPI, + id: &str, + schema: &Schema, + types: &mut Types +) -> anyhow::Result { + + if let Some(typedef) = types.get(id) { + //info!("Type '{id}' already generated"); + return Ok(typedef.name().clone()); + } + + types.track(id); + + // Build the common "base" fields from the OpenApi schema_data + let type_name = id_to_typename(id); + let data = &schema.schema_data; + let mut base = BaseType::new(type_name.clone()); + base.description = data.description.clone(); + if data.deprecated { + base.deprecation = Some(Deprecation {version: "".into(), description: "".into()}) + } + if let Some(ref docs) = data.external_docs { + base.doc_url = Some(docs.url.clone()) + } + + // TODO: data.readonly/writeonly -> OverloadOf? + // TODO: data.default -> serverDefault + // TODO: data.extensions -> see what's there, fail on unknown ones + for (k, v) in &data.extensions { + info!("{id} - extension {k} = {v}"); + } + + if data.discriminator.is_some() { + // FIXME: data.discriminator -> internally tagged variant + + bail!("Discriminator in schema {} has to become an internally tagged variant", id); + } + + use openapiv3::SchemaKind::*; + match &schema.schema_kind { + Type(t) => { + // Type alias to a primitive type or enum + generate_schema_kind_type(open_api, id, t, base, types)?; + } + Not {..} => { + bail!("Unsupported schema kind for '{}' - {:?}", id, schema.schema_kind); + }, + Any(any) => { + let not_any = Schema { + schema_data: data.clone(), + schema_kind: openapi::any_to_schema(any.clone())? + }; + generate_type_for_schema(open_api, id, ¬_any, types)?; + }, + // Definitions: + // - oneOf: validates the value against exactly one of the subschemas + // - anyOf: validates the value against any (one or more) of the subschemas + // - allOf – validates the value against all the subschemas + // + // AnyOf sits in between oneOf and allOf and doesn't have a direct equivalence in schema.json + // We choose to handle it like a oneOf, even if oneOf is more constrained, as allOf is used for + // composition/inheritance. + AllOf {all_of} => { + let merged = open_api.merge_schemas(&all_of, &data)?; + generate_type_for_schema(open_api, id, &merged, types)?; + } + AnyOf {any_of: one_of} | OneOf {one_of} => { + generate_schema_kind_one_of(open_api, id, one_of, &data.discriminator, base, types)?; + } + } + + Ok(type_name) +} + +/// +/// Generate the TypeDefinition for an openapi::SchemaKind::Type +/// - `id`: name of the enclosing OpenApi type +/// - `t`: the OpenApi type definition +/// - `base`: common fields for the type definition +/// - `types`: the target schema types, where the generated definition will be added, along with any synthetic types +/// that may be needed to represent nested structures. +/// +fn generate_schema_kind_type( + open_api: &OpenAPI, + id: &str, + t: &openapiv3::Type, + base: BaseType, + types: &mut Types +) -> anyhow::Result<()> { + + fn alias(base: BaseType, name: TypeName) -> TypeDefinition { + TypeDefinition::TypeAlias(TypeAlias { + base, + generics: Vec::default(), + typ: name.into(), + variants: None, + }) + } + + use openapiv3::Type::*; + + match t { + //--------------------------------------------------------------------- + String(string) if !string.enumeration.is_empty() => { + // Enumeration + + let members = string.enumeration.iter() + .filter_map(|name| name.as_ref()) // filter empty options. Why are they here? + .map(|name| name.as_str().into()) + .collect(); + + let enum_def = TypeDefinition::Enum(clients_schema::Enum { + base, + members, + is_open: false + }); + + types.add(id, enum_def); + }, + + //--------------------------------------------------------------------- + String(_) => types.add(id, alias(base, builtins::STRING.clone())), + + //--------------------------------------------------------------------- + Boolean {} => types.add(id, alias(base, builtins::BOOLEAN.clone())), + + //--------------------------------------------------------------------- + Integer(_) => + // OpenAPI Integer and Number accept an enumeration, but since it's just a list of valid + // values with no identifier, we can't produce an enum out of that list. + // TODO: choose int/long depending on min/max values + types.add(id, alias(base, builtins::LONG.clone())), + + //--------------------------------------------------------------------- + Number(_) => { + // TODO: choose float/double depending on min/max values + types.add(id, alias(base, builtins::DOUBLE.clone())); + } + + //--------------------------------------------------------------------- + Array(array) => { + // NOTE: array.unique_items indicates a Set. We don't have that in schema.json, and it actually + // doesn't exist in the JSON data model + let items = array.items.as_ref().ok_or(anyhow!("Array type in '{}' has no items", id))?; + + let value = generate_value_of(open_api, items.into(), || format!("{}_arrayitem", id), types)?; + let alias_def = TypeDefinition::TypeAlias(TypeAlias { + base, + typ: ValueOf::ArrayOf(ArrayOf { value: Box::new(value) }), + generics: Vec::default(), + variants: None, + }); + + types.add(id, alias_def); + }, + + //--------------------------------------------------------------------- + Object(obj) => { + if let (0, Some(ref value)) = (obj.properties.len(), &obj.additional_properties) { + // No fixed properties: it's a dictionary + generate_dictionary_def(open_api, id, base, value, types)?; + + } else { + // Regular type + generate_interface_def(open_api, id, base, &obj.required, &obj.properties, &obj.additional_properties, types)?; + } + }, + } + + Ok(()) +} + +fn generate_union_of( + open_api: &OpenAPI, + id: &str, + items: &Vec>, + types: &mut Types +) -> anyhow::Result { + // Open API items are ref_or_schema that we turn into a value_of + // If producing that value_of requires the creation of a synthetic type, it will be + // named by appending the item number to the type name (e.g. "foo_1") + let items = items.iter() + .enumerate() + .map(|(idx, item)| generate_value_of( + open_api, + item.into(), || format!("{}_{}", id, idx), + types + )) + .collect::, _>>()?; + + Ok(UnionOf { + items, + }) +} + +fn generate_schema_kind_one_of( + open_api: &OpenAPI, + id: &str, + one_of: &Vec>, + discriminator: &Option, + base: BaseType, + types: &mut Types +) -> anyhow::Result<()> { + + let filtered = one_of.iter().filter(|s| !open_api.is_not(s)).collect::>(); + if filtered.len() == 1 { + return generate_type(open_api, id, &filtered[0].into(), types).map(|_| ()); + } + + // Union type + + let union_of = generate_union_of(open_api, id, one_of, types)?; + + let mut variants: Option = None; + + // TODO: do we want to allow untagged unions (those that are disambiguated by inspecting property names)? + + if let Some(discriminator) = discriminator { + variants = Some(TypeAliasVariants::InternalTag(InternalTag { + default_tag: None, + tag: discriminator.property_name.clone(), + non_exhaustive: false, + })); + + // FIXME: need to set mappings, by setting the discriminator property in every variant to either + // the type name or the key of in discriminator.mapping + } + + let type_alias = TypeAlias { + base, + typ: ValueOf::UnionOf(union_of), + generics: Vec::default(), + variants: variants, // May be set below + }; + types.add(id, TypeDefinition::TypeAlias(type_alias)); + + Ok(()) +} + +fn generate_dictionary_def( + open_api: &OpenAPI, + id: &str, + base: BaseType, + value: &AdditionalProperties, + types: &mut Types +) -> anyhow::Result<()> { + let dict = TypeDefinition::TypeAlias(TypeAlias { + base, + generics: Vec::default(), + variants: None, + typ: ValueOf::InstanceOf(InstanceOf { + typ: builtins::DICTIONARY.clone(), + generics: vec![ + ValueOf::instance_of(builtins::STRING.clone()), + match value { + AdditionalProperties::Any(_) => + (&builtins::USER_DEFINED).into(), + + AdditionalProperties::Schema(schema) => + generate_value_of(open_api, schema.into(), || format!("{}_value", id), types)? + }, + ] + }), + }); + + types.add(id, dict); + Ok(()) +} + +fn generate_interface_def( + open_api: &OpenAPI, + id: &str, + base: BaseType, + required: &Vec, + properties: &IndexMap>>, + additional_properties: &Option, + types: &mut Types +) -> anyhow::Result<()> { + // Regular type + + // FIXME: max_properties -- if == 1 indicates a container + + let required: HashSet<_> = required.iter().collect(); + if required.len() != required.len() { + bail!("'required' in {id} has duplicate entries"); + } + + let mut props = Vec::new(); + for (name, value) in properties { + let property = Property { + name: name.clone(), + typ: generate_value_of(open_api, value.into(), || format!("{}_{}", id, name), types)?, + required: required.contains(&name), + doc_id: None, + doc_url: None, + codegen_name: None, // FIXME: extension in workplace search + description: None, + aliases: Vec::default(), + deprecation: None, + stability: None, + since: None, + container_property: false, + es_quirk: None, + server_default: None, + }; + + props.push(property); + }; + + let mut typedef = Interface { + base, + properties: props, + generics: Vec::default(), + behaviors: Vec::default(), + attached_behaviors: Vec::default(), + inherits: None, + implements: Vec::default(), + variants: None, + shortcut_property: None, + }; + + if let Some(props) = additional_properties { + let prop_value: ValueOf = match props { + AdditionalProperties::Any(_) => (&builtins::USER_DEFINED).into(), + AdditionalProperties::Schema(schema) => generate_value_of(open_api, schema.into(), || format!("{id}_props"), types)?, + }; + typedef.behaviors.push(clients_schema::Inherits { + typ: builtins::ADDITIONAL_PROPERTIES.clone(), + generics: vec![prop_value], + }) + }; + + types.add(id, TypeDefinition::Interface(typedef)); + Ok(()) +} + +/// +/// Generate a value_of for a reference or a schema. If the schema doesn't denote one that can be represented as a +/// value_of, a synthetic type is produced. +/// +fn generate_value_of( + open_api: &OpenAPI, + value: RefOrSchema, + id_gen: impl Fn() -> String, + types: &mut Types +) -> anyhow::Result { + + match value { + RefOrSchema::Ref(reference) => { + Ok(ref_to_typename(reference).into()) + }, + RefOrSchema::Schema(schema) => { + generate_value_for_schema(open_api, schema, id_gen, types) + } + } +} + +fn generate_value_for_schema( + open_api: &OpenAPI, + schema: &Schema, + id_gen: impl Fn() -> String, + types: &mut Types +) -> anyhow::Result { + + use openapiv3::SchemaKind::*; + match &schema.schema_kind { + Type(typ) => { + use openapiv3::Type::*; + match typ { + String(string) if string.enumeration.is_empty() => { + Ok((&builtins::STRING).into()) + } + String(_) => { + let type_name = generate_type_for_schema(open_api, &id_gen(), &schema, types)?; + Ok(type_name.into()) + } + Number(_) => { + // TODO: choose float/double depending on min/max values + // (see also generate_schema_kind_type) + Ok((&builtins::DOUBLE).into()) + } + Integer(_) => { + // TODO: choose int/long depending on min/max values + // (see also generate_schema_kind_type) + Ok((&builtins::LONG).into()) + } + Object(_) => { + let type_name = generate_type_for_schema(open_api, &id_gen(), &schema, types)?; + Ok(type_name.into()) + } + Array(array) => { + let item = array.items.as_ref().ok_or(anyhow!("Array type in '{}' has no items", id_gen()))?; + let item = generate_value_of(open_api, item.into(), id_gen, types)?; + Ok(ValueOf::ArrayOf(ArrayOf {value: Box::new(item)})) + } + Boolean { .. } => { + Ok((&builtins::BOOLEAN).into()) + } + } + }, + // Do not factorize below to keep exhaustiveness, if some specific handling is needed/possible + OneOf { .. } => { + let type_name = generate_type_for_schema(open_api, &id_gen(), schema, types)?; + Ok(type_name.into()) + } + AllOf { .. } => { + let type_name = generate_type_for_schema(open_api, &id_gen(), schema, types)?; + Ok(type_name.into()) + } + AnyOf { .. } => { + let type_name = generate_type_for_schema(open_api, &id_gen(), schema, types)?; + Ok(type_name.into()) + } + Not { .. } => { + Ok((&builtins::VOID).into()) + } + Any(AnySchema{ typ: Some(typ), .. }) if typ == "null" => { + Ok((&builtins::NULL).into()) + }, + Any(_) => { + let type_name = generate_type_for_schema(open_api, &id_gen(), &schema, types)?; + Ok(type_name.into()) + } + } +} + +fn id_to_typename(id: &str) -> TypeName { + use convert_case::{Case, Casing}; + + TypeName { + namespace: "_global".into(), + name: id.to_case(Case::UpperCamel), + } +} + +fn ref_to_typename(ref_id: &str) -> TypeName { + let id = ref_id.trim_start_matches("#/components/schemas/"); + id_to_typename(id) +} diff --git a/compiler/package-lock.json b/compiler/package-lock.json index ac87698c61..205bcd2e81 100644 --- a/compiler/package-lock.json +++ b/compiler/package-lock.json @@ -10,6 +10,7 @@ "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.2", + "compiler-wasm-lib": "file:../compiler-rs/compiler-wasm-lib/pkg", "fastest-levenshtein": "^1.0.12", "ora": "^5.4.1", "safe-stable-stringify": "^2.3.1", @@ -31,6 +32,9 @@ "node": ">=14" } }, + "../compiler-rs/compiler-wasm-lib/pkg": { + "version": "0.1.0" + }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -1537,6 +1541,10 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, + "node_modules/compiler-wasm-lib": { + "resolved": "../compiler-rs/compiler-wasm-lib/pkg", + "link": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -6452,6 +6460,9 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, + "compiler-wasm-lib": { + "version": "file:../compiler-rs/compiler-wasm-lib/pkg" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", diff --git a/compiler/package.json b/compiler/package.json index 805891335b..ab6e6f33f4 100644 --- a/compiler/package.json +++ b/compiler/package.json @@ -10,6 +10,7 @@ "format:fix": "prettier --config .prettierrc.json --write ../specification/", "generate-schema": "ts-node src/index.ts", "transform-expand-generics": "ts-node src/transform/expand-generics.ts", + "transform-to-openapi": "ts-node src/transform/schema-to-openapi.ts", "filter-by-availability": "ts-node src/transform/filter-by-availability.ts", "dump-routes": "ts-node src/dump/extract-routes.ts", "compile:specification": "tsc --project ../specification/tsconfig.json --noEmit", @@ -36,6 +37,7 @@ "fastest-levenshtein": "^1.0.12", "ora": "^5.4.1", "safe-stable-stringify": "^2.3.1", + "compiler-wasm-lib": "file:../compiler-rs/compiler-wasm-lib/pkg", "semver": "^7.5.2", "ts-morph": "^13.0.3", "zx": "^4.3.0" diff --git a/compiler/src/transform/schema-to-openapi.ts b/compiler/src/transform/schema-to-openapi.ts new file mode 100644 index 0000000000..d90e09c01d --- /dev/null +++ b/compiler/src/transform/schema-to-openapi.ts @@ -0,0 +1,39 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { convert_schema_to_openapi } from 'compiler-wasm-lib' +import { argv } from 'zx' +import { join } from 'path' +import { readFileSync, writeFileSync } from 'fs' + +const inputPath = argv.input ?? join(__dirname, '..', '..', '..', 'output', 'schema', 'schema.json') +const outputPath = argv.output ?? join(__dirname, '..', '..', '..', 'output', 'openapi', 'elasticsearch-serverless-openapi.json') + +const inputText = readFileSync( + inputPath, + { encoding: 'utf8' } +) + +const output = convert_schema_to_openapi(inputText, 'serverless') + +writeFileSync( + outputPath, + output, + 'utf8' +) diff --git a/output/openapi/elasticsearch-serverless-openapi.json b/output/openapi/elasticsearch-serverless-openapi.json new file mode 100644 index 0000000000..559c8b5978 --- /dev/null +++ b/output/openapi/elasticsearch-serverless-openapi.json @@ -0,0 +1,57181 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Elasticsearch Request & Response Specification", + "license": { + "name": "Apache 2.0", + "url": "https://github.com/elastic/elasticsearch-specification/blob/main/LICENSE" + }, + "version": "" + }, + "paths": { + "/_async_search/{id}": { + "get": { + "tags": [ + "async_search.get" + ], + "summary": "Retrieves the results of a previously submitted async search request given its ID.", + "description": "Retrieves the results of a previously submitted async search request given its ID.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html" + }, + "operationId": "async-search-get", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "A unique identifier for the async search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "keep_alive", + "description": "Specifies how long the async search should be available in the cluster.\nWhen not specified, the `keep_alive` set with the corresponding submit async request will be used.\nOtherwise, it is possible to override the value and extend the validity of the request.\nWhen this period expires, the search, if still running, is cancelled.\nIf the search is completed, its saved results are deleted.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "typed_keys", + "description": "Specify whether aggregation and suggester names should be prefixed by their respective types in the response", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion_timeout", + "description": "Specifies to wait for the search to be completed up until the provided timeout.\nFinal results will be returned if available before the timeout expires, otherwise the currently available results will be returned once the timeout expires.\nBy default no timeout is set meaning that the currently available results will be returned without any additional wait.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/async_search._types:AsyncSearchDocumentResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "async_search.delete" + ], + "summary": "Deletes an async search by ID. If the search is still running, the search request will be cancelled. Otherwise, the saved search results are deleted.", + "description": "Deletes an async search by ID. If the search is still running, the search request will be cancelled. Otherwise, the saved search results are deleted.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html" + }, + "operationId": "async-search-delete", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "A unique identifier for the async search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_async_search/status/{id}": { + "get": { + "tags": [ + "async_search.status" + ], + "summary": "Retrieves the status of a previously submitted async search request given its ID.", + "description": "Retrieves the status of a previously submitted async search request given its ID.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html" + }, + "operationId": "async-search-status", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "A unique identifier for the async search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/async_search.status:StatusResponseBase" + } + } + } + } + } + } + }, + "/_async_search": { + "post": { + "tags": [ + "async_search.submit" + ], + "summary": "Executes a search request asynchronously.", + "description": "Executes a search request asynchronously.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html" + }, + "operationId": "async-search-submit", + "parameters": [ + { + "$ref": "#/components/parameters/async_search.submit#wait_for_completion_timeout" + }, + { + "$ref": "#/components/parameters/async_search.submit#keep_on_completion" + }, + { + "$ref": "#/components/parameters/async_search.submit#keep_alive" + }, + { + "$ref": "#/components/parameters/async_search.submit#allow_no_indices" + }, + { + "$ref": "#/components/parameters/async_search.submit#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/async_search.submit#analyzer" + }, + { + "$ref": "#/components/parameters/async_search.submit#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/async_search.submit#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/async_search.submit#default_operator" + }, + { + "$ref": "#/components/parameters/async_search.submit#df" + }, + { + "$ref": "#/components/parameters/async_search.submit#docvalue_fields" + }, + { + "$ref": "#/components/parameters/async_search.submit#expand_wildcards" + }, + { + "$ref": "#/components/parameters/async_search.submit#explain" + }, + { + "$ref": "#/components/parameters/async_search.submit#ignore_throttled" + }, + { + "$ref": "#/components/parameters/async_search.submit#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/async_search.submit#lenient" + }, + { + "$ref": "#/components/parameters/async_search.submit#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/async_search.submit#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/async_search.submit#preference" + }, + { + "$ref": "#/components/parameters/async_search.submit#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#request_cache" + }, + { + "$ref": "#/components/parameters/async_search.submit#routing" + }, + { + "$ref": "#/components/parameters/async_search.submit#scroll" + }, + { + "$ref": "#/components/parameters/async_search.submit#search_type" + }, + { + "$ref": "#/components/parameters/async_search.submit#stats" + }, + { + "$ref": "#/components/parameters/async_search.submit#stored_fields" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_field" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_mode" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_text" + }, + { + "$ref": "#/components/parameters/async_search.submit#terminate_after" + }, + { + "$ref": "#/components/parameters/async_search.submit#timeout" + }, + { + "$ref": "#/components/parameters/async_search.submit#track_total_hits" + }, + { + "$ref": "#/components/parameters/async_search.submit#track_scores" + }, + { + "$ref": "#/components/parameters/async_search.submit#typed_keys" + }, + { + "$ref": "#/components/parameters/async_search.submit#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/async_search.submit#version" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source_excludes" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source_includes" + }, + { + "$ref": "#/components/parameters/async_search.submit#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/async_search.submit#q" + }, + { + "$ref": "#/components/parameters/async_search.submit#size" + }, + { + "$ref": "#/components/parameters/async_search.submit#from" + }, + { + "$ref": "#/components/parameters/async_search.submit#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/async_search.submit" + }, + "responses": { + "200": { + "$ref": "#/components/responses/async_search.submit#200" + } + } + } + }, + "/{index}/_async_search": { + "post": { + "tags": [ + "async_search.submit" + ], + "summary": "Executes a search request asynchronously.", + "description": "Executes a search request asynchronously.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html" + }, + "operationId": "async-search-submit-1", + "parameters": [ + { + "$ref": "#/components/parameters/async_search.submit#index" + }, + { + "$ref": "#/components/parameters/async_search.submit#wait_for_completion_timeout" + }, + { + "$ref": "#/components/parameters/async_search.submit#keep_on_completion" + }, + { + "$ref": "#/components/parameters/async_search.submit#keep_alive" + }, + { + "$ref": "#/components/parameters/async_search.submit#allow_no_indices" + }, + { + "$ref": "#/components/parameters/async_search.submit#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/async_search.submit#analyzer" + }, + { + "$ref": "#/components/parameters/async_search.submit#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/async_search.submit#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/async_search.submit#default_operator" + }, + { + "$ref": "#/components/parameters/async_search.submit#df" + }, + { + "$ref": "#/components/parameters/async_search.submit#docvalue_fields" + }, + { + "$ref": "#/components/parameters/async_search.submit#expand_wildcards" + }, + { + "$ref": "#/components/parameters/async_search.submit#explain" + }, + { + "$ref": "#/components/parameters/async_search.submit#ignore_throttled" + }, + { + "$ref": "#/components/parameters/async_search.submit#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/async_search.submit#lenient" + }, + { + "$ref": "#/components/parameters/async_search.submit#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/async_search.submit#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/async_search.submit#preference" + }, + { + "$ref": "#/components/parameters/async_search.submit#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#request_cache" + }, + { + "$ref": "#/components/parameters/async_search.submit#routing" + }, + { + "$ref": "#/components/parameters/async_search.submit#scroll" + }, + { + "$ref": "#/components/parameters/async_search.submit#search_type" + }, + { + "$ref": "#/components/parameters/async_search.submit#stats" + }, + { + "$ref": "#/components/parameters/async_search.submit#stored_fields" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_field" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_mode" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_size" + }, + { + "$ref": "#/components/parameters/async_search.submit#suggest_text" + }, + { + "$ref": "#/components/parameters/async_search.submit#terminate_after" + }, + { + "$ref": "#/components/parameters/async_search.submit#timeout" + }, + { + "$ref": "#/components/parameters/async_search.submit#track_total_hits" + }, + { + "$ref": "#/components/parameters/async_search.submit#track_scores" + }, + { + "$ref": "#/components/parameters/async_search.submit#typed_keys" + }, + { + "$ref": "#/components/parameters/async_search.submit#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/async_search.submit#version" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source_excludes" + }, + { + "$ref": "#/components/parameters/async_search.submit#_source_includes" + }, + { + "$ref": "#/components/parameters/async_search.submit#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/async_search.submit#q" + }, + { + "$ref": "#/components/parameters/async_search.submit#size" + }, + { + "$ref": "#/components/parameters/async_search.submit#from" + }, + { + "$ref": "#/components/parameters/async_search.submit#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/async_search.submit" + }, + "responses": { + "200": { + "$ref": "#/components/responses/async_search.submit#200" + } + } + } + }, + "/_bulk": { + "put": { + "tags": [ + "bulk" + ], + "summary": "Allows to perform multiple index/update/delete operations in a single request.", + "description": "Allows to perform multiple index/update/delete operations in a single request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html" + }, + "operationId": "bulk-1", + "parameters": [ + { + "$ref": "#/components/parameters/bulk#pipeline" + }, + { + "$ref": "#/components/parameters/bulk#refresh" + }, + { + "$ref": "#/components/parameters/bulk#routing" + }, + { + "$ref": "#/components/parameters/bulk#_source" + }, + { + "$ref": "#/components/parameters/bulk#_source_excludes" + }, + { + "$ref": "#/components/parameters/bulk#_source_includes" + }, + { + "$ref": "#/components/parameters/bulk#timeout" + }, + { + "$ref": "#/components/parameters/bulk#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/bulk#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/bulk" + }, + "responses": { + "200": { + "$ref": "#/components/responses/bulk#200" + } + } + }, + "post": { + "tags": [ + "bulk" + ], + "summary": "Allows to perform multiple index/update/delete operations in a single request.", + "description": "Allows to perform multiple index/update/delete operations in a single request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html" + }, + "operationId": "bulk", + "parameters": [ + { + "$ref": "#/components/parameters/bulk#pipeline" + }, + { + "$ref": "#/components/parameters/bulk#refresh" + }, + { + "$ref": "#/components/parameters/bulk#routing" + }, + { + "$ref": "#/components/parameters/bulk#_source" + }, + { + "$ref": "#/components/parameters/bulk#_source_excludes" + }, + { + "$ref": "#/components/parameters/bulk#_source_includes" + }, + { + "$ref": "#/components/parameters/bulk#timeout" + }, + { + "$ref": "#/components/parameters/bulk#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/bulk#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/bulk" + }, + "responses": { + "200": { + "$ref": "#/components/responses/bulk#200" + } + } + } + }, + "/{index}/_bulk": { + "put": { + "tags": [ + "bulk" + ], + "summary": "Allows to perform multiple index/update/delete operations in a single request.", + "description": "Allows to perform multiple index/update/delete operations in a single request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html" + }, + "operationId": "bulk-3", + "parameters": [ + { + "$ref": "#/components/parameters/bulk#index" + }, + { + "$ref": "#/components/parameters/bulk#pipeline" + }, + { + "$ref": "#/components/parameters/bulk#refresh" + }, + { + "$ref": "#/components/parameters/bulk#routing" + }, + { + "$ref": "#/components/parameters/bulk#_source" + }, + { + "$ref": "#/components/parameters/bulk#_source_excludes" + }, + { + "$ref": "#/components/parameters/bulk#_source_includes" + }, + { + "$ref": "#/components/parameters/bulk#timeout" + }, + { + "$ref": "#/components/parameters/bulk#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/bulk#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/bulk" + }, + "responses": { + "200": { + "$ref": "#/components/responses/bulk#200" + } + } + }, + "post": { + "tags": [ + "bulk" + ], + "summary": "Allows to perform multiple index/update/delete operations in a single request.", + "description": "Allows to perform multiple index/update/delete operations in a single request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html" + }, + "operationId": "bulk-2", + "parameters": [ + { + "$ref": "#/components/parameters/bulk#index" + }, + { + "$ref": "#/components/parameters/bulk#pipeline" + }, + { + "$ref": "#/components/parameters/bulk#refresh" + }, + { + "$ref": "#/components/parameters/bulk#routing" + }, + { + "$ref": "#/components/parameters/bulk#_source" + }, + { + "$ref": "#/components/parameters/bulk#_source_excludes" + }, + { + "$ref": "#/components/parameters/bulk#_source_includes" + }, + { + "$ref": "#/components/parameters/bulk#timeout" + }, + { + "$ref": "#/components/parameters/bulk#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/bulk#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/bulk" + }, + "responses": { + "200": { + "$ref": "#/components/responses/bulk#200" + } + } + } + }, + "/_cat/aliases": { + "get": { + "tags": [ + "cat.aliases" + ], + "summary": "Shows information about currently configured aliases to indices including filter and routing infos.", + "description": "Shows information about currently configured aliases to indices including filter and routing infos.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-alias.html" + }, + "operationId": "cat-aliases", + "parameters": [ + { + "$ref": "#/components/parameters/cat.aliases#expand_wildcards" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.aliases#200" + } + } + } + }, + "/_cat/aliases/{name}": { + "get": { + "tags": [ + "cat.aliases" + ], + "summary": "Shows information about currently configured aliases to indices including filter and routing infos.", + "description": "Shows information about currently configured aliases to indices including filter and routing infos.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-alias.html" + }, + "operationId": "cat-aliases-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.aliases#name" + }, + { + "$ref": "#/components/parameters/cat.aliases#expand_wildcards" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.aliases#200" + } + } + } + }, + "/_cat/component_templates": { + "get": { + "tags": [ + "cat.component_templates" + ], + "summary": "Returns information about existing component_templates templates.", + "description": "Returns information about existing component_templates templates.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/cat-component-templates.html" + }, + "operationId": "cat-component-templates", + "responses": { + "200": { + "$ref": "#/components/responses/cat.component_templates#200" + } + } + } + }, + "/_cat/component_templates/{name}": { + "get": { + "tags": [ + "cat.component_templates" + ], + "summary": "Returns information about existing component_templates templates.", + "description": "Returns information about existing component_templates templates.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/cat-component-templates.html" + }, + "operationId": "cat-component-templates-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.component_templates#name" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.component_templates#200" + } + } + } + }, + "/_cat/count": { + "get": { + "tags": [ + "cat.count" + ], + "summary": "Provides quick access to the document count of the entire cluster, or individual indices.", + "description": "Provides quick access to the document count of the entire cluster, or individual indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-count.html" + }, + "operationId": "cat-count", + "responses": { + "200": { + "$ref": "#/components/responses/cat.count#200" + } + } + } + }, + "/_cat/count/{index}": { + "get": { + "tags": [ + "cat.count" + ], + "summary": "Provides quick access to the document count of the entire cluster, or individual indices.", + "description": "Provides quick access to the document count of the entire cluster, or individual indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-count.html" + }, + "operationId": "cat-count-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.count#index" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.count#200" + } + } + } + }, + "/_cat": { + "get": { + "tags": [ + "cat.help" + ], + "summary": "Returns help for the Cat APIs.", + "description": "Returns help for the Cat APIs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html" + }, + "operationId": "cat-help", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.help:HelpRecord" + } + } + } + } + } + } + } + }, + "/_cat/indices": { + "get": { + "tags": [ + "cat.indices" + ], + "summary": "Returns information about indices: number of primaries and replicas, document counts, disk size, ...", + "description": "Returns information about indices: number of primaries and replicas, document counts, disk size, ...", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html" + }, + "operationId": "cat-indices", + "parameters": [ + { + "$ref": "#/components/parameters/cat.indices#bytes" + }, + { + "$ref": "#/components/parameters/cat.indices#expand_wildcards" + }, + { + "$ref": "#/components/parameters/cat.indices#health" + }, + { + "$ref": "#/components/parameters/cat.indices#include_unloaded_segments" + }, + { + "$ref": "#/components/parameters/cat.indices#pri" + }, + { + "$ref": "#/components/parameters/cat.indices#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.indices#200" + } + } + } + }, + "/_cat/indices/{index}": { + "get": { + "tags": [ + "cat.indices" + ], + "summary": "Returns information about indices: number of primaries and replicas, document counts, disk size, ...", + "description": "Returns information about indices: number of primaries and replicas, document counts, disk size, ...", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html" + }, + "operationId": "cat-indices-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.indices#index" + }, + { + "$ref": "#/components/parameters/cat.indices#bytes" + }, + { + "$ref": "#/components/parameters/cat.indices#expand_wildcards" + }, + { + "$ref": "#/components/parameters/cat.indices#health" + }, + { + "$ref": "#/components/parameters/cat.indices#include_unloaded_segments" + }, + { + "$ref": "#/components/parameters/cat.indices#pri" + }, + { + "$ref": "#/components/parameters/cat.indices#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.indices#200" + } + } + } + }, + "/_cat/ml/data_frame/analytics": { + "get": { + "tags": [ + "cat.ml_data_frame_analytics" + ], + "summary": "Gets configuration and usage information about data frame analytics jobs.", + "description": "Gets configuration and usage information about data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-dfanalytics.html" + }, + "operationId": "cat-ml-data-frame-analytics", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#h" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#s" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_data_frame_analytics#200" + } + } + } + }, + "/_cat/ml/data_frame/analytics/{id}": { + "get": { + "tags": [ + "cat.ml_data_frame_analytics" + ], + "summary": "Gets configuration and usage information about data frame analytics jobs.", + "description": "Gets configuration and usage information about data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-dfanalytics.html" + }, + "operationId": "cat-ml-data-frame-analytics-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#id" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#h" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#s" + }, + { + "$ref": "#/components/parameters/cat.ml_data_frame_analytics#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_data_frame_analytics#200" + } + } + } + }, + "/_cat/ml/datafeeds": { + "get": { + "tags": [ + "cat.ml_datafeeds" + ], + "summary": "Gets configuration and usage information about datafeeds.", + "description": "Gets configuration and usage information about datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-datafeeds.html" + }, + "operationId": "cat-ml-datafeeds", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_datafeeds#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#h" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#s" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_datafeeds#200" + } + } + } + }, + "/_cat/ml/datafeeds/{datafeed_id}": { + "get": { + "tags": [ + "cat.ml_datafeeds" + ], + "summary": "Gets configuration and usage information about datafeeds.", + "description": "Gets configuration and usage information about datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-datafeeds.html" + }, + "operationId": "cat-ml-datafeeds-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_datafeeds#datafeed_id" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#h" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#s" + }, + { + "$ref": "#/components/parameters/cat.ml_datafeeds#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_datafeeds#200" + } + } + } + }, + "/_cat/ml/anomaly_detectors": { + "get": { + "tags": [ + "cat.ml_jobs" + ], + "summary": "Gets configuration and usage information about anomaly detection jobs.", + "description": "Gets configuration and usage information about anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-anomaly-detectors.html" + }, + "operationId": "cat-ml-jobs", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_jobs#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#h" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#s" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_jobs#200" + } + } + } + }, + "/_cat/ml/anomaly_detectors/{job_id}": { + "get": { + "tags": [ + "cat.ml_jobs" + ], + "summary": "Gets configuration and usage information about anomaly detection jobs.", + "description": "Gets configuration and usage information about anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-anomaly-detectors.html" + }, + "operationId": "cat-ml-jobs-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_jobs#job_id" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#h" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#s" + }, + { + "$ref": "#/components/parameters/cat.ml_jobs#time" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_jobs#200" + } + } + } + }, + "/_cat/ml/trained_models": { + "get": { + "tags": [ + "cat.ml_trained_models" + ], + "summary": "Gets configuration and usage information about inference trained models.", + "description": "Gets configuration and usage information about inference trained models.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-trained-model.html" + }, + "operationId": "cat-ml-trained-models", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_trained_models#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#h" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#s" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#from" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_trained_models#200" + } + } + } + }, + "/_cat/ml/trained_models/{model_id}": { + "get": { + "tags": [ + "cat.ml_trained_models" + ], + "summary": "Gets configuration and usage information about inference trained models.", + "description": "Gets configuration and usage information about inference trained models.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-trained-model.html" + }, + "operationId": "cat-ml-trained-models-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.ml_trained_models#model_id" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#bytes" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#h" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#s" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#from" + }, + { + "$ref": "#/components/parameters/cat.ml_trained_models#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.ml_trained_models#200" + } + } + } + }, + "/_cat/transforms": { + "get": { + "tags": [ + "cat.transforms" + ], + "summary": "Gets configuration and usage information about transforms.", + "description": "Gets configuration and usage information about transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-transforms.html" + }, + "operationId": "cat-transforms", + "parameters": [ + { + "$ref": "#/components/parameters/cat.transforms#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.transforms#from" + }, + { + "$ref": "#/components/parameters/cat.transforms#h" + }, + { + "$ref": "#/components/parameters/cat.transforms#s" + }, + { + "$ref": "#/components/parameters/cat.transforms#time" + }, + { + "$ref": "#/components/parameters/cat.transforms#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.transforms#200" + } + } + } + }, + "/_cat/transforms/{transform_id}": { + "get": { + "tags": [ + "cat.transforms" + ], + "summary": "Gets configuration and usage information about transforms.", + "description": "Gets configuration and usage information about transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-transforms.html" + }, + "operationId": "cat-transforms-1", + "parameters": [ + { + "$ref": "#/components/parameters/cat.transforms#transform_id" + }, + { + "$ref": "#/components/parameters/cat.transforms#allow_no_match" + }, + { + "$ref": "#/components/parameters/cat.transforms#from" + }, + { + "$ref": "#/components/parameters/cat.transforms#h" + }, + { + "$ref": "#/components/parameters/cat.transforms#s" + }, + { + "$ref": "#/components/parameters/cat.transforms#time" + }, + { + "$ref": "#/components/parameters/cat.transforms#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cat.transforms#200" + } + } + } + }, + "/_search/scroll": { + "get": { + "tags": [ + "scroll" + ], + "summary": "Allows to retrieve a large numbers of results from a single search request.", + "description": "Allows to retrieve a large numbers of results from a single search request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll" + }, + "operationId": "scroll", + "parameters": [ + { + "$ref": "#/components/parameters/scroll#scroll" + }, + { + "$ref": "#/components/parameters/scroll#scroll_id_" + }, + { + "$ref": "#/components/parameters/scroll#rest_total_hits_as_int" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scroll#200" + } + } + }, + "post": { + "tags": [ + "scroll" + ], + "summary": "Allows to retrieve a large numbers of results from a single search request.", + "description": "Allows to retrieve a large numbers of results from a single search request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll" + }, + "operationId": "scroll-1", + "parameters": [ + { + "$ref": "#/components/parameters/scroll#scroll" + }, + { + "$ref": "#/components/parameters/scroll#scroll_id_" + }, + { + "$ref": "#/components/parameters/scroll#rest_total_hits_as_int" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scroll#200" + } + } + }, + "delete": { + "tags": [ + "clear_scroll" + ], + "summary": "Explicitly clears the search context for a scroll.", + "description": "Explicitly clears the search context for a scroll.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html" + }, + "operationId": "clear-scroll", + "requestBody": { + "$ref": "#/components/requestBodies/clear_scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/clear_scroll#200" + } + } + } + }, + "/_search/scroll/{scroll_id}": { + "get": { + "tags": [ + "scroll" + ], + "summary": "Allows to retrieve a large numbers of results from a single search request.", + "description": "Allows to retrieve a large numbers of results from a single search request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll" + }, + "operationId": "scroll-2", + "parameters": [ + { + "$ref": "#/components/parameters/scroll#scroll_id" + }, + { + "$ref": "#/components/parameters/scroll#scroll" + }, + { + "$ref": "#/components/parameters/scroll#scroll_id_" + }, + { + "$ref": "#/components/parameters/scroll#rest_total_hits_as_int" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scroll#200" + } + } + }, + "post": { + "tags": [ + "scroll" + ], + "summary": "Allows to retrieve a large numbers of results from a single search request.", + "description": "Allows to retrieve a large numbers of results from a single search request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-body.html#request-body-search-scroll" + }, + "operationId": "scroll-3", + "parameters": [ + { + "$ref": "#/components/parameters/scroll#scroll_id" + }, + { + "$ref": "#/components/parameters/scroll#scroll" + }, + { + "$ref": "#/components/parameters/scroll#scroll_id_" + }, + { + "$ref": "#/components/parameters/scroll#rest_total_hits_as_int" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scroll#200" + } + } + }, + "delete": { + "tags": [ + "clear_scroll" + ], + "summary": "Explicitly clears the search context for a scroll.", + "description": "Explicitly clears the search context for a scroll.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html" + }, + "operationId": "clear-scroll-1", + "parameters": [ + { + "$ref": "#/components/parameters/clear_scroll#scroll_id" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/clear_scroll" + }, + "responses": { + "200": { + "$ref": "#/components/responses/clear_scroll#200" + } + } + } + }, + "/_pit": { + "delete": { + "tags": [ + "close_point_in_time" + ], + "summary": "Close a point in time", + "description": "Close a point in time", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html" + }, + "operationId": "close-point-in-time", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "required": [ + "id" + ] + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "succeeded": { + "type": "boolean" + }, + "num_freed": { + "type": "number" + } + }, + "required": [ + "succeeded", + "num_freed" + ] + } + } + } + } + } + } + }, + "/_component_template/{name}": { + "get": { + "tags": [ + "cluster.get_component_template" + ], + "summary": "Returns one or more component templates", + "description": "Returns one or more component templates", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-get-component-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/cluster.get_component_template#name" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#flat_settings" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#include_defaults" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#local" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cluster.get_component_template#200" + } + } + }, + "put": { + "tags": [ + "cluster.put_component_template" + ], + "summary": "Creates or updates a component template", + "description": "Creates or updates a component template", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-put-component-template", + "parameters": [ + { + "$ref": "#/components/parameters/cluster.put_component_template#name" + }, + { + "$ref": "#/components/parameters/cluster.put_component_template#create" + }, + { + "$ref": "#/components/parameters/cluster.put_component_template#master_timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/cluster.put_component_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/cluster.put_component_template#200" + } + } + }, + "post": { + "tags": [ + "cluster.put_component_template" + ], + "summary": "Creates or updates a component template", + "description": "Creates or updates a component template", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-put-component-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/cluster.put_component_template#name" + }, + { + "$ref": "#/components/parameters/cluster.put_component_template#create" + }, + { + "$ref": "#/components/parameters/cluster.put_component_template#master_timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/cluster.put_component_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/cluster.put_component_template#200" + } + } + }, + "delete": { + "tags": [ + "cluster.delete_component_template" + ], + "summary": "Deletes a component template", + "description": "Deletes a component template", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-delete-component-template", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list or wildcard expression of component template names used to limit the request.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "head": { + "tags": [ + "cluster.exists_component_template" + ], + "summary": "Returns information about whether a particular component template exist", + "description": "Returns information about whether a particular component template exist", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-exists-component-template", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of component template names used to limit the request.\nWildcard (*) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is\nreceived before the timeout expires, the request fails and returns an\nerror.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "local", + "description": "If true, the request retrieves information from the local node only.\nDefaults to false, which means information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/_component_template": { + "get": { + "tags": [ + "cluster.get_component_template" + ], + "summary": "Returns one or more component templates", + "description": "Returns one or more component templates", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html" + }, + "operationId": "cluster-get-component-template", + "parameters": [ + { + "$ref": "#/components/parameters/cluster.get_component_template#flat_settings" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#include_defaults" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#local" + }, + { + "$ref": "#/components/parameters/cluster.get_component_template#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/cluster.get_component_template#200" + } + } + } + }, + "/_info/{target}": { + "get": { + "tags": [ + "cluster.info" + ], + "summary": "Returns different information about the cluster.", + "description": "Returns different information about the cluster.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-info.html" + }, + "operationId": "cluster-info", + "parameters": [ + { + "in": "path", + "name": "target", + "description": "Limits the information returned to the specific target. Supports a comma-separated list, such as http,ingest.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ClusterInfoTargets" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "http": { + "$ref": "#/components/schemas/nodes._types:Http" + }, + "ingest": { + "$ref": "#/components/schemas/nodes._types:Ingest" + }, + "thread_pool": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/nodes._types:ThreadCount" + } + }, + "script": { + "$ref": "#/components/schemas/nodes._types:Scripting" + } + }, + "required": [ + "cluster_name" + ] + } + } + } + } + } + } + }, + "/_count": { + "get": { + "tags": [ + "count" + ], + "summary": "Returns number of documents matching a query.", + "description": "Returns number of documents matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html" + }, + "operationId": "count-1", + "parameters": [ + { + "$ref": "#/components/parameters/count#allow_no_indices" + }, + { + "$ref": "#/components/parameters/count#analyzer" + }, + { + "$ref": "#/components/parameters/count#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/count#default_operator" + }, + { + "$ref": "#/components/parameters/count#df" + }, + { + "$ref": "#/components/parameters/count#expand_wildcards" + }, + { + "$ref": "#/components/parameters/count#ignore_throttled" + }, + { + "$ref": "#/components/parameters/count#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/count#lenient" + }, + { + "$ref": "#/components/parameters/count#min_score" + }, + { + "$ref": "#/components/parameters/count#preference" + }, + { + "$ref": "#/components/parameters/count#routing" + }, + { + "$ref": "#/components/parameters/count#terminate_after" + }, + { + "$ref": "#/components/parameters/count#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/count" + }, + "responses": { + "200": { + "$ref": "#/components/responses/count#200" + } + } + }, + "post": { + "tags": [ + "count" + ], + "summary": "Returns number of documents matching a query.", + "description": "Returns number of documents matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html" + }, + "operationId": "count", + "parameters": [ + { + "$ref": "#/components/parameters/count#allow_no_indices" + }, + { + "$ref": "#/components/parameters/count#analyzer" + }, + { + "$ref": "#/components/parameters/count#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/count#default_operator" + }, + { + "$ref": "#/components/parameters/count#df" + }, + { + "$ref": "#/components/parameters/count#expand_wildcards" + }, + { + "$ref": "#/components/parameters/count#ignore_throttled" + }, + { + "$ref": "#/components/parameters/count#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/count#lenient" + }, + { + "$ref": "#/components/parameters/count#min_score" + }, + { + "$ref": "#/components/parameters/count#preference" + }, + { + "$ref": "#/components/parameters/count#routing" + }, + { + "$ref": "#/components/parameters/count#terminate_after" + }, + { + "$ref": "#/components/parameters/count#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/count" + }, + "responses": { + "200": { + "$ref": "#/components/responses/count#200" + } + } + } + }, + "/{index}/_count": { + "get": { + "tags": [ + "count" + ], + "summary": "Returns number of documents matching a query.", + "description": "Returns number of documents matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html" + }, + "operationId": "count-3", + "parameters": [ + { + "$ref": "#/components/parameters/count#index" + }, + { + "$ref": "#/components/parameters/count#allow_no_indices" + }, + { + "$ref": "#/components/parameters/count#analyzer" + }, + { + "$ref": "#/components/parameters/count#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/count#default_operator" + }, + { + "$ref": "#/components/parameters/count#df" + }, + { + "$ref": "#/components/parameters/count#expand_wildcards" + }, + { + "$ref": "#/components/parameters/count#ignore_throttled" + }, + { + "$ref": "#/components/parameters/count#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/count#lenient" + }, + { + "$ref": "#/components/parameters/count#min_score" + }, + { + "$ref": "#/components/parameters/count#preference" + }, + { + "$ref": "#/components/parameters/count#routing" + }, + { + "$ref": "#/components/parameters/count#terminate_after" + }, + { + "$ref": "#/components/parameters/count#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/count" + }, + "responses": { + "200": { + "$ref": "#/components/responses/count#200" + } + } + }, + "post": { + "tags": [ + "count" + ], + "summary": "Returns number of documents matching a query.", + "description": "Returns number of documents matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-count.html" + }, + "operationId": "count-2", + "parameters": [ + { + "$ref": "#/components/parameters/count#index" + }, + { + "$ref": "#/components/parameters/count#allow_no_indices" + }, + { + "$ref": "#/components/parameters/count#analyzer" + }, + { + "$ref": "#/components/parameters/count#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/count#default_operator" + }, + { + "$ref": "#/components/parameters/count#df" + }, + { + "$ref": "#/components/parameters/count#expand_wildcards" + }, + { + "$ref": "#/components/parameters/count#ignore_throttled" + }, + { + "$ref": "#/components/parameters/count#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/count#lenient" + }, + { + "$ref": "#/components/parameters/count#min_score" + }, + { + "$ref": "#/components/parameters/count#preference" + }, + { + "$ref": "#/components/parameters/count#routing" + }, + { + "$ref": "#/components/parameters/count#terminate_after" + }, + { + "$ref": "#/components/parameters/count#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/count" + }, + "responses": { + "200": { + "$ref": "#/components/responses/count#200" + } + } + } + }, + "/{index}/_create/{id}": { + "put": { + "tags": [ + "create" + ], + "summary": "Creates a new document in the index.\n\nReturns a 409 response when a document with a same ID already exists in the index.", + "description": "Creates a new document in the index.\n\nReturns a 409 response when a document with a same ID already exists in the index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html" + }, + "operationId": "create", + "parameters": [ + { + "$ref": "#/components/parameters/create#index" + }, + { + "$ref": "#/components/parameters/create#id" + }, + { + "$ref": "#/components/parameters/create#pipeline" + }, + { + "$ref": "#/components/parameters/create#refresh" + }, + { + "$ref": "#/components/parameters/create#routing" + }, + { + "$ref": "#/components/parameters/create#timeout" + }, + { + "$ref": "#/components/parameters/create#version" + }, + { + "$ref": "#/components/parameters/create#version_type" + }, + { + "$ref": "#/components/parameters/create#wait_for_active_shards" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/create" + }, + "responses": { + "200": { + "$ref": "#/components/responses/create#200" + } + } + }, + "post": { + "tags": [ + "create" + ], + "summary": "Creates a new document in the index.\n\nReturns a 409 response when a document with a same ID already exists in the index.", + "description": "Creates a new document in the index.\n\nReturns a 409 response when a document with a same ID already exists in the index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html" + }, + "operationId": "create-1", + "parameters": [ + { + "$ref": "#/components/parameters/create#index" + }, + { + "$ref": "#/components/parameters/create#id" + }, + { + "$ref": "#/components/parameters/create#pipeline" + }, + { + "$ref": "#/components/parameters/create#refresh" + }, + { + "$ref": "#/components/parameters/create#routing" + }, + { + "$ref": "#/components/parameters/create#timeout" + }, + { + "$ref": "#/components/parameters/create#version" + }, + { + "$ref": "#/components/parameters/create#version_type" + }, + { + "$ref": "#/components/parameters/create#wait_for_active_shards" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/create" + }, + "responses": { + "200": { + "$ref": "#/components/responses/create#200" + } + } + } + }, + "/{index}/_doc/{id}": { + "get": { + "tags": [ + "get" + ], + "summary": "Returns a document.", + "description": "Returns a document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html" + }, + "operationId": "get", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Name of the index that contains the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Unique identifier of the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on. Random by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "realtime", + "description": "If `true`, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If true, Elasticsearch refreshes the affected shards to make this operation visible to search. If false, do nothing with refreshes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Target the specified primary shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source", + "description": "True or false to return the _source field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "stored_fields", + "description": "List of stored fields to return as part of a hit.\nIf no fields are specified, no stored fields are included in the response.\nIf this field is specified, the `_source` parameter defaults to false.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control. The specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Specific version type: internal, external, external_gte.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.get:GetResult" + } + } + } + } + } + }, + "put": { + "tags": [ + "index" + ], + "summary": "Creates or updates a document in an index.", + "description": "Creates or updates a document in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html" + }, + "operationId": "index", + "parameters": [ + { + "$ref": "#/components/parameters/index#index" + }, + { + "$ref": "#/components/parameters/index#id" + }, + { + "$ref": "#/components/parameters/index#if_primary_term" + }, + { + "$ref": "#/components/parameters/index#if_seq_no" + }, + { + "$ref": "#/components/parameters/index#op_type" + }, + { + "$ref": "#/components/parameters/index#pipeline" + }, + { + "$ref": "#/components/parameters/index#refresh" + }, + { + "$ref": "#/components/parameters/index#routing" + }, + { + "$ref": "#/components/parameters/index#timeout" + }, + { + "$ref": "#/components/parameters/index#version" + }, + { + "$ref": "#/components/parameters/index#version_type" + }, + { + "$ref": "#/components/parameters/index#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/index#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/index" + }, + "responses": { + "200": { + "$ref": "#/components/responses/index#200" + } + } + }, + "post": { + "tags": [ + "index" + ], + "summary": "Creates or updates a document in an index.", + "description": "Creates or updates a document in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html" + }, + "operationId": "index-1", + "parameters": [ + { + "$ref": "#/components/parameters/index#index" + }, + { + "$ref": "#/components/parameters/index#id" + }, + { + "$ref": "#/components/parameters/index#if_primary_term" + }, + { + "$ref": "#/components/parameters/index#if_seq_no" + }, + { + "$ref": "#/components/parameters/index#op_type" + }, + { + "$ref": "#/components/parameters/index#pipeline" + }, + { + "$ref": "#/components/parameters/index#refresh" + }, + { + "$ref": "#/components/parameters/index#routing" + }, + { + "$ref": "#/components/parameters/index#timeout" + }, + { + "$ref": "#/components/parameters/index#version" + }, + { + "$ref": "#/components/parameters/index#version_type" + }, + { + "$ref": "#/components/parameters/index#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/index#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/index" + }, + "responses": { + "200": { + "$ref": "#/components/responses/index#200" + } + } + }, + "delete": { + "tags": [ + "delete" + ], + "summary": "Removes a document from the index.", + "description": "Removes a document from the index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete.html" + }, + "operationId": "delete", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Name of the target index.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Unique identifier for the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "if_primary_term", + "description": "Only perform the operation if the document has this primary term.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "if_seq_no", + "description": "Only perform the operation if the document has this sequence number.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes 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` do nothing with refreshes.\nValid values: `true`, `false`, `wait_for`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control.\nThe specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Specific version type: `external`, `external_gte`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:WriteResponseBase" + } + } + } + } + } + }, + "head": { + "tags": [ + "exists" + ], + "summary": "Returns information about whether a document exists in an index.", + "description": "Returns information about whether a document exists in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html" + }, + "operationId": "exists", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases.\nSupports wildcards (`*`).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Identifier of the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "realtime", + "description": "If `true`, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes all shards involved in the delete by query after the request completes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Target the specified primary shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source", + "description": "`true` or `false` to return the `_source` field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "stored_fields", + "description": "List of stored fields to return as part of a hit.\nIf no fields are specified, no stored fields are included in the response.\nIf this field is specified, the `_source` parameter defaults to false.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control.\nThe specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Specific version type: `external`, `external_gte`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/{index}/_delete_by_query": { + "post": { + "tags": [ + "delete_by_query" + ], + "summary": "Deletes documents matching the provided query.", + "description": "Deletes documents matching the provided query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-delete-by-query.html" + }, + "operationId": "delete-by-query", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams or indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.\nFor example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "analyze_wildcard", + "description": "If `true`, wildcard and prefix queries are analyzed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "conflicts", + "description": "What to do if delete by query hits version conflicts: `abort` or `proceed`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Conflicts" + }, + "style": "form" + }, + { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: `AND` or `OR`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`. Valid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Starting offset (default: 0)", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "max_docs", + "description": "Maximum number of documents to process.\nDefaults to all documents.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes all shards involved in the delete by query after the request completes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "request_cache", + "description": "If `true`, the request cache is used for this request.\nDefaults to the index-level setting.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "requests_per_second", + "description": "The throttle for this request in sub-requests per second.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "scroll", + "description": "Period to retain the search context for scrolling.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "scroll_size", + "description": "Size of the scroll request that powers the operation.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "search_timeout", + "description": "Explicit timeout for each search request.\nDefaults to no timeout.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "search_type", + "description": "The type of the search operation.\nAvailable options: `query_then_fetch`, `dfs_query_then_fetch`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + { + "in": "query", + "name": "slices", + "description": "The number of slices this task should be divided into.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Slices" + }, + "style": "form" + }, + { + "in": "query", + "name": "sort", + "description": "A comma-separated list of : pairs.", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + { + "in": "query", + "name": "stats", + "description": "Specific `tag` of the request for logging and statistical purposes.", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + { + "in": "query", + "name": "terminate_after", + "description": "Maximum number of documents to collect for each shard.\nIf a query reaches this limit, Elasticsearch terminates the query early.\nElasticsearch collects documents before sorting.\nUse with caution.\nElasticsearch applies this parameter to each shard handling the request.\nWhen possible, let Elasticsearch perform early termination automatically.\nAvoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period each deletion request waits for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "If `true`, returns the document version as part of a hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to all or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If `true`, the request blocks until the operation is complete.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "max_docs": { + "description": "The maximum number of documents to delete.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "slice": { + "$ref": "#/components/schemas/_types:SlicedScroll" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "batches": { + "type": "number" + }, + "deleted": { + "type": "number" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:BulkIndexByScrollFailure" + } + }, + "noops": { + "type": "number" + }, + "requests_per_second": { + "type": "number" + }, + "retries": { + "$ref": "#/components/schemas/_types:Retries" + }, + "slice_id": { + "type": "number" + }, + "task": { + "$ref": "#/components/schemas/_types:TaskId" + }, + "throttled": { + "$ref": "#/components/schemas/_types:Duration" + }, + "throttled_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "throttled_until": { + "$ref": "#/components/schemas/_types:Duration" + }, + "throttled_until_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "timed_out": { + "type": "boolean" + }, + "took": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "total": { + "type": "number" + }, + "version_conflicts": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "/_scripts/{id}": { + "get": { + "tags": [ + "get_script" + ], + "summary": "Returns a script.", + "description": "Returns a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "get-script", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the stored script or search template.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Specify timeout for connection to master", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "found": { + "type": "boolean" + }, + "script": { + "$ref": "#/components/schemas/_types:StoredScript" + } + }, + "required": [ + "_id", + "found" + ] + } + } + } + } + } + }, + "put": { + "tags": [ + "put_script" + ], + "summary": "Creates or updates a script.", + "description": "Creates or updates a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "put-script", + "parameters": [ + { + "$ref": "#/components/parameters/put_script#id" + }, + { + "$ref": "#/components/parameters/put_script#master_timeout" + }, + { + "$ref": "#/components/parameters/put_script#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/put_script" + }, + "responses": { + "200": { + "$ref": "#/components/responses/put_script#200" + } + } + }, + "post": { + "tags": [ + "put_script" + ], + "summary": "Creates or updates a script.", + "description": "Creates or updates a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "put-script-1", + "parameters": [ + { + "$ref": "#/components/parameters/put_script#id" + }, + { + "$ref": "#/components/parameters/put_script#master_timeout" + }, + { + "$ref": "#/components/parameters/put_script#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/put_script" + }, + "responses": { + "200": { + "$ref": "#/components/responses/put_script#200" + } + } + }, + "delete": { + "tags": [ + "delete_script" + ], + "summary": "Deletes a script.", + "description": "Deletes a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "delete-script", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the stored script or search template.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_enrich/policy/{name}": { + "get": { + "tags": [ + "enrich.get_policy" + ], + "summary": "Gets information about an enrich policy.", + "description": "Gets information about an enrich policy.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-enrich-policy-api.html" + }, + "operationId": "enrich-get-policy", + "parameters": [ + { + "$ref": "#/components/parameters/enrich.get_policy#name" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/enrich.get_policy#200" + } + } + }, + "put": { + "tags": [ + "enrich.put_policy" + ], + "summary": "Creates a new enrich policy.", + "description": "Creates a new enrich policy.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-enrich-policy-api.html" + }, + "operationId": "enrich-put-policy", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Name of the enrich policy to create or update.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "geo_match": { + "$ref": "#/components/schemas/enrich._types:Policy" + }, + "match": { + "$ref": "#/components/schemas/enrich._types:Policy" + }, + "range": { + "$ref": "#/components/schemas/enrich._types:Policy" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "enrich.delete_policy" + ], + "summary": "Deletes an existing enrich policy and its enrich index.", + "description": "Deletes an existing enrich policy and its enrich index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-enrich-policy-api.html" + }, + "operationId": "enrich-delete-policy", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Enrich policy to delete.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_enrich/policy/{name}/_execute": { + "put": { + "tags": [ + "enrich.execute_policy" + ], + "summary": "Creates the enrich index for an existing enrich policy.", + "description": "Creates the enrich index for an existing enrich policy.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/execute-enrich-policy-api.html" + }, + "operationId": "enrich-execute-policy", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Enrich policy to execute.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If `true`, the request blocks other enrich policy execution requests until complete.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/enrich.execute_policy:ExecuteEnrichPolicyStatus" + }, + "task_id": { + "$ref": "#/components/schemas/_types:TaskId" + } + }, + "required": [ + "status" + ] + } + } + } + } + } + } + }, + "/_enrich/policy": { + "get": { + "tags": [ + "enrich.get_policy" + ], + "summary": "Gets information about an enrich policy.", + "description": "Gets information about an enrich policy.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-enrich-policy-api.html" + }, + "operationId": "enrich-get-policy-1", + "responses": { + "200": { + "$ref": "#/components/responses/enrich.get_policy#200" + } + } + } + }, + "/_enrich/_stats": { + "get": { + "tags": [ + "enrich.stats" + ], + "summary": "Gets enrich coordinator statistics and information about enrich policies that are currently executing.", + "description": "Gets enrich coordinator statistics and information about enrich policies that are currently executing.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/enrich-stats-api.html" + }, + "operationId": "enrich-stats", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "coordinator_stats": { + "description": "Objects containing information about each coordinating ingest node for configured enrich processors.", + "type": "array", + "items": { + "$ref": "#/components/schemas/enrich.stats:CoordinatorStats" + } + }, + "executing_policies": { + "description": "Objects containing information about each enrich policy that is currently executing.", + "type": "array", + "items": { + "$ref": "#/components/schemas/enrich.stats:ExecutingPolicy" + } + }, + "cache_stats": { + "description": "Objects containing information about the enrich cache stats on each ingest node.", + "type": "array", + "items": { + "$ref": "#/components/schemas/enrich.stats:CacheStats" + } + } + }, + "required": [ + "coordinator_stats", + "executing_policies" + ] + } + } + } + } + } + } + }, + "/_eql/search/{id}": { + "get": { + "tags": [ + "eql.get" + ], + "summary": "Returns async results from previously executed Event Query Language (EQL) search", + "description": "Returns async results from previously executed Event Query Language (EQL) search", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-async-eql-search-api.html" + }, + "operationId": "eql-get", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "keep_alive", + "description": "Period for which the search and its results are stored on the cluster.\nDefaults to the keep_alive value set by the search’s EQL search API request.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion_timeout", + "description": "Timeout duration to wait for the request to finish.\nDefaults to no timeout, meaning the request waits for complete search results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eql._types:EqlSearchResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "eql.delete" + ], + "summary": "Deletes an async EQL search by ID. If the search is still running, the search request will be cancelled. Otherwise, the saved search results are deleted.", + "description": "Deletes an async EQL search by ID. If the search is still running, the search request will be cancelled. Otherwise, the saved search results are deleted.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html" + }, + "operationId": "eql-delete", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search to delete.\nA search ID is provided in the EQL search API's response for an async search.\nA search ID is also provided if the request’s `keep_on_completion` parameter is `true`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_eql/search/status/{id}": { + "get": { + "tags": [ + "eql.get_status" + ], + "summary": "Returns the status of a previously submitted async or stored Event Query Language (EQL) search", + "description": "Returns the status of a previously submitted async or stored Event Query Language (EQL) search", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-async-eql-status-api.html" + }, + "operationId": "eql-get-status", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "is_partial": { + "description": "If true, the search request is still executing. If false, the search is completed.", + "type": "boolean" + }, + "is_running": { + "description": "If true, the response does not contain complete search results. This could be because either the search is still running (is_running status is false), or because it is already completed (is_running status is true) and results are partial due to failures or timeouts.", + "type": "boolean" + }, + "start_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "expiration_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "completion_status": { + "description": "For a completed search shows the http status code of the completed search.", + "type": "number" + } + }, + "required": [ + "id", + "is_partial", + "is_running" + ] + } + } + } + } + } + } + }, + "/{index}/_eql/search": { + "get": { + "tags": [ + "eql.search" + ], + "summary": "Returns results matching a query expressed in Event Query Language (EQL)", + "description": "Returns results matching a query expressed in Event Query Language (EQL)", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html" + }, + "operationId": "eql-search", + "parameters": [ + { + "$ref": "#/components/parameters/eql.search#index" + }, + { + "$ref": "#/components/parameters/eql.search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/eql.search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/eql.search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/eql.search#keep_alive" + }, + { + "$ref": "#/components/parameters/eql.search#keep_on_completion" + }, + { + "$ref": "#/components/parameters/eql.search#wait_for_completion_timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/eql.search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/eql.search#200" + } + } + }, + "post": { + "tags": [ + "eql.search" + ], + "summary": "Returns results matching a query expressed in Event Query Language (EQL)", + "description": "Returns results matching a query expressed in Event Query Language (EQL)", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-search-api.html" + }, + "operationId": "eql-search-1", + "parameters": [ + { + "$ref": "#/components/parameters/eql.search#index" + }, + { + "$ref": "#/components/parameters/eql.search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/eql.search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/eql.search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/eql.search#keep_alive" + }, + { + "$ref": "#/components/parameters/eql.search#keep_on_completion" + }, + { + "$ref": "#/components/parameters/eql.search#wait_for_completion_timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/eql.search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/eql.search#200" + } + } + } + }, + "/{index}/_source/{id}": { + "get": { + "tags": [ + "get_source" + ], + "summary": "Returns the source of a document.", + "description": "Returns the source of a document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html" + }, + "operationId": "get-source", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Name of the index that contains the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Unique identifier of the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on. Random by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "realtime", + "description": "Boolean) If true, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If true, Elasticsearch refreshes the affected shards to make this operation visible to search. If false, do nothing with refreshes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Target the specified primary shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source", + "description": "True or false to return the _source field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "stored_fields", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control. The specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Specific version type: internal, external, external_gte.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + }, + "head": { + "tags": [ + "exists_source" + ], + "summary": "Returns information about whether a document source exists in an index.", + "description": "Returns information about whether a document source exists in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html" + }, + "operationId": "exists-source", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases.\nSupports wildcards (`*`).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Identifier of the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "realtime", + "description": "If true, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes all shards involved in the delete by query after the request completes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Target the specified primary shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source", + "description": "`true` or `false` to return the `_source` field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control.\nThe specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Specific version type: `external`, `external_gte`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/{index}/_explain/{id}": { + "get": { + "tags": [ + "explain" + ], + "summary": "Returns information about why a specific matches (or doesn't match) a query.", + "description": "Returns information about why a specific matches (or doesn't match) a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html" + }, + "operationId": "explain", + "parameters": [ + { + "$ref": "#/components/parameters/explain#index" + }, + { + "$ref": "#/components/parameters/explain#id" + }, + { + "$ref": "#/components/parameters/explain#analyzer" + }, + { + "$ref": "#/components/parameters/explain#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/explain#default_operator" + }, + { + "$ref": "#/components/parameters/explain#df" + }, + { + "$ref": "#/components/parameters/explain#lenient" + }, + { + "$ref": "#/components/parameters/explain#preference" + }, + { + "$ref": "#/components/parameters/explain#routing" + }, + { + "$ref": "#/components/parameters/explain#_source" + }, + { + "$ref": "#/components/parameters/explain#_source_excludes" + }, + { + "$ref": "#/components/parameters/explain#_source_includes" + }, + { + "$ref": "#/components/parameters/explain#stored_fields" + }, + { + "$ref": "#/components/parameters/explain#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/explain" + }, + "responses": { + "200": { + "$ref": "#/components/responses/explain#200" + } + } + }, + "post": { + "tags": [ + "explain" + ], + "summary": "Returns information about why a specific matches (or doesn't match) a query.", + "description": "Returns information about why a specific matches (or doesn't match) a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-explain.html" + }, + "operationId": "explain-1", + "parameters": [ + { + "$ref": "#/components/parameters/explain#index" + }, + { + "$ref": "#/components/parameters/explain#id" + }, + { + "$ref": "#/components/parameters/explain#analyzer" + }, + { + "$ref": "#/components/parameters/explain#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/explain#default_operator" + }, + { + "$ref": "#/components/parameters/explain#df" + }, + { + "$ref": "#/components/parameters/explain#lenient" + }, + { + "$ref": "#/components/parameters/explain#preference" + }, + { + "$ref": "#/components/parameters/explain#routing" + }, + { + "$ref": "#/components/parameters/explain#_source" + }, + { + "$ref": "#/components/parameters/explain#_source_excludes" + }, + { + "$ref": "#/components/parameters/explain#_source_includes" + }, + { + "$ref": "#/components/parameters/explain#stored_fields" + }, + { + "$ref": "#/components/parameters/explain#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/explain" + }, + "responses": { + "200": { + "$ref": "#/components/responses/explain#200" + } + } + } + }, + "/_field_caps": { + "get": { + "tags": [ + "field_caps" + ], + "summary": "Returns the information about the capabilities of fields among multiple indices.", + "description": "Returns the information about the capabilities of fields among multiple indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html" + }, + "operationId": "field-caps", + "parameters": [ + { + "$ref": "#/components/parameters/field_caps#allow_no_indices" + }, + { + "$ref": "#/components/parameters/field_caps#expand_wildcards" + }, + { + "$ref": "#/components/parameters/field_caps#fields" + }, + { + "$ref": "#/components/parameters/field_caps#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/field_caps#include_unmapped" + }, + { + "$ref": "#/components/parameters/field_caps#filters" + }, + { + "$ref": "#/components/parameters/field_caps#types" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/field_caps" + }, + "responses": { + "200": { + "$ref": "#/components/responses/field_caps#200" + } + } + }, + "post": { + "tags": [ + "field_caps" + ], + "summary": "Returns the information about the capabilities of fields among multiple indices.", + "description": "Returns the information about the capabilities of fields among multiple indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html" + }, + "operationId": "field-caps-1", + "parameters": [ + { + "$ref": "#/components/parameters/field_caps#allow_no_indices" + }, + { + "$ref": "#/components/parameters/field_caps#expand_wildcards" + }, + { + "$ref": "#/components/parameters/field_caps#fields" + }, + { + "$ref": "#/components/parameters/field_caps#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/field_caps#include_unmapped" + }, + { + "$ref": "#/components/parameters/field_caps#filters" + }, + { + "$ref": "#/components/parameters/field_caps#types" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/field_caps" + }, + "responses": { + "200": { + "$ref": "#/components/responses/field_caps#200" + } + } + } + }, + "/{index}/_field_caps": { + "get": { + "tags": [ + "field_caps" + ], + "summary": "Returns the information about the capabilities of fields among multiple indices.", + "description": "Returns the information about the capabilities of fields among multiple indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html" + }, + "operationId": "field-caps-2", + "parameters": [ + { + "$ref": "#/components/parameters/field_caps#index" + }, + { + "$ref": "#/components/parameters/field_caps#allow_no_indices" + }, + { + "$ref": "#/components/parameters/field_caps#expand_wildcards" + }, + { + "$ref": "#/components/parameters/field_caps#fields" + }, + { + "$ref": "#/components/parameters/field_caps#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/field_caps#include_unmapped" + }, + { + "$ref": "#/components/parameters/field_caps#filters" + }, + { + "$ref": "#/components/parameters/field_caps#types" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/field_caps" + }, + "responses": { + "200": { + "$ref": "#/components/responses/field_caps#200" + } + } + }, + "post": { + "tags": [ + "field_caps" + ], + "summary": "Returns the information about the capabilities of fields among multiple indices.", + "description": "Returns the information about the capabilities of fields among multiple indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html" + }, + "operationId": "field-caps-3", + "parameters": [ + { + "$ref": "#/components/parameters/field_caps#index" + }, + { + "$ref": "#/components/parameters/field_caps#allow_no_indices" + }, + { + "$ref": "#/components/parameters/field_caps#expand_wildcards" + }, + { + "$ref": "#/components/parameters/field_caps#fields" + }, + { + "$ref": "#/components/parameters/field_caps#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/field_caps#include_unmapped" + }, + { + "$ref": "#/components/parameters/field_caps#filters" + }, + { + "$ref": "#/components/parameters/field_caps#types" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/field_caps" + }, + "responses": { + "200": { + "$ref": "#/components/responses/field_caps#200" + } + } + } + }, + "/{index}/_graph/explore": { + "get": { + "tags": [ + "graph.explore" + ], + "summary": "Explore extracted and summarized information about the documents and terms in an index.", + "description": "Explore extracted and summarized information about the documents and terms in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/graph-explore-api.html" + }, + "operationId": "graph-explore", + "parameters": [ + { + "$ref": "#/components/parameters/graph.explore#index" + }, + { + "$ref": "#/components/parameters/graph.explore#routing" + }, + { + "$ref": "#/components/parameters/graph.explore#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/graph.explore" + }, + "responses": { + "200": { + "$ref": "#/components/responses/graph.explore#200" + } + } + }, + "post": { + "tags": [ + "graph.explore" + ], + "summary": "Explore extracted and summarized information about the documents and terms in an index.", + "description": "Explore extracted and summarized information about the documents and terms in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/graph-explore-api.html" + }, + "operationId": "graph-explore-1", + "parameters": [ + { + "$ref": "#/components/parameters/graph.explore#index" + }, + { + "$ref": "#/components/parameters/graph.explore#routing" + }, + { + "$ref": "#/components/parameters/graph.explore#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/graph.explore" + }, + "responses": { + "200": { + "$ref": "#/components/responses/graph.explore#200" + } + } + } + }, + "/{index}/_doc": { + "post": { + "tags": [ + "index" + ], + "summary": "Creates or updates a document in an index.", + "description": "Creates or updates a document in an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html" + }, + "operationId": "index-2", + "parameters": [ + { + "$ref": "#/components/parameters/index#index" + }, + { + "$ref": "#/components/parameters/index#if_primary_term" + }, + { + "$ref": "#/components/parameters/index#if_seq_no" + }, + { + "$ref": "#/components/parameters/index#op_type" + }, + { + "$ref": "#/components/parameters/index#pipeline" + }, + { + "$ref": "#/components/parameters/index#refresh" + }, + { + "$ref": "#/components/parameters/index#routing" + }, + { + "$ref": "#/components/parameters/index#timeout" + }, + { + "$ref": "#/components/parameters/index#version" + }, + { + "$ref": "#/components/parameters/index#version_type" + }, + { + "$ref": "#/components/parameters/index#wait_for_active_shards" + }, + { + "$ref": "#/components/parameters/index#require_alias" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/index" + }, + "responses": { + "200": { + "$ref": "#/components/responses/index#200" + } + } + } + }, + "/{index}/_block/{block}": { + "put": { + "tags": [ + "indices.add_block" + ], + "summary": "Adds a block to an index.", + "description": "Adds a block to an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/index-modules-blocks.html" + }, + "operationId": "indices-add-block", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "A comma separated list of indices to add a block to", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "block", + "description": "The block to add (one of read, write, read_only or metadata)", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/indices.add_block:IndicesBlockOptions" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "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)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Whether to expand wildcard expression to concrete indices that are open, closed or both.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "Whether specified concrete indices should be ignored when unavailable (missing or closed)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Specify timeout for connection to master", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Explicit operation timeout", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "acknowledged": { + "type": "boolean" + }, + "shards_acknowledged": { + "type": "boolean" + }, + "indices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.add_block:IndicesBlockStatus" + } + } + }, + "required": [ + "acknowledged", + "shards_acknowledged", + "indices" + ] + } + } + } + } + } + } + }, + "/_analyze": { + "get": { + "tags": [ + "indices.analyze" + ], + "summary": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "description": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html" + }, + "operationId": "indices-analyze", + "requestBody": { + "$ref": "#/components/requestBodies/indices.analyze" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.analyze#200" + } + } + }, + "post": { + "tags": [ + "indices.analyze" + ], + "summary": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "description": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html" + }, + "operationId": "indices-analyze-1", + "requestBody": { + "$ref": "#/components/requestBodies/indices.analyze" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.analyze#200" + } + } + } + }, + "/{index}/_analyze": { + "get": { + "tags": [ + "indices.analyze" + ], + "summary": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "description": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html" + }, + "operationId": "indices-analyze-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.analyze#index" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.analyze" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.analyze#200" + } + } + }, + "post": { + "tags": [ + "indices.analyze" + ], + "summary": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "description": "Performs the analysis process on a text and return the tokens breakdown of the text.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html" + }, + "operationId": "indices-analyze-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.analyze#index" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.analyze" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.analyze#200" + } + } + } + }, + "/{index}": { + "get": { + "tags": [ + "indices.get" + ], + "summary": "Returns information about one or more indices.", + "description": "Returns information about one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-index.html" + }, + "operationId": "indices-get", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and index aliases used to limit the request.\nWildcard expressions (*) are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If false, the request returns an error if any wildcard expression, index alias, or _all value targets only\nmissing or closed indices. This behavior applies even if the request targets other open indices. For example,\na request targeting foo*,bar* returns an error if an index starts with foo but no index starts with bar.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard expressions can match. If the request can target data streams, this argument\ndetermines whether wildcard expressions match hidden data streams. Supports comma-separated values,\nsuch as open,hidden.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "flat_settings", + "description": "If true, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If false, requests that target a missing index return an error.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "include_defaults", + "description": "If true, return all default settings in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "local", + "description": "If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "features", + "description": "Return only information on specified index features", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/indices.get:Features" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:IndexState" + } + } + } + } + } + } + }, + "put": { + "tags": [ + "indices.create" + ], + "summary": "Creates an index with optional settings and mappings.", + "description": "Creates an index with optional settings and mappings.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html" + }, + "operationId": "indices-create", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Name of the index you wish to create.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation. \nSet to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aliases": { + "description": "Aliases for the index.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "shards_acknowledged": { + "type": "boolean" + }, + "acknowledged": { + "type": "boolean" + } + }, + "required": [ + "index", + "shards_acknowledged", + "acknowledged" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "indices.delete" + ], + "summary": "Deletes an index.", + "description": "Deletes an index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-delete-index.html" + }, + "operationId": "indices-delete", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of indices to delete.\nYou cannot specify index aliases.\nBy default, this parameter does not support wildcards (`*`) or `_all`.\nTo use wildcards or `_all`, set the `action.destructive_requires_name` cluster setting to `false`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:IndicesResponseBase" + } + } + } + } + } + }, + "head": { + "tags": [ + "indices.exists" + ], + "summary": "Returns information about whether a particular index exists.", + "description": "Returns information about whether a particular index exists.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-exists.html" + }, + "operationId": "indices-exists", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases. Supports wildcards (`*`).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "flat_settings", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "include_defaults", + "description": "If `true`, return all default settings in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/_data_stream/{name}": { + "get": { + "tags": [ + "indices.get_data_stream" + ], + "summary": "Returns data streams.", + "description": "Returns data streams.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-get-data-stream-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_data_stream#name" + }, + { + "$ref": "#/components/parameters/indices.get_data_stream#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_data_stream#include_defaults" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_data_stream#200" + } + } + }, + "put": { + "tags": [ + "indices.create_data_stream" + ], + "summary": "Creates a data stream", + "description": "Creates a data stream", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-create-data-stream", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Name of the data stream, which must meet the following criteria:\nLowercase only;\nCannot include `\\`, `/`, `*`, `?`, `\"`, `<`, `>`, `|`, `,`, `#`, `:`, or a space character;\nCannot start with `-`, `_`, `+`, or `.ds-`;\nCannot be `.` or `..`;\nCannot be longer than 255 bytes. Multi-byte characters count towards this limit faster.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "indices.delete_data_stream" + ], + "summary": "Deletes a data stream.", + "description": "Deletes a data stream.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-delete-data-stream", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of data streams to delete. Wildcard (`*`) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamNames" + }, + "style": "simple" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of data stream that wildcard patterns can match. Supports comma-separated values,such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_data_stream/_stats": { + "get": { + "tags": [ + "indices.data_streams_stats" + ], + "summary": "Provides statistics on operations happening in a data stream.", + "description": "Provides statistics on operations happening in a data stream.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-data-streams-stats", + "parameters": [ + { + "$ref": "#/components/parameters/indices.data_streams_stats#expand_wildcards" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.data_streams_stats#200" + } + } + } + }, + "/_data_stream/{name}/_stats": { + "get": { + "tags": [ + "indices.data_streams_stats" + ], + "summary": "Provides statistics on operations happening in a data stream.", + "description": "Provides statistics on operations happening in a data stream.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-data-streams-stats-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.data_streams_stats#name" + }, + { + "$ref": "#/components/parameters/indices.data_streams_stats#expand_wildcards" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.data_streams_stats#200" + } + } + } + }, + "/{index}/_alias/{name}": { + "get": { + "tags": [ + "indices.get_alias" + ], + "summary": "Returns an alias.", + "description": "Returns an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-get-alias-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_alias#index" + }, + { + "$ref": "#/components/parameters/indices.get_alias#name" + }, + { + "$ref": "#/components/parameters/indices.get_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_alias#200" + } + } + }, + "put": { + "tags": [ + "indices.put_alias" + ], + "summary": "Creates or updates an alias.", + "description": "Creates or updates an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-put-alias", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_alias#index" + }, + { + "$ref": "#/components/parameters/indices.put_alias#name" + }, + { + "$ref": "#/components/parameters/indices.put_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_alias#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_alias" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_alias#200" + } + } + }, + "post": { + "tags": [ + "indices.put_alias" + ], + "summary": "Creates or updates an alias.", + "description": "Creates or updates an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-put-alias-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_alias#index" + }, + { + "$ref": "#/components/parameters/indices.put_alias#name" + }, + { + "$ref": "#/components/parameters/indices.put_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_alias#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_alias" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_alias#200" + } + } + }, + "delete": { + "tags": [ + "indices.delete_alias" + ], + "summary": "Deletes an alias.", + "description": "Deletes an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-delete-alias", + "parameters": [ + { + "$ref": "#/components/parameters/indices.delete_alias#index" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#name" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.delete_alias#200" + } + } + }, + "head": { + "tags": [ + "indices.exists_alias" + ], + "summary": "Returns information about whether a particular alias exists.", + "description": "Returns information about whether a particular alias exists.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-exists-alias-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.exists_alias#index" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#name" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.exists_alias#200" + } + } + } + }, + "/{index}/_aliases/{name}": { + "put": { + "tags": [ + "indices.put_alias" + ], + "summary": "Creates or updates an alias.", + "description": "Creates or updates an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-put-alias-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_alias#index" + }, + { + "$ref": "#/components/parameters/indices.put_alias#name" + }, + { + "$ref": "#/components/parameters/indices.put_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_alias#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_alias" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_alias#200" + } + } + }, + "post": { + "tags": [ + "indices.put_alias" + ], + "summary": "Creates or updates an alias.", + "description": "Creates or updates an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-put-alias-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_alias#index" + }, + { + "$ref": "#/components/parameters/indices.put_alias#name" + }, + { + "$ref": "#/components/parameters/indices.put_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_alias#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_alias" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_alias#200" + } + } + }, + "delete": { + "tags": [ + "indices.delete_alias" + ], + "summary": "Deletes an alias.", + "description": "Deletes an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-delete-alias-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.delete_alias#index" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#name" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.delete_alias#timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.delete_alias#200" + } + } + } + }, + "/_data_stream/{name}/_lifecycle": { + "get": { + "tags": [ + "indices.get_data_lifecycle" + ], + "summary": "Returns the data stream lifecycle of the selected data streams.", + "description": "Returns the data stream lifecycle of the selected data streams.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-get-lifecycle.html" + }, + "operationId": "indices-get-data-lifecycle", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of data streams to limit the request.\nSupports wildcards (`*`).\nTo target all data streams, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamNames" + }, + "style": "simple" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of data stream that wildcard patterns can match.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "include_defaults", + "description": "If `true`, return all default settings in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data_streams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.get_data_lifecycle:DataStreamWithLifecycle" + } + } + }, + "required": [ + "data_streams" + ] + } + } + } + } + } + }, + "put": { + "tags": [ + "indices.put_data_lifecycle" + ], + "summary": "Updates the data stream lifecycle of the selected data streams.", + "description": "Updates the data stream lifecycle of the selected data streams.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-put-lifecycle.html" + }, + "operationId": "indices-put-data-lifecycle", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of data streams used to limit the request.\nSupports wildcards (`*`).\nTo target all data streams use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamNames" + }, + "style": "simple" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of data stream that wildcard patterns can match.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `hidden`, `open`, `closed`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is\nreceived before the timeout expires, the request fails and returns an\nerror.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data_retention": { + "$ref": "#/components/schemas/_types:Duration" + }, + "downsampling": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleDownsampling" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "indices.delete_data_lifecycle" + ], + "summary": "Deletes the data stream lifecycle of the selected data streams.", + "description": "Deletes the data stream lifecycle of the selected data streams.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams-delete-lifecycle.html" + }, + "operationId": "indices-delete-data-lifecycle", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "A comma-separated list of data streams of which the data stream lifecycle will be deleted; use `*` to get all data streams", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamNames" + }, + "style": "simple" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Whether wildcard expressions should get expanded to open or closed indices (default: open)", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Specify timeout for connection to master", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Explicit timestamp for the document", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_index_template/{name}": { + "get": { + "tags": [ + "indices.get_index_template" + ], + "summary": "Returns an index template.", + "description": "Returns an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-get-index-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_index_template#name" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#local" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#include_defaults" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_index_template#200" + } + } + }, + "put": { + "tags": [ + "indices.put_index_template" + ], + "summary": "Creates or updates an index template.", + "description": "Creates or updates an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-put-index-template", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_index_template#name" + }, + { + "$ref": "#/components/parameters/indices.put_index_template#create" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_index_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_index_template#200" + } + } + }, + "post": { + "tags": [ + "indices.put_index_template" + ], + "summary": "Creates or updates an index template.", + "description": "Creates or updates an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-put-index-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_index_template#name" + }, + { + "$ref": "#/components/parameters/indices.put_index_template#create" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_index_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_index_template#200" + } + } + }, + "delete": { + "tags": [ + "indices.delete_index_template" + ], + "summary": "Deletes an index template.", + "description": "Deletes an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-delete-index-template", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of index template names used to limit the request. Wildcard (*) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "head": { + "tags": [ + "indices.exists_index_template" + ], + "summary": "Returns information about whether a particular index template exists.", + "description": "Returns information about whether a particular index template exists.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-exists-index-template", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated list of index template names used to limit the request. Wildcard (*) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/_alias/{name}": { + "get": { + "tags": [ + "indices.get_alias" + ], + "summary": "Returns an alias.", + "description": "Returns an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-get-alias-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_alias#name" + }, + { + "$ref": "#/components/parameters/indices.get_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_alias#200" + } + } + }, + "head": { + "tags": [ + "indices.exists_alias" + ], + "summary": "Returns information about whether a particular alias exists.", + "description": "Returns information about whether a particular alias exists.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-exists-alias", + "parameters": [ + { + "$ref": "#/components/parameters/indices.exists_alias#name" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.exists_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.exists_alias#200" + } + } + } + }, + "/{index}/_lifecycle/explain": { + "get": { + "tags": [ + "indices.explain_data_lifecycle" + ], + "summary": "Retrieves information about the index's current data stream lifecycle, such as any potential encountered error, time since creation etc.", + "description": "Retrieves information about the index's current data stream lifecycle, such as any potential encountered error, time since creation etc.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams-explain-lifecycle.html" + }, + "operationId": "indices-explain-data-lifecycle", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "The name of the index to explain", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "include_defaults", + "description": "indicates if the API should return the default values the system uses for the index's lifecycle", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Specify timeout for connection to master", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "indices": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices.explain_data_lifecycle:DataStreamLifecycleExplain" + } + } + }, + "required": [ + "indices" + ] + } + } + } + } + } + } + }, + "/_alias": { + "get": { + "tags": [ + "indices.get_alias" + ], + "summary": "Returns an alias.", + "description": "Returns an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-get-alias", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_alias#200" + } + } + } + }, + "/{index}/_alias": { + "get": { + "tags": [ + "indices.get_alias" + ], + "summary": "Returns an alias.", + "description": "Returns an alias.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-get-alias-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_alias#index" + }, + { + "$ref": "#/components/parameters/indices.get_alias#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_alias#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_alias#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_alias#local" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_alias#200" + } + } + } + }, + "/_data_stream": { + "get": { + "tags": [ + "indices.get_data_stream" + ], + "summary": "Returns data streams.", + "description": "Returns data streams.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-get-data-stream", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_data_stream#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_data_stream#include_defaults" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_data_stream#200" + } + } + } + }, + "/_index_template": { + "get": { + "tags": [ + "indices.get_index_template" + ], + "summary": "Returns an index template.", + "description": "Returns an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-get-index-template", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_index_template#local" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.get_index_template#include_defaults" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_index_template#200" + } + } + } + }, + "/_mapping": { + "get": { + "tags": [ + "indices.get_mapping" + ], + "summary": "Returns mappings for one or more indices.", + "description": "Returns mappings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html" + }, + "operationId": "indices-get-mapping", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_mapping#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#local" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_mapping#200" + } + } + } + }, + "/{index}/_mapping": { + "get": { + "tags": [ + "indices.get_mapping" + ], + "summary": "Returns mappings for one or more indices.", + "description": "Returns mappings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-mapping.html" + }, + "operationId": "indices-get-mapping-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_mapping#index" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#local" + }, + { + "$ref": "#/components/parameters/indices.get_mapping#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_mapping#200" + } + } + }, + "put": { + "tags": [ + "indices.put_mapping" + ], + "summary": "Updates the index mappings.", + "description": "Updates the index mappings.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html" + }, + "operationId": "indices-put-mapping", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_mapping#index" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#timeout" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#write_index_only" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_mapping" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_mapping#200" + } + } + }, + "post": { + "tags": [ + "indices.put_mapping" + ], + "summary": "Updates the index mappings.", + "description": "Updates the index mappings.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-put-mapping.html" + }, + "operationId": "indices-put-mapping-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_mapping#index" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#timeout" + }, + { + "$ref": "#/components/parameters/indices.put_mapping#write_index_only" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_mapping" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_mapping#200" + } + } + } + }, + "/_settings": { + "get": { + "tags": [ + "indices.get_settings" + ], + "summary": "Returns settings for one or more indices.", + "description": "Returns settings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html" + }, + "operationId": "indices-get-settings", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_settings#include_defaults" + }, + { + "$ref": "#/components/parameters/indices.get_settings#local" + }, + { + "$ref": "#/components/parameters/indices.get_settings#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_settings#200" + } + } + }, + "put": { + "tags": [ + "indices.put_settings" + ], + "summary": "Updates the index settings.", + "description": "Updates the index settings.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html" + }, + "operationId": "indices-put-settings", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.put_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.put_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.put_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.put_settings#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_settings#preserve_existing" + }, + { + "$ref": "#/components/parameters/indices.put_settings#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_settings" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_settings#200" + } + } + } + }, + "/{index}/_settings": { + "get": { + "tags": [ + "indices.get_settings" + ], + "summary": "Returns settings for one or more indices.", + "description": "Returns settings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html" + }, + "operationId": "indices-get-settings-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_settings#index" + }, + { + "$ref": "#/components/parameters/indices.get_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_settings#include_defaults" + }, + { + "$ref": "#/components/parameters/indices.get_settings#local" + }, + { + "$ref": "#/components/parameters/indices.get_settings#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_settings#200" + } + } + }, + "put": { + "tags": [ + "indices.put_settings" + ], + "summary": "Updates the index settings.", + "description": "Updates the index settings.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-update-settings.html" + }, + "operationId": "indices-put-settings-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_settings#index" + }, + { + "$ref": "#/components/parameters/indices.put_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.put_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.put_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.put_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.put_settings#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_settings#preserve_existing" + }, + { + "$ref": "#/components/parameters/indices.put_settings#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_settings" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_settings#200" + } + } + } + }, + "/{index}/_settings/{name}": { + "get": { + "tags": [ + "indices.get_settings" + ], + "summary": "Returns settings for one or more indices.", + "description": "Returns settings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html" + }, + "operationId": "indices-get-settings-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_settings#index" + }, + { + "$ref": "#/components/parameters/indices.get_settings#name" + }, + { + "$ref": "#/components/parameters/indices.get_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_settings#include_defaults" + }, + { + "$ref": "#/components/parameters/indices.get_settings#local" + }, + { + "$ref": "#/components/parameters/indices.get_settings#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_settings#200" + } + } + } + }, + "/_settings/{name}": { + "get": { + "tags": [ + "indices.get_settings" + ], + "summary": "Returns settings for one or more indices.", + "description": "Returns settings for one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-settings.html" + }, + "operationId": "indices-get-settings-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.get_settings#name" + }, + { + "$ref": "#/components/parameters/indices.get_settings#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.get_settings#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.get_settings#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.get_settings#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.get_settings#include_defaults" + }, + { + "$ref": "#/components/parameters/indices.get_settings#local" + }, + { + "$ref": "#/components/parameters/indices.get_settings#master_timeout" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.get_settings#200" + } + } + } + }, + "/_data_stream/_migrate/{name}": { + "post": { + "tags": [ + "indices.migrate_to_data_stream" + ], + "summary": "Migrates an alias to a data stream", + "description": "Migrates an alias to a data stream", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-migrate-to-data-stream", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Name of the index alias to convert to a data stream.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_data_stream/_modify": { + "post": { + "tags": [ + "indices.modify_data_stream" + ], + "summary": "Modifies a data stream", + "description": "Modifies a data stream", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html" + }, + "operationId": "indices-modify-data-stream", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "actions": { + "description": "Actions to perform.", + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.modify_data_stream:Action" + } + } + }, + "required": [ + "actions" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_template/{name}": { + "put": { + "tags": [ + "indices.put_template" + ], + "summary": "Creates or updates an index template.", + "description": "Creates or updates an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-put-template", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_template#name" + }, + { + "$ref": "#/components/parameters/indices.put_template#create" + }, + { + "$ref": "#/components/parameters/indices.put_template#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.put_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_template#timeout" + }, + { + "$ref": "#/components/parameters/indices.put_template#order" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_template#200" + } + } + }, + "post": { + "tags": [ + "indices.put_template" + ], + "summary": "Creates or updates an index template.", + "description": "Creates or updates an index template.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-put-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.put_template#name" + }, + { + "$ref": "#/components/parameters/indices.put_template#create" + }, + { + "$ref": "#/components/parameters/indices.put_template#flat_settings" + }, + { + "$ref": "#/components/parameters/indices.put_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.put_template#timeout" + }, + { + "$ref": "#/components/parameters/indices.put_template#order" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.put_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.put_template#200" + } + } + } + }, + "/_refresh": { + "get": { + "tags": [ + "indices.refresh" + ], + "summary": "Performs the refresh operation in one or more indices.", + "description": "Performs the refresh operation in one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html" + }, + "operationId": "indices-refresh-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.refresh#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.refresh#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.refresh#ignore_unavailable" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.refresh#200" + } + } + }, + "post": { + "tags": [ + "indices.refresh" + ], + "summary": "Performs the refresh operation in one or more indices.", + "description": "Performs the refresh operation in one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html" + }, + "operationId": "indices-refresh", + "parameters": [ + { + "$ref": "#/components/parameters/indices.refresh#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.refresh#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.refresh#ignore_unavailable" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.refresh#200" + } + } + } + }, + "/{index}/_refresh": { + "get": { + "tags": [ + "indices.refresh" + ], + "summary": "Performs the refresh operation in one or more indices.", + "description": "Performs the refresh operation in one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html" + }, + "operationId": "indices-refresh-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.refresh#index" + }, + { + "$ref": "#/components/parameters/indices.refresh#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.refresh#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.refresh#ignore_unavailable" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.refresh#200" + } + } + }, + "post": { + "tags": [ + "indices.refresh" + ], + "summary": "Performs the refresh operation in one or more indices.", + "description": "Performs the refresh operation in one or more indices.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html" + }, + "operationId": "indices-refresh-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.refresh#index" + }, + { + "$ref": "#/components/parameters/indices.refresh#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.refresh#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.refresh#ignore_unavailable" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/indices.refresh#200" + } + } + } + }, + "/_resolve/index/{name}": { + "get": { + "tags": [ + "indices.resolve_index" + ], + "summary": "Returns information about any matching indices, aliases, and data streams", + "description": "Returns information about any matching indices, aliases, and data streams", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-resolve-index-api.html" + }, + "operationId": "indices-resolve-index", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Comma-separated name(s) or index pattern(s) of the indices, aliases, and data streams to resolve.\nResources on remote clusters can be specified using the ``:`` syntax.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "indices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.resolve_index:ResolveIndexItem" + } + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.resolve_index:ResolveIndexAliasItem" + } + }, + "data_streams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.resolve_index:ResolveIndexDataStreamsItem" + } + } + }, + "required": [ + "indices", + "aliases", + "data_streams" + ] + } + } + } + } + } + } + }, + "/{alias}/_rollover": { + "post": { + "tags": [ + "indices.rollover" + ], + "summary": "Updates an alias to point to a new index when the existing index\nis considered to be too large or too old.", + "description": "Updates an alias to point to a new index when the existing index\nis considered to be too large or too old.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html" + }, + "operationId": "indices-rollover", + "parameters": [ + { + "$ref": "#/components/parameters/indices.rollover#alias" + }, + { + "$ref": "#/components/parameters/indices.rollover#dry_run" + }, + { + "$ref": "#/components/parameters/indices.rollover#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.rollover#timeout" + }, + { + "$ref": "#/components/parameters/indices.rollover#wait_for_active_shards" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.rollover" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.rollover#200" + } + } + } + }, + "/{alias}/_rollover/{new_index}": { + "post": { + "tags": [ + "indices.rollover" + ], + "summary": "Updates an alias to point to a new index when the existing index\nis considered to be too large or too old.", + "description": "Updates an alias to point to a new index when the existing index\nis considered to be too large or too old.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html" + }, + "operationId": "indices-rollover-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.rollover#alias" + }, + { + "$ref": "#/components/parameters/indices.rollover#new_index" + }, + { + "$ref": "#/components/parameters/indices.rollover#dry_run" + }, + { + "$ref": "#/components/parameters/indices.rollover#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.rollover#timeout" + }, + { + "$ref": "#/components/parameters/indices.rollover#wait_for_active_shards" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.rollover" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.rollover#200" + } + } + } + }, + "/_index_template/_simulate_index/{name}": { + "post": { + "tags": [ + "indices.simulate_index_template" + ], + "summary": "Simulate matching the given index name against the index templates in the system", + "description": "Simulate matching the given index name against the index templates in the system", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-simulate-index-template", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "Index or template name to simulate", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "create", + "description": "If `true`, the template passed in the body is only used if no existing\ntemplates match the same index patterns. If `false`, the simulation uses\nthe template with the highest priority. Note that the template is not\npermanently added or updated in either case; it is only used for the\nsimulation.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received\nbefore the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "include_defaults", + "description": "If true, returns all relevant default configurations for the index template.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_auto_create": { + "description": "This setting overrides the value of the `action.auto_create_index` cluster setting.\nIf set to `true` in a template, then indices can be automatically created using that template even if auto-creation of indices is disabled via `actions.auto_create_index`.\nIf set to `false`, then indices or data streams matching the template must always be explicitly created, and may never be automatically created.", + "type": "boolean" + }, + "index_patterns": { + "$ref": "#/components/schemas/_types:Indices" + }, + "composed_of": { + "description": "An ordered list of component template names.\nComponent templates are merged in the order specified, meaning that the last component template specified has the highest precedence.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "template": { + "$ref": "#/components/schemas/indices.put_index_template:IndexTemplateMapping" + }, + "data_stream": { + "$ref": "#/components/schemas/indices._types:DataStreamVisibility" + }, + "priority": { + "description": "Priority to determine index template precedence when a new data stream or index is created.\nThe index template with the highest priority is chosen.\nIf no priority is specified the template is treated as though it is of priority 0 (lowest priority).\nThis number is not automatically generated by Elasticsearch.", + "type": "number" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/_index_template/_simulate": { + "post": { + "tags": [ + "indices.simulate_template" + ], + "summary": "Simulate resolving the given template name or body", + "description": "Simulate resolving the given template name or body", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-simulate-template", + "parameters": [ + { + "$ref": "#/components/parameters/indices.simulate_template#create" + }, + { + "$ref": "#/components/parameters/indices.simulate_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.simulate_template#include_defaults" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.simulate_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.simulate_template#200" + } + } + } + }, + "/_index_template/_simulate/{name}": { + "post": { + "tags": [ + "indices.simulate_template" + ], + "summary": "Simulate resolving the given template name or body", + "description": "Simulate resolving the given template name or body", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-templates.html" + }, + "operationId": "indices-simulate-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.simulate_template#name" + }, + { + "$ref": "#/components/parameters/indices.simulate_template#create" + }, + { + "$ref": "#/components/parameters/indices.simulate_template#master_timeout" + }, + { + "$ref": "#/components/parameters/indices.simulate_template#include_defaults" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.simulate_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.simulate_template#200" + } + } + } + }, + "/_aliases": { + "post": { + "tags": [ + "indices.update_aliases" + ], + "summary": "Updates index aliases.", + "description": "Updates index aliases.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-aliases.html" + }, + "operationId": "indices-update-aliases", + "parameters": [ + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "actions": { + "description": "Actions to perform.", + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.update_aliases:Action" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_validate/query": { + "get": { + "tags": [ + "indices.validate_query" + ], + "summary": "Allows a user to validate a potentially expensive query without executing it.", + "description": "Allows a user to validate a potentially expensive query without executing it.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html" + }, + "operationId": "indices-validate-query", + "parameters": [ + { + "$ref": "#/components/parameters/indices.validate_query#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.validate_query#all_shards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyzer" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/indices.validate_query#default_operator" + }, + { + "$ref": "#/components/parameters/indices.validate_query#df" + }, + { + "$ref": "#/components/parameters/indices.validate_query#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#explain" + }, + { + "$ref": "#/components/parameters/indices.validate_query#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.validate_query#lenient" + }, + { + "$ref": "#/components/parameters/indices.validate_query#rewrite" + }, + { + "$ref": "#/components/parameters/indices.validate_query#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.validate_query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.validate_query#200" + } + } + }, + "post": { + "tags": [ + "indices.validate_query" + ], + "summary": "Allows a user to validate a potentially expensive query without executing it.", + "description": "Allows a user to validate a potentially expensive query without executing it.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html" + }, + "operationId": "indices-validate-query-1", + "parameters": [ + { + "$ref": "#/components/parameters/indices.validate_query#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.validate_query#all_shards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyzer" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/indices.validate_query#default_operator" + }, + { + "$ref": "#/components/parameters/indices.validate_query#df" + }, + { + "$ref": "#/components/parameters/indices.validate_query#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#explain" + }, + { + "$ref": "#/components/parameters/indices.validate_query#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.validate_query#lenient" + }, + { + "$ref": "#/components/parameters/indices.validate_query#rewrite" + }, + { + "$ref": "#/components/parameters/indices.validate_query#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.validate_query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.validate_query#200" + } + } + } + }, + "/{index}/_validate/query": { + "get": { + "tags": [ + "indices.validate_query" + ], + "summary": "Allows a user to validate a potentially expensive query without executing it.", + "description": "Allows a user to validate a potentially expensive query without executing it.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html" + }, + "operationId": "indices-validate-query-2", + "parameters": [ + { + "$ref": "#/components/parameters/indices.validate_query#index" + }, + { + "$ref": "#/components/parameters/indices.validate_query#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.validate_query#all_shards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyzer" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/indices.validate_query#default_operator" + }, + { + "$ref": "#/components/parameters/indices.validate_query#df" + }, + { + "$ref": "#/components/parameters/indices.validate_query#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#explain" + }, + { + "$ref": "#/components/parameters/indices.validate_query#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.validate_query#lenient" + }, + { + "$ref": "#/components/parameters/indices.validate_query#rewrite" + }, + { + "$ref": "#/components/parameters/indices.validate_query#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.validate_query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.validate_query#200" + } + } + }, + "post": { + "tags": [ + "indices.validate_query" + ], + "summary": "Allows a user to validate a potentially expensive query without executing it.", + "description": "Allows a user to validate a potentially expensive query without executing it.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-validate.html" + }, + "operationId": "indices-validate-query-3", + "parameters": [ + { + "$ref": "#/components/parameters/indices.validate_query#index" + }, + { + "$ref": "#/components/parameters/indices.validate_query#allow_no_indices" + }, + { + "$ref": "#/components/parameters/indices.validate_query#all_shards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyzer" + }, + { + "$ref": "#/components/parameters/indices.validate_query#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/indices.validate_query#default_operator" + }, + { + "$ref": "#/components/parameters/indices.validate_query#df" + }, + { + "$ref": "#/components/parameters/indices.validate_query#expand_wildcards" + }, + { + "$ref": "#/components/parameters/indices.validate_query#explain" + }, + { + "$ref": "#/components/parameters/indices.validate_query#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/indices.validate_query#lenient" + }, + { + "$ref": "#/components/parameters/indices.validate_query#rewrite" + }, + { + "$ref": "#/components/parameters/indices.validate_query#q" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/indices.validate_query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/indices.validate_query#200" + } + } + } + }, + "/": { + "get": { + "tags": [ + "info" + ], + "summary": "Returns basic information about the cluster.", + "description": "Returns basic information about the cluster.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" + }, + "operationId": "info", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cluster_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "cluster_uuid": { + "$ref": "#/components/schemas/_types:Uuid" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "tagline": { + "type": "string" + }, + "version": { + "$ref": "#/components/schemas/_types:ElasticsearchVersionInfo" + } + }, + "required": [ + "cluster_name", + "cluster_uuid", + "name", + "tagline", + "version" + ] + } + } + } + } + } + }, + "head": { + "tags": [ + "ping" + ], + "summary": "Returns whether the cluster is running.", + "description": "Returns whether the cluster is running.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" + }, + "operationId": "ping", + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/_ingest/pipeline/{id}": { + "get": { + "tags": [ + "ingest.get_pipeline" + ], + "summary": "Returns a pipeline.", + "description": "Returns a pipeline.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-pipeline-api.html" + }, + "operationId": "ingest-get-pipeline-1", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.get_pipeline#id" + }, + { + "$ref": "#/components/parameters/ingest.get_pipeline#master_timeout" + }, + { + "$ref": "#/components/parameters/ingest.get_pipeline#summary" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ingest.get_pipeline#200" + } + } + }, + "put": { + "tags": [ + "ingest.put_pipeline" + ], + "summary": "Creates or updates a pipeline.", + "description": "Creates or updates a pipeline.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html" + }, + "operationId": "ingest-put-pipeline", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "ID of the ingest pipeline to create or update.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "if_version", + "description": "Required version for optimistic concurrency control for pipeline updates", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "description": { + "description": "Description of the ingest pipeline.", + "type": "string" + }, + "on_failure": { + "description": "Processors to run immediately after a processor failure. Each processor supports a processor-level `on_failure` value. If a processor without an `on_failure` value fails, Elasticsearch uses this pipeline-level parameter as a fallback. The processors in this parameter run sequentially in the order specified. Elasticsearch will not attempt to run the pipeline's remaining processors.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "processors": { + "description": "Processors used to perform transformations on documents before indexing. Processors run sequentially in the order specified.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "ingest.delete_pipeline" + ], + "summary": "Deletes a pipeline.", + "description": "Deletes a pipeline.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-pipeline-api.html" + }, + "operationId": "ingest-delete-pipeline", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Pipeline ID or wildcard expression of pipeline IDs used to limit the request.\nTo delete all ingest pipelines in a cluster, use a value of `*`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ingest/pipeline": { + "get": { + "tags": [ + "ingest.get_pipeline" + ], + "summary": "Returns a pipeline.", + "description": "Returns a pipeline.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-pipeline-api.html" + }, + "operationId": "ingest-get-pipeline", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.get_pipeline#master_timeout" + }, + { + "$ref": "#/components/parameters/ingest.get_pipeline#summary" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ingest.get_pipeline#200" + } + } + } + }, + "/_ingest/processor/grok": { + "get": { + "tags": [ + "ingest.processor_grok" + ], + "summary": "Returns a list of the built-in patterns.", + "description": "Returns a list of the built-in patterns.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html" + }, + "operationId": "ingest-processor-grok", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "patterns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "patterns" + ] + } + } + } + } + } + } + }, + "/_ingest/pipeline/_simulate": { + "get": { + "tags": [ + "ingest.simulate" + ], + "summary": "Allows to simulate a pipeline with example documents.", + "description": "Allows to simulate a pipeline with example documents.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html" + }, + "operationId": "ingest-simulate", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.simulate#verbose" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ingest.simulate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ingest.simulate#200" + } + } + }, + "post": { + "tags": [ + "ingest.simulate" + ], + "summary": "Allows to simulate a pipeline with example documents.", + "description": "Allows to simulate a pipeline with example documents.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html" + }, + "operationId": "ingest-simulate-1", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.simulate#verbose" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ingest.simulate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ingest.simulate#200" + } + } + } + }, + "/_ingest/pipeline/{id}/_simulate": { + "get": { + "tags": [ + "ingest.simulate" + ], + "summary": "Allows to simulate a pipeline with example documents.", + "description": "Allows to simulate a pipeline with example documents.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html" + }, + "operationId": "ingest-simulate-2", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.simulate#id" + }, + { + "$ref": "#/components/parameters/ingest.simulate#verbose" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ingest.simulate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ingest.simulate#200" + } + } + }, + "post": { + "tags": [ + "ingest.simulate" + ], + "summary": "Allows to simulate a pipeline with example documents.", + "description": "Allows to simulate a pipeline with example documents.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html" + }, + "operationId": "ingest-simulate-3", + "parameters": [ + { + "$ref": "#/components/parameters/ingest.simulate#id" + }, + { + "$ref": "#/components/parameters/ingest.simulate#verbose" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ingest.simulate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ingest.simulate#200" + } + } + } + }, + "/_license": { + "get": { + "tags": [ + "license.get" + ], + "summary": "Retrieves licensing information for the cluster", + "description": "Retrieves licensing information for the cluster", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-license.html" + }, + "operationId": "license-get", + "parameters": [ + { + "in": "query", + "name": "accept_enterprise", + "description": "If `true`, this parameter returns enterprise for Enterprise license types. If `false`, this parameter returns platinum for both platinum and enterprise license types. This behavior is maintained for backwards compatibility.\nThis parameter is deprecated and will always be set to true in 8.x.", + "deprecated": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "local", + "description": "Specifies whether to retrieve local information. The default value is `false`, which means the information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "license": { + "$ref": "#/components/schemas/license.get:LicenseInformation" + } + }, + "required": [ + "license" + ] + } + } + } + } + } + } + }, + "/_logstash/pipeline/{id}": { + "get": { + "tags": [ + "logstash.get_pipeline" + ], + "summary": "Retrieves Logstash Pipelines used by Central Management", + "description": "Retrieves Logstash Pipelines used by Central Management", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-get-pipeline.html" + }, + "operationId": "logstash-get-pipeline-1", + "parameters": [ + { + "$ref": "#/components/parameters/logstash.get_pipeline#id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/logstash.get_pipeline#200" + } + } + }, + "put": { + "tags": [ + "logstash.put_pipeline" + ], + "summary": "Adds and updates Logstash Pipelines used for Central Management", + "description": "Adds and updates Logstash Pipelines used for Central Management", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-put-pipeline.html" + }, + "operationId": "logstash-put-pipeline", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the pipeline.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/logstash._types:Pipeline" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + }, + "delete": { + "tags": [ + "logstash.delete_pipeline" + ], + "summary": "Deletes Logstash Pipelines used by Central Management", + "description": "Deletes Logstash Pipelines used by Central Management", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-delete-pipeline.html" + }, + "operationId": "logstash-delete-pipeline", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the pipeline.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": {} + } + } + } + } + }, + "/_logstash/pipeline": { + "get": { + "tags": [ + "logstash.get_pipeline" + ], + "summary": "Retrieves Logstash Pipelines used by Central Management", + "description": "Retrieves Logstash Pipelines used by Central Management", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-api-get-pipeline.html" + }, + "operationId": "logstash-get-pipeline", + "responses": { + "200": { + "$ref": "#/components/responses/logstash.get_pipeline#200" + } + } + } + }, + "/_mget": { + "get": { + "tags": [ + "mget" + ], + "summary": "Allows to get multiple documents in one request.", + "description": "Allows to get multiple documents in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html" + }, + "operationId": "mget", + "parameters": [ + { + "$ref": "#/components/parameters/mget#preference" + }, + { + "$ref": "#/components/parameters/mget#realtime" + }, + { + "$ref": "#/components/parameters/mget#refresh" + }, + { + "$ref": "#/components/parameters/mget#routing" + }, + { + "$ref": "#/components/parameters/mget#_source" + }, + { + "$ref": "#/components/parameters/mget#_source_excludes" + }, + { + "$ref": "#/components/parameters/mget#_source_includes" + }, + { + "$ref": "#/components/parameters/mget#stored_fields" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mget" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mget#200" + } + } + }, + "post": { + "tags": [ + "mget" + ], + "summary": "Allows to get multiple documents in one request.", + "description": "Allows to get multiple documents in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html" + }, + "operationId": "mget-1", + "parameters": [ + { + "$ref": "#/components/parameters/mget#preference" + }, + { + "$ref": "#/components/parameters/mget#realtime" + }, + { + "$ref": "#/components/parameters/mget#refresh" + }, + { + "$ref": "#/components/parameters/mget#routing" + }, + { + "$ref": "#/components/parameters/mget#_source" + }, + { + "$ref": "#/components/parameters/mget#_source_excludes" + }, + { + "$ref": "#/components/parameters/mget#_source_includes" + }, + { + "$ref": "#/components/parameters/mget#stored_fields" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mget" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mget#200" + } + } + } + }, + "/{index}/_mget": { + "get": { + "tags": [ + "mget" + ], + "summary": "Allows to get multiple documents in one request.", + "description": "Allows to get multiple documents in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html" + }, + "operationId": "mget-2", + "parameters": [ + { + "$ref": "#/components/parameters/mget#index" + }, + { + "$ref": "#/components/parameters/mget#preference" + }, + { + "$ref": "#/components/parameters/mget#realtime" + }, + { + "$ref": "#/components/parameters/mget#refresh" + }, + { + "$ref": "#/components/parameters/mget#routing" + }, + { + "$ref": "#/components/parameters/mget#_source" + }, + { + "$ref": "#/components/parameters/mget#_source_excludes" + }, + { + "$ref": "#/components/parameters/mget#_source_includes" + }, + { + "$ref": "#/components/parameters/mget#stored_fields" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mget" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mget#200" + } + } + }, + "post": { + "tags": [ + "mget" + ], + "summary": "Allows to get multiple documents in one request.", + "description": "Allows to get multiple documents in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-get.html" + }, + "operationId": "mget-3", + "parameters": [ + { + "$ref": "#/components/parameters/mget#index" + }, + { + "$ref": "#/components/parameters/mget#preference" + }, + { + "$ref": "#/components/parameters/mget#realtime" + }, + { + "$ref": "#/components/parameters/mget#refresh" + }, + { + "$ref": "#/components/parameters/mget#routing" + }, + { + "$ref": "#/components/parameters/mget#_source" + }, + { + "$ref": "#/components/parameters/mget#_source_excludes" + }, + { + "$ref": "#/components/parameters/mget#_source_includes" + }, + { + "$ref": "#/components/parameters/mget#stored_fields" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mget" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mget#200" + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_close": { + "post": { + "tags": [ + "ml.close_job" + ], + "summary": "Closes one or more anomaly detection jobs. A job can be opened and closed multiple times throughout its lifecycle.", + "description": "Closes one or more anomaly detection jobs. A job can be opened and closed multiple times throughout its lifecycle.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html" + }, + "operationId": "ml-close-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job. It can be a job identifier, a group name, or a wildcard expression. You can close multiple anomaly detection jobs in a single API request by using a group name, a comma-separated list of jobs, or a wildcard expression. You can close all jobs by using `_all` or by specifying `*` as the job identifier.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request: contains wildcard expressions and there are no jobs that match; contains the `_all` string or no identifiers and there are no matches; or contains wildcard expressions and there are only partial matches. By default, it returns an empty jobs array when there are no matches and the subset of results when there are partial matches.\nIf `false`, the request returns a 404 status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "force", + "description": "Use to close a failed job, or to forcefully close a job which has not responded to its initial close request; the request returns without performing the associated actions such as flushing buffers and persisting the model snapshots.\nIf you want the job to be in a consistent state after the close job API returns, do not set to `true`. This parameter should be used only in situations where the job has already failed or where you are not interested in results the job might have recently produced or might produce in the future.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the time to wait until a job has closed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_no_match": { + "description": "Refer to the description for the `allow_no_match` query parameter.", + "type": "boolean" + }, + "force": { + "description": "Refer to the descriptiion for the `force` query parameter.", + "type": "boolean" + }, + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "closed": { + "type": "boolean" + } + }, + "required": [ + "closed" + ] + } + } + } + } + } + } + }, + "/_ml/calendars/{calendar_id}": { + "get": { + "tags": [ + "ml.get_calendars" + ], + "summary": "Retrieves configuration information for calendars.", + "description": "Retrieves configuration information for calendars.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html" + }, + "operationId": "ml-get-calendars-2", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_calendars#calendar_id" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#from" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#size" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_calendars" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_calendars#200" + } + } + }, + "put": { + "tags": [ + "ml.put_calendar" + ], + "summary": "Instantiates a calendar.", + "description": "Instantiates a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html" + }, + "operationId": "ml-put-calendar", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_ids": { + "description": "An array of anomaly detection job identifiers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "description": { + "description": "A description of the calendar.", + "type": "string" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "calendar_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "description": { + "description": "A description of the calendar.", + "type": "string" + }, + "job_ids": { + "$ref": "#/components/schemas/_types:Ids" + } + }, + "required": [ + "calendar_id", + "job_ids" + ] + } + } + } + } + } + }, + "post": { + "tags": [ + "ml.get_calendars" + ], + "summary": "Retrieves configuration information for calendars.", + "description": "Retrieves configuration information for calendars.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html" + }, + "operationId": "ml-get-calendars-3", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_calendars#calendar_id" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#from" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#size" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_calendars" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_calendars#200" + } + } + }, + "delete": { + "tags": [ + "ml.delete_calendar" + ], + "summary": "Deletes a calendar.", + "description": "Deletes a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html" + }, + "operationId": "ml-delete-calendar", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/calendars/{calendar_id}/events/{event_id}": { + "delete": { + "tags": [ + "ml.delete_calendar_event" + ], + "summary": "Deletes scheduled events from a calendar.", + "description": "Deletes scheduled events from a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html" + }, + "operationId": "ml-delete-calendar-event", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "event_id", + "description": "Identifier for the scheduled event.\nYou can obtain this identifier by using the get calendar events API.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/calendars/{calendar_id}/jobs/{job_id}": { + "put": { + "tags": [ + "ml.put_calendar_job" + ], + "summary": "Adds an anomaly detection job to a calendar.", + "description": "Adds an anomaly detection job to a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html" + }, + "operationId": "ml-put-calendar-job", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "job_id", + "description": "An identifier for the anomaly detection jobs. It can be a job identifier, a group name, or a comma-separated list of jobs or groups.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "calendar_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "description": { + "description": "A description of the calendar.", + "type": "string" + }, + "job_ids": { + "$ref": "#/components/schemas/_types:Ids" + } + }, + "required": [ + "calendar_id", + "job_ids" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_calendar_job" + ], + "summary": "Deletes anomaly detection jobs from a calendar.", + "description": "Deletes anomaly detection jobs from a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html" + }, + "operationId": "ml-delete-calendar-job", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "job_id", + "description": "An identifier for the anomaly detection jobs. It can be a job identifier, a group name, or a\ncomma-separated list of jobs or groups.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "calendar_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "description": { + "description": "A description of the calendar.", + "type": "string" + }, + "job_ids": { + "$ref": "#/components/schemas/_types:Ids" + } + }, + "required": [ + "calendar_id", + "job_ids" + ] + } + } + } + } + } + } + }, + "/_ml/data_frame/analytics/{id}": { + "get": { + "tags": [ + "ml.get_data_frame_analytics" + ], + "summary": "Retrieves configuration information for data frame analytics jobs.", + "description": "Retrieves configuration information for data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html" + }, + "operationId": "ml-get-data-frame-analytics", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#id" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#from" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#size" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_data_frame_analytics#200" + } + } + }, + "put": { + "tags": [ + "ml.put_data_frame_analytics" + ], + "summary": "Instantiates a data frame analytics job.", + "description": "Instantiates a data frame analytics job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-dfanalytics.html" + }, + "operationId": "ml-put-data-frame-analytics", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. This identifier can contain\nlowercase alphanumeric characters (a-z and 0-9), hyphens, and\nunderscores. It must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_lazy_start": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html" + }, + "description": "Specifies whether this job can start when there is insufficient machine\nlearning node capacity for it to be immediately assigned to a node. If\nset to `false` and a machine learning node with capacity to run the job\ncannot be immediately found, the API returns an error. If set to `true`,\nthe API does not return an error; the job waits in the `starting` state\nuntil sufficient machine learning node capacity is available. This\nbehavior is also affected by the cluster-wide\n`xpack.ml.max_lazy_ml_nodes` setting.", + "type": "boolean" + }, + "analysis": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisContainer" + }, + "analyzed_fields": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsDestination" + }, + "max_num_threads": { + "description": "The maximum number of threads to be used by the analysis. Using more\nthreads may decrease the time necessary to complete the analysis at the\ncost of using more CPU. Note that the process may use additional threads\nfor operational functionality other than the analysis itself.", + "type": "number" + }, + "model_memory_limit": { + "description": "The approximate maximum amount of memory resources that are permitted for\nanalytical processing. If your `elasticsearch.yml` file contains an\n`xpack.ml.max_model_memory_limit` setting, an error occurs when you try\nto create data frame analytics jobs that have `model_memory_limit` values\ngreater than that setting.", + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSource" + }, + "headers": { + "$ref": "#/components/schemas/_types:HttpHeaders" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "analysis", + "dest", + "source" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authorization": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsAuthorization" + }, + "allow_lazy_start": { + "type": "boolean" + }, + "analysis": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisContainer" + }, + "analyzed_fields": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + }, + "create_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "description": { + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsDestination" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_num_threads": { + "type": "number" + }, + "model_memory_limit": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSource" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "allow_lazy_start", + "analysis", + "create_time", + "dest", + "id", + "max_num_threads", + "model_memory_limit", + "source", + "version" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_data_frame_analytics" + ], + "summary": "Deletes an existing data frame analytics job.", + "description": "Deletes an existing data frame analytics job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-dfanalytics.html" + }, + "operationId": "ml-delete-data-frame-analytics", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "If `true`, it deletes a job that is not stopped; this method is quicker than stopping and deleting the job.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "The time to wait for the job to be deleted.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}": { + "get": { + "tags": [ + "ml.get_datafeeds" + ], + "summary": "Retrieves configuration information for datafeeds.", + "description": "Retrieves configuration information for datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html" + }, + "operationId": "ml-get-datafeeds", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_datafeeds#datafeed_id" + }, + { + "$ref": "#/components/parameters/ml.get_datafeeds#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_datafeeds#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_datafeeds#200" + } + } + }, + "put": { + "tags": [ + "ml.put_datafeed" + ], + "summary": "Instantiates a datafeed.", + "description": "Instantiates a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html" + }, + "operationId": "ml-put-datafeed", + "parameters": [ + { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed.\nThis identifier can contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores.\nIt must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If true, wildcard indices expressions that resolve into no concrete indices are ignored. This includes the `_all`\nstring or when no indices are specified.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match. If the request can target data streams, this argument determines\nwhether wildcard expressions match hidden data streams. Supports comma-separated values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_throttled", + "description": "If true, concrete, expanded, or aliased indices are ignored when frozen.", + "deprecated": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If true, unavailable indices (missing or closed) are ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "description": "If set, the datafeed performs aggregation searches.\nSupport for aggregations is limited and should be used only with low cardinality data.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_empty_searches": { + "description": "If a real-time datafeed has never seen any data (including during any initial training period), it automatically\nstops and closes the associated job after this many real-time searches return no documents. In other words,\nit stops after `frequency` times `max_empty_searches` of real-time operation. If not set, a datafeed with no\nend time that sees no data remains started until it is explicitly stopped. By default, it is not set.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "script_fields": { + "description": "Specifies scripts that evaluate custom expressions and returns script fields to the datafeed.\nThe detector configuration objects in a job can contain functions that use these script fields.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "description": "The size parameter that is used in Elasticsearch searches when the datafeed does not use aggregations.\nThe maximum value is the value of `index.max_result_window`, which is 10,000 by default.", + "type": "number" + }, + "headers": { + "$ref": "#/components/schemas/_types:HttpHeaders" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "authorization": { + "$ref": "#/components/schemas/ml._types:DatafeedAuthorization" + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "datafeed_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + }, + "max_empty_searches": { + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "script_fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "type": "number" + } + }, + "required": [ + "chunking_config", + "datafeed_id", + "indices", + "job_id", + "query", + "query_delay", + "scroll_size" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_datafeed" + ], + "summary": "Deletes an existing datafeed.", + "description": "Deletes an existing datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html" + }, + "operationId": "ml-delete-datafeed", + "parameters": [ + { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed. This\nidentifier can contain lowercase alphanumeric characters (a-z and 0-9),\nhyphens, and underscores. It must start and end with alphanumeric\ncharacters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "Use to forcefully delete a started datafeed; this method is quicker than\nstopping and deleting the datafeed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/filters/{filter_id}": { + "get": { + "tags": [ + "ml.get_filters" + ], + "summary": "Retrieves filters.", + "description": "Retrieves filters.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html" + }, + "operationId": "ml-get-filters-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_filters#filter_id" + }, + { + "$ref": "#/components/parameters/ml.get_filters#from" + }, + { + "$ref": "#/components/parameters/ml.get_filters#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_filters#200" + } + } + }, + "put": { + "tags": [ + "ml.put_filter" + ], + "summary": "Instantiates a filter.", + "description": "Instantiates a filter.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html" + }, + "operationId": "ml-put-filter", + "parameters": [ + { + "in": "path", + "name": "filter_id", + "description": "A string that uniquely identifies a filter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "A description of the filter.", + "type": "string" + }, + "items": { + "description": "The items of the filter. A wildcard `*` can be used at the beginning or the end of an item.\nUp to 10000 items are allowed in each filter.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "filter_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "description", + "filter_id", + "items" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_filter" + ], + "summary": "Deletes a filter.", + "description": "Deletes a filter.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html" + }, + "operationId": "ml-delete-filter", + "parameters": [ + { + "in": "path", + "name": "filter_id", + "description": "A string that uniquely identifies a filter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}": { + "get": { + "tags": [ + "ml.get_jobs" + ], + "summary": "Retrieves configuration information for anomaly detection jobs.", + "description": "Retrieves configuration information for anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html" + }, + "operationId": "ml-get-jobs", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_jobs#job_id" + }, + { + "$ref": "#/components/parameters/ml.get_jobs#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_jobs#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_jobs#200" + } + } + }, + "put": { + "tags": [ + "ml.put_job" + ], + "summary": "Instantiates an anomaly detection job.", + "description": "Instantiates an anomaly detection job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html" + }, + "operationId": "ml-put-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "The identifier for the anomaly detection job. This identifier can contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores. It must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_lazy_open": { + "description": "Advanced configuration option. Specifies whether this job can open when there is insufficient machine learning node capacity for it to be immediately assigned to a node. By default, if a machine learning node with capacity to run the job cannot immediately be found, the open anomaly detection jobs API returns an error. However, this is also subject to the cluster-wide `xpack.ml.max_lazy_ml_nodes` setting. If this option is set to true, the open anomaly detection jobs API does not return an error and the job waits in the opening state until sufficient machine learning node capacity is available.", + "type": "boolean" + }, + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfig" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisLimits" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "custom_settings": { + "$ref": "#/components/schemas/ml._types:CustomSettings" + }, + "daily_model_snapshot_retention_after_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job. It specifies a period of time (in days) after which only the first snapshot per day is retained. This period is relative to the timestamp of the most recent snapshot for this job. Valid values range from 0 to `model_snapshot_retention_days`.", + "type": "number" + }, + "data_description": { + "$ref": "#/components/schemas/ml._types:DataDescription" + }, + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:DatafeedConfig" + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "groups": { + "description": "A list of job groups. A job can belong to no groups or many.", + "type": "array", + "items": { + "type": "string" + } + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_snapshot_retention_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job. It specifies the maximum period of time (in days) that snapshots are retained. This period is relative to the timestamp of the most recent snapshot for this job. By default, snapshots ten days older than the newest snapshot are deleted.", + "type": "number" + }, + "renormalization_window_days": { + "description": "Advanced configuration option. The period over which adjustments to the score are applied, as new data is seen. The default value is the longer of 30 days or 100 bucket spans.", + "type": "number" + }, + "results_index_name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "results_retention_days": { + "description": "Advanced configuration option. The period of time (in days) that results are retained. Age is calculated relative to the timestamp of the latest bucket result. If this property has a non-null value, once per day at 00:30 (server time), results that are the specified number of days older than the latest bucket result are deleted from Elasticsearch. The default value is null, which means all results are retained. Annotations generated by the system also count as results for retention purposes; they are deleted after the same number of days as results. Annotations added by users are retained forever.", + "type": "number" + } + }, + "required": [ + "analysis_config", + "data_description" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_lazy_open": { + "type": "boolean" + }, + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfigRead" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisLimits" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "create_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "custom_settings": { + "$ref": "#/components/schemas/ml._types:CustomSettings" + }, + "daily_model_snapshot_retention_after_days": { + "type": "number" + }, + "data_description": { + "$ref": "#/components/schemas/ml._types:DataDescription" + }, + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:Datafeed" + }, + "description": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "job_type": { + "type": "string" + }, + "job_version": { + "type": "string" + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_snapshot_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "model_snapshot_retention_days": { + "type": "number" + }, + "renormalization_window_days": { + "type": "number" + }, + "results_index_name": { + "type": "string" + }, + "results_retention_days": { + "type": "number" + } + }, + "required": [ + "allow_lazy_open", + "analysis_config", + "analysis_limits", + "create_time", + "daily_model_snapshot_retention_after_days", + "data_description", + "job_id", + "job_type", + "job_version", + "model_snapshot_retention_days", + "results_index_name" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_job" + ], + "summary": "Deletes an existing anomaly detection job.", + "description": "Deletes an existing anomaly detection job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html" + }, + "operationId": "ml-delete-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "Use to forcefully delete an opened job; this method is quicker than\nclosing and deleting the job.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "delete_user_annotations", + "description": "Specifies whether annotations that have been added by the\nuser should be deleted along with any auto-generated annotations when the job is\nreset.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "Specifies whether the request should return immediately or wait until the\njob deletion completes.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/trained_models/{model_id}": { + "get": { + "tags": [ + "ml.get_trained_models" + ], + "summary": "Retrieves configuration information for a trained inference model.", + "description": "Retrieves configuration information for a trained inference model.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html" + }, + "operationId": "ml-get-trained-models", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_trained_models#model_id" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#decompress_definition" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#exclude_generated" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#from" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#include" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#size" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#tags" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_trained_models#200" + } + } + }, + "put": { + "tags": [ + "ml.put_trained_model" + ], + "summary": "Creates an inference trained model.", + "description": "Creates an inference trained model.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models.html" + }, + "operationId": "ml-put-trained-model", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "defer_definition_decompression", + "description": "If set to `true` and a `compressed_definition` is provided, the request defers definition decompression and skips relevant validations.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "compressed_definition": { + "description": "The compressed (GZipped and Base64 encoded) inference definition of the\nmodel. If compressed_definition is specified, then definition cannot be\nspecified.", + "type": "string" + }, + "definition": { + "$ref": "#/components/schemas/ml.put_trained_model:Definition" + }, + "description": { + "description": "A human-readable description of the inference trained model.", + "type": "string" + }, + "inference_config": { + "$ref": "#/components/schemas/ml._types:InferenceConfigCreateContainer" + }, + "input": { + "$ref": "#/components/schemas/ml.put_trained_model:Input" + }, + "metadata": { + "description": "An object map that contains metadata about the model.", + "type": "object" + }, + "model_type": { + "$ref": "#/components/schemas/ml._types:TrainedModelType" + }, + "model_size_bytes": { + "description": "The estimated memory usage in bytes to keep the trained model in memory.\nThis property is supported only if defer_definition_decompression is true\nor the model definition is not supplied.", + "type": "number" + }, + "platform_architecture": { + "description": "The platform architecture (if applicable) of the trained mode. If the model\nonly works on one platform, because it is heavily optimized for a particular\nprocessor architecture and OS combination, then this field specifies which.\nThe format of the string must match the platform identifiers used by Elasticsearch,\nso one of, `linux-x86_64`, `linux-aarch64`, `darwin-x86_64`, `darwin-aarch64`,\nor `windows-x86_64`. For portable models (those that work independent of processor\narchitecture or OS features), leave this field unset.", + "type": "string" + }, + "tags": { + "description": "An array of tags to organize the model.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ml._types:TrainedModelConfig" + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_trained_model" + ], + "summary": "Deletes an existing trained inference model that is currently not referenced by an ingest pipeline.", + "description": "Deletes an existing trained inference model that is currently not referenced by an ingest pipeline.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models.html" + }, + "operationId": "ml-delete-trained-model", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "Forcefully deletes a trained model that is referenced by ingest pipelines or has a started deployment.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/trained_models/{model_id}/model_aliases/{model_alias}": { + "put": { + "tags": [ + "ml.put_trained_model_alias" + ], + "summary": "Creates a new model alias (or reassigns an existing one) to refer to the trained model", + "description": "Creates a new model alias (or reassigns an existing one) to refer to the trained model", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-models-aliases.html" + }, + "operationId": "ml-put-trained-model-alias", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The identifier for the trained model that the alias refers to.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "model_alias", + "description": "The alias to create or update. This value cannot end in numbers.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "reassign", + "description": "Specifies whether the alias gets reassigned to the specified trained\nmodel if it is already assigned to a different model. If the alias is\nalready assigned and this parameter is false, the API returns an error.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "ml.delete_trained_model_alias" + ], + "summary": "Deletes a model alias that refers to the trained model", + "description": "Deletes a model alias that refers to the trained model", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-trained-models-aliases.html" + }, + "operationId": "ml-delete-trained-model-alias", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The trained model ID to which the model alias refers.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "model_alias", + "description": "The model alias to delete.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/anomaly_detectors/_estimate_model_memory": { + "post": { + "tags": [ + "ml.estimate_model_memory" + ], + "summary": "Estimates the model memory", + "description": "Estimates the model memory", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html" + }, + "operationId": "ml-estimate-model-memory", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfig" + }, + "max_bucket_cardinality": { + "description": "Estimates of the highest cardinality in a single bucket that is observed\nfor influencer fields over the time period that the job analyzes data.\nTo produce a good answer, values must be provided for all influencer\nfields. Providing values for fields that are not listed as `influencers`\nhas no effect on the estimation.", + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "overall_cardinality": { + "description": "Estimates of the cardinality that is observed for fields over the whole\ntime period that the job analyzes data. To produce a good answer, values\nmust be provided for fields referenced in the `by_field_name`,\n`over_field_name` and `partition_field_name` of any detectors. Providing\nvalues for other fields has no effect on the estimation. It can be\nomitted from the request if no detectors have a `by_field_name`,\n`over_field_name` or `partition_field_name`.", + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "model_memory_estimate": { + "type": "string" + } + }, + "required": [ + "model_memory_estimate" + ] + } + } + } + } + } + } + }, + "/_ml/data_frame/_evaluate": { + "post": { + "tags": [ + "ml.evaluate_data_frame" + ], + "summary": "Evaluates the data frame analytics for an annotated index.", + "description": "Evaluates the data frame analytics for an annotated index.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/evaluate-dfanalytics.html" + }, + "operationId": "ml-evaluate-data-frame", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "evaluation": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationContainer" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "evaluation", + "index" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "classification": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeClassificationSummary" + }, + "outlier_detection": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeOutlierDetectionSummary" + }, + "regression": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeRegressionSummary" + } + } + } + } + } + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_flush": { + "post": { + "tags": [ + "ml.flush_job" + ], + "summary": "Forces any buffered data to be processed by the job.", + "description": "Forces any buffered data to be processed by the job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html" + }, + "operationId": "ml-flush-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "advance_time", + "description": "Specifies to advance to a particular time value. Results are generated\nand the model is updated for data from the specified time interval.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "calc_interim", + "description": "If true, calculates the interim results for the most recent bucket or all\nbuckets within the latency period.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "end", + "description": "When used in conjunction with `calc_interim` and `start`, specifies the\nrange of buckets on which to calculate interim results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "skip_time", + "description": "Specifies to skip to a particular time value. Results are not generated\nand the model is not updated for data from the specified time interval.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "start", + "description": "When used in conjunction with `calc_interim`, specifies the range of\nbuckets on which to calculate interim results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "advance_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "calc_interim": { + "description": "Refer to the description for the `calc_interim` query parameter.", + "type": "boolean" + }, + "end": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "skip_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "start": { + "$ref": "#/components/schemas/_types:DateTime" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "flushed": { + "type": "boolean" + }, + "last_finalized_bucket_end": { + "description": "Provides the timestamp (in milliseconds since the epoch) of the end of\nthe last bucket that was processed.", + "type": "number" + } + }, + "required": [ + "flushed" + ] + } + } + } + } + } + } + }, + "/_ml/calendars/{calendar_id}/events": { + "get": { + "tags": [ + "ml.get_calendar_events" + ], + "summary": "Retrieves information about the scheduled events in calendars.", + "description": "Retrieves information about the scheduled events in calendars.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html" + }, + "operationId": "ml-get-calendar-events", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar. You can get information for multiple calendars by using a comma-separated list of ids or a wildcard expression. You can get information for all calendars by using `_all` or `*` or by omitting the calendar identifier.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "end", + "description": "Specifies to get events with timestamps earlier than this time.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Skips the specified number of events.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "job_id", + "description": "Specifies to get events for a specific anomaly detection job identifier or job group. It must be used with a calendar identifier of `_all` or `*`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of events to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "start", + "description": "Specifies to get events with timestamps after this time.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:CalendarEvent" + } + } + }, + "required": [ + "count", + "events" + ] + } + } + } + } + } + }, + "post": { + "tags": [ + "ml.post_calendar_events" + ], + "summary": "Posts scheduled events in a calendar.", + "description": "Posts scheduled events in a calendar.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html" + }, + "operationId": "ml-post-calendar-events", + "parameters": [ + { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "events": { + "description": "A list of one of more scheduled events. The event’s start and end times can be specified as integer milliseconds since the epoch or as a string in ISO 8601 format.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:CalendarEvent" + } + } + }, + "required": [ + "events" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:CalendarEvent" + } + } + }, + "required": [ + "events" + ] + } + } + } + } + } + } + }, + "/_ml/calendars": { + "get": { + "tags": [ + "ml.get_calendars" + ], + "summary": "Retrieves configuration information for calendars.", + "description": "Retrieves configuration information for calendars.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html" + }, + "operationId": "ml-get-calendars", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_calendars#from" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#size" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_calendars" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_calendars#200" + } + } + }, + "post": { + "tags": [ + "ml.get_calendars" + ], + "summary": "Retrieves configuration information for calendars.", + "description": "Retrieves configuration information for calendars.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html" + }, + "operationId": "ml-get-calendars-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_calendars#from" + }, + { + "$ref": "#/components/parameters/ml.get_calendars#size" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_calendars" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_calendars#200" + } + } + } + }, + "/_ml/data_frame/analytics": { + "get": { + "tags": [ + "ml.get_data_frame_analytics" + ], + "summary": "Retrieves configuration information for data frame analytics jobs.", + "description": "Retrieves configuration information for data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics.html" + }, + "operationId": "ml-get-data-frame-analytics-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#from" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#size" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_data_frame_analytics#200" + } + } + } + }, + "/_ml/data_frame/analytics/_stats": { + "get": { + "tags": [ + "ml.get_data_frame_analytics_stats" + ], + "summary": "Retrieves usage information for data frame analytics jobs.", + "description": "Retrieves usage information for data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html" + }, + "operationId": "ml-get-data-frame-analytics-stats", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#from" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#size" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#verbose" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_data_frame_analytics_stats#200" + } + } + } + }, + "/_ml/data_frame/analytics/{id}/_stats": { + "get": { + "tags": [ + "ml.get_data_frame_analytics_stats" + ], + "summary": "Retrieves usage information for data frame analytics jobs.", + "description": "Retrieves usage information for data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-dfanalytics-stats.html" + }, + "operationId": "ml-get-data-frame-analytics-stats-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#id" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#from" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#size" + }, + { + "$ref": "#/components/parameters/ml.get_data_frame_analytics_stats#verbose" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_data_frame_analytics_stats#200" + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}/_stats": { + "get": { + "tags": [ + "ml.get_datafeed_stats" + ], + "summary": "Retrieves usage information for datafeeds.", + "description": "Retrieves usage information for datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html" + }, + "operationId": "ml-get-datafeed-stats", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_datafeed_stats#datafeed_id" + }, + { + "$ref": "#/components/parameters/ml.get_datafeed_stats#allow_no_match" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_datafeed_stats#200" + } + } + } + }, + "/_ml/datafeeds/_stats": { + "get": { + "tags": [ + "ml.get_datafeed_stats" + ], + "summary": "Retrieves usage information for datafeeds.", + "description": "Retrieves usage information for datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html" + }, + "operationId": "ml-get-datafeed-stats-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_datafeed_stats#allow_no_match" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_datafeed_stats#200" + } + } + } + }, + "/_ml/datafeeds": { + "get": { + "tags": [ + "ml.get_datafeeds" + ], + "summary": "Retrieves configuration information for datafeeds.", + "description": "Retrieves configuration information for datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html" + }, + "operationId": "ml-get-datafeeds-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_datafeeds#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_datafeeds#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_datafeeds#200" + } + } + } + }, + "/_ml/filters": { + "get": { + "tags": [ + "ml.get_filters" + ], + "summary": "Retrieves filters.", + "description": "Retrieves filters.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html" + }, + "operationId": "ml-get-filters", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_filters#from" + }, + { + "$ref": "#/components/parameters/ml.get_filters#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_filters#200" + } + } + } + }, + "/_ml/anomaly_detectors/_stats": { + "get": { + "tags": [ + "ml.get_job_stats" + ], + "summary": "Retrieves usage information for anomaly detection jobs.", + "description": "Retrieves usage information for anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html" + }, + "operationId": "ml-get-job-stats", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_job_stats#allow_no_match" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_job_stats#200" + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_stats": { + "get": { + "tags": [ + "ml.get_job_stats" + ], + "summary": "Retrieves usage information for anomaly detection jobs.", + "description": "Retrieves usage information for anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html" + }, + "operationId": "ml-get-job-stats-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_job_stats#job_id" + }, + { + "$ref": "#/components/parameters/ml.get_job_stats#allow_no_match" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_job_stats#200" + } + } + } + }, + "/_ml/anomaly_detectors": { + "get": { + "tags": [ + "ml.get_jobs" + ], + "summary": "Retrieves configuration information for anomaly detection jobs.", + "description": "Retrieves configuration information for anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html" + }, + "operationId": "ml-get-jobs-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_jobs#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_jobs#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_jobs#200" + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/results/overall_buckets": { + "get": { + "tags": [ + "ml.get_overall_buckets" + ], + "summary": "Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs.", + "description": "Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html" + }, + "operationId": "ml-get-overall-buckets", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_overall_buckets#job_id" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#bucket_span" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#end" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#exclude_interim" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#overall_score" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#start" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#top_n" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_overall_buckets" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_overall_buckets#200" + } + } + }, + "post": { + "tags": [ + "ml.get_overall_buckets" + ], + "summary": "Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs.", + "description": "Retrieves overall bucket results that summarize the bucket results of multiple anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html" + }, + "operationId": "ml-get-overall-buckets-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_overall_buckets#job_id" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#bucket_span" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#end" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#exclude_interim" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#overall_score" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#start" + }, + { + "$ref": "#/components/parameters/ml.get_overall_buckets#top_n" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.get_overall_buckets" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_overall_buckets#200" + } + } + } + }, + "/_ml/trained_models": { + "get": { + "tags": [ + "ml.get_trained_models" + ], + "summary": "Retrieves configuration information for a trained inference model.", + "description": "Retrieves configuration information for a trained inference model.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models.html" + }, + "operationId": "ml-get-trained-models-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_trained_models#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#decompress_definition" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#exclude_generated" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#from" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#include" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#size" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models#tags" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_trained_models#200" + } + } + } + }, + "/_ml/trained_models/{model_id}/_stats": { + "get": { + "tags": [ + "ml.get_trained_models_stats" + ], + "summary": "Retrieves usage information for trained inference models.", + "description": "Retrieves usage information for trained inference models.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html" + }, + "operationId": "ml-get-trained-models-stats", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#model_id" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#from" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_trained_models_stats#200" + } + } + } + }, + "/_ml/trained_models/_stats": { + "get": { + "tags": [ + "ml.get_trained_models_stats" + ], + "summary": "Retrieves usage information for trained inference models.", + "description": "Retrieves usage information for trained inference models.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-trained-models-stats.html" + }, + "operationId": "ml-get-trained-models-stats-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#allow_no_match" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#from" + }, + { + "$ref": "#/components/parameters/ml.get_trained_models_stats#size" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ml.get_trained_models_stats#200" + } + } + } + }, + "/_ml/trained_models/{model_id}/_infer": { + "post": { + "tags": [ + "ml.infer_trained_model" + ], + "summary": "Evaluate a trained model.", + "description": "Evaluate a trained model.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/infer-trained-model.html" + }, + "operationId": "ml-infer-trained-model", + "parameters": [ + { + "$ref": "#/components/parameters/ml.infer_trained_model#model_id" + }, + { + "$ref": "#/components/parameters/ml.infer_trained_model#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.infer_trained_model" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.infer_trained_model#200" + } + } + } + }, + "/_ml/trained_models/{model_id}/deployment/_infer": { + "post": { + "tags": [ + "ml.infer_trained_model" + ], + "summary": "Evaluate a trained model.", + "description": "Evaluate a trained model.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/infer-trained-model.html" + }, + "operationId": "ml-infer-trained-model-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.infer_trained_model#model_id" + }, + { + "$ref": "#/components/parameters/ml.infer_trained_model#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.infer_trained_model" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.infer_trained_model#200" + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_open": { + "post": { + "tags": [ + "ml.open_job" + ], + "summary": "Opens one or more anomaly detection jobs.", + "description": "Opens one or more anomaly detection jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html" + }, + "operationId": "ml-open-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the time to wait until a job has opened.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "opened": { + "type": "boolean" + }, + "node": { + "$ref": "#/components/schemas/_types:NodeId" + } + }, + "required": [ + "opened", + "node" + ] + } + } + } + } + } + } + }, + "/_ml/data_frame/analytics/_preview": { + "get": { + "tags": [ + "ml.preview_data_frame_analytics" + ], + "summary": "Previews that will be analyzed given a data frame analytics config.", + "description": "Previews that will be analyzed given a data frame analytics config.", + "externalDocs": { + "url": "http://www.elastic.co/guide/en/elasticsearch/reference/current/preview-dfanalytics.html" + }, + "operationId": "ml-preview-data-frame-analytics", + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_data_frame_analytics" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_data_frame_analytics#200" + } + } + }, + "post": { + "tags": [ + "ml.preview_data_frame_analytics" + ], + "summary": "Previews that will be analyzed given a data frame analytics config.", + "description": "Previews that will be analyzed given a data frame analytics config.", + "externalDocs": { + "url": "http://www.elastic.co/guide/en/elasticsearch/reference/current/preview-dfanalytics.html" + }, + "operationId": "ml-preview-data-frame-analytics-1", + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_data_frame_analytics" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_data_frame_analytics#200" + } + } + } + }, + "/_ml/data_frame/analytics/{id}/_preview": { + "get": { + "tags": [ + "ml.preview_data_frame_analytics" + ], + "summary": "Previews that will be analyzed given a data frame analytics config.", + "description": "Previews that will be analyzed given a data frame analytics config.", + "externalDocs": { + "url": "http://www.elastic.co/guide/en/elasticsearch/reference/current/preview-dfanalytics.html" + }, + "operationId": "ml-preview-data-frame-analytics-2", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_data_frame_analytics#id" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_data_frame_analytics" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_data_frame_analytics#200" + } + } + }, + "post": { + "tags": [ + "ml.preview_data_frame_analytics" + ], + "summary": "Previews that will be analyzed given a data frame analytics config.", + "description": "Previews that will be analyzed given a data frame analytics config.", + "externalDocs": { + "url": "http://www.elastic.co/guide/en/elasticsearch/reference/current/preview-dfanalytics.html" + }, + "operationId": "ml-preview-data-frame-analytics-3", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_data_frame_analytics#id" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_data_frame_analytics" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_data_frame_analytics#200" + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}/_preview": { + "get": { + "tags": [ + "ml.preview_datafeed" + ], + "summary": "Previews a datafeed.", + "description": "Previews a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html" + }, + "operationId": "ml-preview-datafeed", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_datafeed#datafeed_id" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#start" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#end" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_datafeed" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_datafeed#200" + } + } + }, + "post": { + "tags": [ + "ml.preview_datafeed" + ], + "summary": "Previews a datafeed.", + "description": "Previews a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html" + }, + "operationId": "ml-preview-datafeed-1", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_datafeed#datafeed_id" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#start" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#end" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_datafeed" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_datafeed#200" + } + } + } + }, + "/_ml/datafeeds/_preview": { + "get": { + "tags": [ + "ml.preview_datafeed" + ], + "summary": "Previews a datafeed.", + "description": "Previews a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html" + }, + "operationId": "ml-preview-datafeed-2", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_datafeed#start" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#end" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_datafeed" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_datafeed#200" + } + } + }, + "post": { + "tags": [ + "ml.preview_datafeed" + ], + "summary": "Previews a datafeed.", + "description": "Previews a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html" + }, + "operationId": "ml-preview-datafeed-3", + "parameters": [ + { + "$ref": "#/components/parameters/ml.preview_datafeed#start" + }, + { + "$ref": "#/components/parameters/ml.preview_datafeed#end" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/ml.preview_datafeed" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ml.preview_datafeed#200" + } + } + } + }, + "/_ml/trained_models/{model_id}/definition/{part}": { + "put": { + "tags": [ + "ml.put_trained_model_definition_part" + ], + "summary": "Creates part of a trained model definition", + "description": "Creates part of a trained model definition", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-model-definition-part.html" + }, + "operationId": "ml-put-trained-model-definition-part", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "part", + "description": "The definition part number. When the definition is loaded for inference the definition parts are streamed in the\norder of their part number. The first part must be `0` and the final part must be `total_parts - 1`.", + "required": true, + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "definition": { + "description": "The definition part for the model. Must be a base64 encoded string.", + "type": "string" + }, + "total_definition_length": { + "description": "The total uncompressed definition length in bytes. Not base64 encoded.", + "type": "number" + }, + "total_parts": { + "description": "The total number of parts that will be uploaded. Must be greater than 0.", + "type": "number" + } + }, + "required": [ + "definition", + "total_definition_length", + "total_parts" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/trained_models/{model_id}/vocabulary": { + "put": { + "tags": [ + "ml.put_trained_model_vocabulary" + ], + "summary": "Creates a trained model vocabulary", + "description": "Creates a trained model vocabulary", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-trained-model-vocabulary.html" + }, + "operationId": "ml-put-trained-model-vocabulary", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "vocabulary": { + "description": "The model vocabulary, which must not be empty.", + "type": "array", + "items": { + "type": "string" + } + }, + "merges": { + "description": "The optional model merges if required by the tokenizer.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "vocabulary" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_reset": { + "post": { + "tags": [ + "ml.reset_job" + ], + "summary": "Resets an existing anomaly detection job.", + "description": "Resets an existing anomaly detection job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-reset-job.html" + }, + "operationId": "ml-reset-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "The ID of the job to reset.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "Should this request wait until the operation has completed before\nreturning.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "delete_user_annotations", + "description": "Specifies whether annotations that have been added by the\nuser should be deleted along with any auto-generated annotations when the job is\nreset.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_ml/data_frame/analytics/{id}/_start": { + "post": { + "tags": [ + "ml.start_data_frame_analytics" + ], + "summary": "Starts a data frame analytics job.", + "description": "Starts a data frame analytics job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/start-dfanalytics.html" + }, + "operationId": "ml-start-data-frame-analytics", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. This identifier can contain\nlowercase alphanumeric characters (a-z and 0-9), hyphens, and\nunderscores. It must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the amount of time to wait until the data frame analytics job\nstarts.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "acknowledged": { + "type": "boolean" + }, + "node": { + "$ref": "#/components/schemas/_types:NodeId" + } + }, + "required": [ + "acknowledged", + "node" + ] + } + } + } + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}/_start": { + "post": { + "tags": [ + "ml.start_datafeed" + ], + "summary": "Starts one or more datafeeds.", + "description": "Starts one or more datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html" + }, + "operationId": "ml-start-datafeed", + "parameters": [ + { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed. This identifier can contain lowercase\nalphanumeric characters (a-z and 0-9), hyphens, and underscores. It must start and end with alphanumeric\ncharacters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "end", + "description": "The time that the datafeed should end, which can be specified by using one of the following formats:\n\n* ISO 8601 format with milliseconds, for example `2017-01-22T06:00:00.000Z`\n* ISO 8601 format without milliseconds, for example `2017-01-22T06:00:00+00:00`\n* Milliseconds since the epoch, for example `1485061200000`\n\nDate-time arguments using either of the ISO 8601 formats must have a time zone designator, where `Z` is accepted\nas an abbreviation for UTC time. When a URL is expected (for example, in browsers), the `+` used in time zone\ndesignators must be encoded as `%2B`.\nThe end time value is exclusive. If you do not specify an end time, the datafeed\nruns continuously.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "start", + "description": "The time that the datafeed should begin, which can be specified by using the same formats as the `end` parameter.\nThis value is inclusive.\nIf you do not specify a start time and the datafeed is associated with a new anomaly detection job, the analysis\nstarts from the earliest time for which data is available.\nIf you restart a stopped datafeed and specify a start value that is earlier than the timestamp of the latest\nprocessed record, the datafeed continues from 1 millisecond after the timestamp of the latest processed record.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Specifies the amount of time to wait until a datafeed starts.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "end": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "start": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "node": { + "$ref": "#/components/schemas/_types:NodeIds" + }, + "started": { + "description": "For a successful response, this value is always `true`. On failure, an exception is returned instead.", + "type": "boolean" + } + }, + "required": [ + "node", + "started" + ] + } + } + } + } + } + } + }, + "/_ml/trained_models/{model_id}/deployment/_start": { + "post": { + "tags": [ + "ml.start_trained_model_deployment" + ], + "summary": "Start a trained model deployment.", + "description": "Start a trained model deployment.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/start-trained-model-deployment.html" + }, + "operationId": "ml-start-trained-model-deployment", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model. Currently, only PyTorch models are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "cache_size", + "description": "The inference cache size (in memory outside the JVM heap) per node for the model.\nThe default value is the same size as the `model_size_bytes`. To disable the cache,\n`0b` can be provided.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "style": "form" + }, + { + "in": "query", + "name": "number_of_allocations", + "description": "The number of model allocations on each node where the model is deployed.\nAll allocations on a node share the same copy of the model in memory but use\na separate set of threads to evaluate the model.\nIncreasing this value generally increases the throughput.\nIf this setting is greater than the number of hardware threads\nit will automatically be changed to a value less than the number of hardware threads.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "priority", + "description": "The deployment priority.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/ml._types:TrainingPriority" + }, + "style": "form" + }, + { + "in": "query", + "name": "queue_capacity", + "description": "Specifies the number of inference requests that are allowed in the queue. After the number of requests exceeds\nthis value, new requests are rejected with a 429 error.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "threads_per_allocation", + "description": "Sets the number of threads used by each model allocation during inference. This generally increases\nthe inference speed. The inference process is a compute-bound process; any number\ngreater than the number of available hardware threads on the machine does not increase the\ninference speed. If this setting is greater than the number of hardware threads\nit will automatically be changed to a value less than the number of hardware threads.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Specifies the amount of time to wait for the model to deploy.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for", + "description": "Specifies the allocation status to wait for before returning.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/ml._types:DeploymentAllocationState" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "assignment": { + "$ref": "#/components/schemas/ml._types:TrainedModelAssignment" + } + }, + "required": [ + "assignment" + ] + } + } + } + } + } + } + }, + "/_ml/data_frame/analytics/{id}/_stop": { + "post": { + "tags": [ + "ml.stop_data_frame_analytics" + ], + "summary": "Stops one or more data frame analytics jobs.", + "description": "Stops one or more data frame analytics jobs.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-dfanalytics.html" + }, + "operationId": "ml-stop-data-frame-analytics", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. This identifier can contain\nlowercase alphanumeric characters (a-z and 0-9), hyphens, and\nunderscores. It must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no data frame analytics\njobs that match.\n2. Contains the _all string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value is true, which returns an empty data_frame_analytics\narray when there are no matches and the subset of results when there are\npartial matches. If this parameter is false, the request returns a 404\nstatus code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "force", + "description": "If true, the data frame analytics job is stopped forcefully.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the amount of time to wait until the data frame analytics job\nstops. Defaults to 20 seconds.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "stopped": { + "type": "boolean" + } + }, + "required": [ + "stopped" + ] + } + } + } + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}/_stop": { + "post": { + "tags": [ + "ml.stop_datafeed" + ], + "summary": "Stops one or more datafeeds.", + "description": "Stops one or more datafeeds.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html" + }, + "operationId": "ml-stop-datafeed", + "parameters": [ + { + "in": "path", + "name": "datafeed_id", + "description": "Identifier for the datafeed. You can stop multiple datafeeds in a single API request by using a comma-separated\nlist of datafeeds or a wildcard expression. You can close all datafeeds by using `_all` or by specifying `*` as\nthe identifier.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n* Contains wildcard expressions and there are no datafeeds that match.\n* Contains the `_all` string or no identifiers and there are no matches.\n* Contains wildcard expressions and there are only partial matches.\n\nIf `true`, the API returns an empty datafeeds array when there are no matches and the subset of results when\nthere are partial matches. If `false`, the API returns a 404 status code when there are no matches or only\npartial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "force", + "description": "If `true`, the datafeed is stopped forcefully.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Specifies the amount of time to wait until a datafeed stops.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_no_match": { + "description": "Refer to the description for the `allow_no_match` query parameter.", + "type": "boolean" + }, + "force": { + "description": "Refer to the description for the `force` query parameter.", + "type": "boolean" + }, + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "stopped": { + "type": "boolean" + } + }, + "required": [ + "stopped" + ] + } + } + } + } + } + } + }, + "/_ml/trained_models/{model_id}/deployment/_stop": { + "post": { + "tags": [ + "ml.stop_trained_model_deployment" + ], + "summary": "Stop a trained model deployment.", + "description": "Stop a trained model deployment.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/stop-trained-model-deployment.html" + }, + "operationId": "ml-stop-trained-model-deployment", + "parameters": [ + { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request: contains wildcard expressions and there are no deployments that match;\ncontains the `_all` string or no identifiers and there are no matches; or contains wildcard expressions and\nthere are only partial matches. By default, it returns an empty array when there are no matches and the subset of results when there are partial matches.\nIf `false`, the request returns a 404 status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "force", + "description": "Forcefully stops the deployment, even if it is used by ingest pipelines. You can't use these pipelines until you\nrestart the model deployment.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "stopped": { + "type": "boolean" + } + }, + "required": [ + "stopped" + ] + } + } + } + } + } + } + }, + "/_ml/data_frame/analytics/{id}/_update": { + "post": { + "tags": [ + "ml.update_data_frame_analytics" + ], + "summary": "Updates certain properties of a data frame analytics job.", + "description": "Updates certain properties of a data frame analytics job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/update-dfanalytics.html" + }, + "operationId": "ml-update-data-frame-analytics", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. This identifier can contain\nlowercase alphanumeric characters (a-z and 0-9), hyphens, and\nunderscores. It must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "description": "A description of the job.", + "type": "string" + }, + "model_memory_limit": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html" + }, + "description": "The approximate maximum amount of memory resources that are permitted for\nanalytical processing. If your `elasticsearch.yml` file contains an\n`xpack.ml.max_model_memory_limit` setting, an error occurs when you try\nto create data frame analytics jobs that have `model_memory_limit` values\ngreater than that setting.", + "type": "string" + }, + "max_num_threads": { + "description": "The maximum number of threads to be used by the analysis. Using more\nthreads may decrease the time necessary to complete the analysis at the\ncost of using more CPU. Note that the process may use additional threads\nfor operational functionality other than the analysis itself.", + "type": "number" + }, + "allow_lazy_start": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html" + }, + "description": "Specifies whether this job can start when there is insufficient machine\nlearning node capacity for it to be immediately assigned to a node.", + "type": "boolean" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authorization": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsAuthorization" + }, + "allow_lazy_start": { + "type": "boolean" + }, + "analysis": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisContainer" + }, + "analyzed_fields": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + }, + "create_time": { + "type": "number" + }, + "description": { + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsDestination" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_num_threads": { + "type": "number" + }, + "model_memory_limit": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSource" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "allow_lazy_start", + "analysis", + "create_time", + "dest", + "id", + "max_num_threads", + "model_memory_limit", + "source", + "version" + ] + } + } + } + } + } + } + }, + "/_ml/datafeeds/{datafeed_id}/_update": { + "post": { + "tags": [ + "ml.update_datafeed" + ], + "summary": "Updates certain properties of a datafeed.", + "description": "Updates certain properties of a datafeed.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html" + }, + "operationId": "ml-update-datafeed", + "parameters": [ + { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed.\nThis identifier can contain lowercase alphanumeric characters (a-z and 0-9), hyphens, and underscores.\nIt must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If `true`, wildcard indices expressions that resolve into no concrete indices are ignored. This includes the\n`_all` string or when no indices are specified.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match. If the request can target data streams, this argument determines\nwhether wildcard expressions match hidden data streams. Supports comma-separated values. Valid values are:\n\n* `all`: Match any data stream or index, including hidden ones.\n* `closed`: Match closed, non-hidden indices. Also matches any non-hidden data stream. Data streams cannot be closed.\n* `hidden`: Match hidden data streams and hidden indices. Must be combined with `open`, `closed`, or both.\n* `none`: Wildcard patterns are not accepted.\n* `open`: Match open, non-hidden indices. Also matches any non-hidden data stream.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_throttled", + "description": "If `true`, concrete, expanded or aliased indices are ignored when frozen.", + "deprecated": true, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `true`, unavailable indices (missing or closed) are ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "description": "If set, the datafeed performs aggregation searches. Support for aggregations is limited and should be used only\nwith low cardinality data.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "description": "An array of index names. Wildcards are supported. If any of the indices are in remote clusters, the machine\nlearning nodes must have the `remote_cluster_client` role.", + "type": "array", + "items": { + "type": "string" + } + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_empty_searches": { + "description": "If a real-time datafeed has never seen any data (including during any initial training period), it automatically\nstops and closes the associated job after this many real-time searches return no documents. In other words,\nit stops after `frequency` times `max_empty_searches` of real-time operation. If not set, a datafeed with no\nend time that sees no data remains started until it is explicitly stopped. By default, it is not set.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "script_fields": { + "description": "Specifies scripts that evaluate custom expressions and returns script fields to the datafeed.\nThe detector configuration objects in a job can contain functions that use these script fields.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "description": "The size parameter that is used in Elasticsearch searches when the datafeed does not use aggregations.\nThe maximum value is the value of `index.max_result_window`.", + "type": "number" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authorization": { + "$ref": "#/components/schemas/ml._types:DatafeedAuthorization" + }, + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "datafeed_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "type": "array", + "items": { + "type": "string" + } + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_empty_searches": { + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "script_fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "type": "number" + } + }, + "required": [ + "chunking_config", + "datafeed_id", + "indices", + "job_id", + "query", + "query_delay", + "scroll_size" + ] + } + } + } + } + } + } + }, + "/_ml/filters/{filter_id}/_update": { + "post": { + "tags": [ + "ml.update_filter" + ], + "summary": "Updates the description of a filter, adds items, or removes items.", + "description": "Updates the description of a filter, adds items, or removes items.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html" + }, + "operationId": "ml-update-filter", + "parameters": [ + { + "in": "path", + "name": "filter_id", + "description": "A string that uniquely identifies a filter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "add_items": { + "description": "The items to add to the filter.", + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "A description for the filter.", + "type": "string" + }, + "remove_items": { + "description": "The items to remove from the filter.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "filter_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "items": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "description", + "filter_id", + "items" + ] + } + } + } + } + } + } + }, + "/_ml/anomaly_detectors/{job_id}/_update": { + "post": { + "tags": [ + "ml.update_job" + ], + "summary": "Updates certain properties of an anomaly detection job.", + "description": "Updates certain properties of an anomaly detection job.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html" + }, + "operationId": "ml-update-job", + "parameters": [ + { + "in": "path", + "name": "job_id", + "description": "Identifier for the job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_lazy_open": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html" + }, + "description": "Advanced configuration option. Specifies whether this job can open when\nthere is insufficient machine learning node capacity for it to be\nimmediately assigned to a node. If `false` and a machine learning node\nwith capacity to run the job cannot immediately be found, the open\nanomaly detection jobs API returns an error. However, this is also\nsubject to the cluster-wide `xpack.ml.max_lazy_ml_nodes` setting. If this\noption is set to `true`, the open anomaly detection jobs API does not\nreturn an error and the job waits in the opening state until sufficient\nmachine learning node capacity is available.", + "type": "boolean" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisMemoryLimit" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "custom_settings": { + "description": "Advanced configuration option. Contains custom meta data about the job.\nFor example, it can contain custom URL information as shown in Adding\ncustom URLs to machine learning results.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "categorization_filters": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_prune_window": { + "$ref": "#/components/schemas/_types:Duration" + }, + "daily_model_snapshot_retention_after_days": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/ml-ad-run-jobs.html#ml-ad-model-snapshots" + }, + "description": "Advanced configuration option, which affects the automatic removal of old\nmodel snapshots for this job. It specifies a period of time (in days)\nafter which only the first snapshot per day is retained. This period is\nrelative to the timestamp of the most recent snapshot for this job. Valid\nvalues range from 0 to `model_snapshot_retention_days`. For jobs created\nbefore version 7.8.0, the default value matches\n`model_snapshot_retention_days`.", + "type": "number" + }, + "model_snapshot_retention_days": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/ml-ad-run-jobs.html#ml-ad-model-snapshots" + }, + "description": "Advanced configuration option, which affects the automatic removal of old\nmodel snapshots for this job. It specifies the maximum period of time (in\ndays) that snapshots are retained. This period is relative to the\ntimestamp of the most recent snapshot for this job.", + "type": "number" + }, + "renormalization_window_days": { + "description": "Advanced configuration option. The period over which adjustments to the\nscore are applied, as new data is seen.", + "type": "number" + }, + "results_retention_days": { + "description": "Advanced configuration option. The period of time (in days) that results\nare retained. Age is calculated relative to the timestamp of the latest\nbucket result. If this property has a non-null value, once per day at\n00:30 (server time), results that are the specified number of days older\nthan the latest bucket result are deleted from Elasticsearch. The default\nvalue is null, which means all results are retained.", + "type": "number" + }, + "groups": { + "description": "A list of job groups. A job can belong to no groups or many.", + "type": "array", + "items": { + "type": "string" + } + }, + "detectors": { + "description": "An array of detector update objects.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Detector" + } + }, + "per_partition_categorization": { + "$ref": "#/components/schemas/ml._types:PerPartitionCategorization" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_lazy_open": { + "type": "boolean" + }, + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfigRead" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisLimits" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "create_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "finished_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "custom_settings": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "daily_model_snapshot_retention_after_days": { + "type": "number" + }, + "data_description": { + "$ref": "#/components/schemas/ml._types:DataDescription" + }, + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:Datafeed" + }, + "description": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "job_type": { + "type": "string" + }, + "job_version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_snapshot_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "model_snapshot_retention_days": { + "type": "number" + }, + "renormalization_window_days": { + "type": "number" + }, + "results_index_name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "results_retention_days": { + "type": "number" + } + }, + "required": [ + "allow_lazy_open", + "analysis_config", + "analysis_limits", + "create_time", + "daily_model_snapshot_retention_after_days", + "data_description", + "job_id", + "job_type", + "job_version", + "model_snapshot_retention_days", + "results_index_name" + ] + } + } + } + } + } + } + }, + "/_msearch": { + "get": { + "tags": [ + "msearch" + ], + "summary": "Allows to execute several search operations in one request.", + "description": "Allows to execute several search operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html" + }, + "operationId": "msearch", + "parameters": [ + { + "$ref": "#/components/parameters/msearch#allow_no_indices" + }, + { + "$ref": "#/components/parameters/msearch#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch#expand_wildcards" + }, + { + "$ref": "#/components/parameters/msearch#ignore_throttled" + }, + { + "$ref": "#/components/parameters/msearch#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/msearch#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/msearch#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch#routing" + }, + { + "$ref": "#/components/parameters/msearch#search_type" + }, + { + "$ref": "#/components/parameters/msearch#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch#200" + } + } + }, + "post": { + "tags": [ + "msearch" + ], + "summary": "Allows to execute several search operations in one request.", + "description": "Allows to execute several search operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html" + }, + "operationId": "msearch-1", + "parameters": [ + { + "$ref": "#/components/parameters/msearch#allow_no_indices" + }, + { + "$ref": "#/components/parameters/msearch#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch#expand_wildcards" + }, + { + "$ref": "#/components/parameters/msearch#ignore_throttled" + }, + { + "$ref": "#/components/parameters/msearch#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/msearch#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/msearch#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch#routing" + }, + { + "$ref": "#/components/parameters/msearch#search_type" + }, + { + "$ref": "#/components/parameters/msearch#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch#200" + } + } + } + }, + "/{index}/_msearch": { + "get": { + "tags": [ + "msearch" + ], + "summary": "Allows to execute several search operations in one request.", + "description": "Allows to execute several search operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html" + }, + "operationId": "msearch-2", + "parameters": [ + { + "$ref": "#/components/parameters/msearch#index" + }, + { + "$ref": "#/components/parameters/msearch#allow_no_indices" + }, + { + "$ref": "#/components/parameters/msearch#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch#expand_wildcards" + }, + { + "$ref": "#/components/parameters/msearch#ignore_throttled" + }, + { + "$ref": "#/components/parameters/msearch#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/msearch#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/msearch#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch#routing" + }, + { + "$ref": "#/components/parameters/msearch#search_type" + }, + { + "$ref": "#/components/parameters/msearch#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch#200" + } + } + }, + "post": { + "tags": [ + "msearch" + ], + "summary": "Allows to execute several search operations in one request.", + "description": "Allows to execute several search operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-multi-search.html" + }, + "operationId": "msearch-3", + "parameters": [ + { + "$ref": "#/components/parameters/msearch#index" + }, + { + "$ref": "#/components/parameters/msearch#allow_no_indices" + }, + { + "$ref": "#/components/parameters/msearch#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch#expand_wildcards" + }, + { + "$ref": "#/components/parameters/msearch#ignore_throttled" + }, + { + "$ref": "#/components/parameters/msearch#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/msearch#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/msearch#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch#routing" + }, + { + "$ref": "#/components/parameters/msearch#search_type" + }, + { + "$ref": "#/components/parameters/msearch#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch#200" + } + } + } + }, + "/_msearch/template": { + "get": { + "tags": [ + "msearch_template" + ], + "summary": "Allows to execute several search template operations in one request.", + "description": "Allows to execute several search template operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html" + }, + "operationId": "msearch-template", + "parameters": [ + { + "$ref": "#/components/parameters/msearch_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch_template#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch_template#search_type" + }, + { + "$ref": "#/components/parameters/msearch_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch_template#200" + } + } + }, + "post": { + "tags": [ + "msearch_template" + ], + "summary": "Allows to execute several search template operations in one request.", + "description": "Allows to execute several search template operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html" + }, + "operationId": "msearch-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/msearch_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch_template#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch_template#search_type" + }, + { + "$ref": "#/components/parameters/msearch_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch_template#200" + } + } + } + }, + "/{index}/_msearch/template": { + "get": { + "tags": [ + "msearch_template" + ], + "summary": "Allows to execute several search template operations in one request.", + "description": "Allows to execute several search template operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html" + }, + "operationId": "msearch-template-2", + "parameters": [ + { + "$ref": "#/components/parameters/msearch_template#index" + }, + { + "$ref": "#/components/parameters/msearch_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch_template#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch_template#search_type" + }, + { + "$ref": "#/components/parameters/msearch_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch_template#200" + } + } + }, + "post": { + "tags": [ + "msearch_template" + ], + "summary": "Allows to execute several search template operations in one request.", + "description": "Allows to execute several search template operations in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html" + }, + "operationId": "msearch-template-3", + "parameters": [ + { + "$ref": "#/components/parameters/msearch_template#index" + }, + { + "$ref": "#/components/parameters/msearch_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/msearch_template#max_concurrent_searches" + }, + { + "$ref": "#/components/parameters/msearch_template#search_type" + }, + { + "$ref": "#/components/parameters/msearch_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/msearch_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/msearch_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/msearch_template#200" + } + } + } + }, + "/_mtermvectors": { + "get": { + "tags": [ + "mtermvectors" + ], + "summary": "Returns multiple termvectors in one request.", + "description": "Returns multiple termvectors in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html" + }, + "operationId": "mtermvectors", + "parameters": [ + { + "$ref": "#/components/parameters/mtermvectors#ids" + }, + { + "$ref": "#/components/parameters/mtermvectors#fields" + }, + { + "$ref": "#/components/parameters/mtermvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#offsets" + }, + { + "$ref": "#/components/parameters/mtermvectors#payloads" + }, + { + "$ref": "#/components/parameters/mtermvectors#positions" + }, + { + "$ref": "#/components/parameters/mtermvectors#preference" + }, + { + "$ref": "#/components/parameters/mtermvectors#realtime" + }, + { + "$ref": "#/components/parameters/mtermvectors#routing" + }, + { + "$ref": "#/components/parameters/mtermvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#version" + }, + { + "$ref": "#/components/parameters/mtermvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mtermvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mtermvectors#200" + } + } + }, + "post": { + "tags": [ + "mtermvectors" + ], + "summary": "Returns multiple termvectors in one request.", + "description": "Returns multiple termvectors in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html" + }, + "operationId": "mtermvectors-1", + "parameters": [ + { + "$ref": "#/components/parameters/mtermvectors#ids" + }, + { + "$ref": "#/components/parameters/mtermvectors#fields" + }, + { + "$ref": "#/components/parameters/mtermvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#offsets" + }, + { + "$ref": "#/components/parameters/mtermvectors#payloads" + }, + { + "$ref": "#/components/parameters/mtermvectors#positions" + }, + { + "$ref": "#/components/parameters/mtermvectors#preference" + }, + { + "$ref": "#/components/parameters/mtermvectors#realtime" + }, + { + "$ref": "#/components/parameters/mtermvectors#routing" + }, + { + "$ref": "#/components/parameters/mtermvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#version" + }, + { + "$ref": "#/components/parameters/mtermvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mtermvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mtermvectors#200" + } + } + } + }, + "/{index}/_mtermvectors": { + "get": { + "tags": [ + "mtermvectors" + ], + "summary": "Returns multiple termvectors in one request.", + "description": "Returns multiple termvectors in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html" + }, + "operationId": "mtermvectors-2", + "parameters": [ + { + "$ref": "#/components/parameters/mtermvectors#index" + }, + { + "$ref": "#/components/parameters/mtermvectors#ids" + }, + { + "$ref": "#/components/parameters/mtermvectors#fields" + }, + { + "$ref": "#/components/parameters/mtermvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#offsets" + }, + { + "$ref": "#/components/parameters/mtermvectors#payloads" + }, + { + "$ref": "#/components/parameters/mtermvectors#positions" + }, + { + "$ref": "#/components/parameters/mtermvectors#preference" + }, + { + "$ref": "#/components/parameters/mtermvectors#realtime" + }, + { + "$ref": "#/components/parameters/mtermvectors#routing" + }, + { + "$ref": "#/components/parameters/mtermvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#version" + }, + { + "$ref": "#/components/parameters/mtermvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mtermvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mtermvectors#200" + } + } + }, + "post": { + "tags": [ + "mtermvectors" + ], + "summary": "Returns multiple termvectors in one request.", + "description": "Returns multiple termvectors in one request.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-multi-termvectors.html" + }, + "operationId": "mtermvectors-3", + "parameters": [ + { + "$ref": "#/components/parameters/mtermvectors#index" + }, + { + "$ref": "#/components/parameters/mtermvectors#ids" + }, + { + "$ref": "#/components/parameters/mtermvectors#fields" + }, + { + "$ref": "#/components/parameters/mtermvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#offsets" + }, + { + "$ref": "#/components/parameters/mtermvectors#payloads" + }, + { + "$ref": "#/components/parameters/mtermvectors#positions" + }, + { + "$ref": "#/components/parameters/mtermvectors#preference" + }, + { + "$ref": "#/components/parameters/mtermvectors#realtime" + }, + { + "$ref": "#/components/parameters/mtermvectors#routing" + }, + { + "$ref": "#/components/parameters/mtermvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/mtermvectors#version" + }, + { + "$ref": "#/components/parameters/mtermvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/mtermvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/mtermvectors#200" + } + } + } + }, + "/{index}/_pit": { + "post": { + "tags": [ + "open_point_in_time" + ], + "summary": "Open a point in time that can be used in subsequent searches", + "description": "Open a point in time that can be used in subsequent searches", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html" + }, + "operationId": "open-point-in-time", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "A comma-separated list of index names to open point in time; use `_all` or empty string to perform the operation on all indices", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "keep_alive", + "description": "Extends the time to live of the corresponding point in time.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`. Valid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "required": [ + "id" + ] + } + } + } + } + } + } + }, + "/_scripts/{id}/{context}": { + "put": { + "tags": [ + "put_script" + ], + "summary": "Creates or updates a script.", + "description": "Creates or updates a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "put-script-2", + "parameters": [ + { + "$ref": "#/components/parameters/put_script#id" + }, + { + "$ref": "#/components/parameters/put_script#context" + }, + { + "$ref": "#/components/parameters/put_script#master_timeout" + }, + { + "$ref": "#/components/parameters/put_script#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/put_script" + }, + "responses": { + "200": { + "$ref": "#/components/responses/put_script#200" + } + } + }, + "post": { + "tags": [ + "put_script" + ], + "summary": "Creates or updates a script.", + "description": "Creates or updates a script.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html" + }, + "operationId": "put-script-3", + "parameters": [ + { + "$ref": "#/components/parameters/put_script#id" + }, + { + "$ref": "#/components/parameters/put_script#context" + }, + { + "$ref": "#/components/parameters/put_script#master_timeout" + }, + { + "$ref": "#/components/parameters/put_script#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/put_script" + }, + "responses": { + "200": { + "$ref": "#/components/responses/put_script#200" + } + } + } + }, + "/_query_rules/{ruleset_id}": { + "get": { + "tags": [ + "query_ruleset.get" + ], + "summary": "Returns the details about a query ruleset.", + "description": "Returns the details about a query ruleset.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-query-ruleset.html" + }, + "operationId": "query-ruleset-get", + "parameters": [ + { + "in": "path", + "name": "ruleset_id", + "description": "The unique identifier of the query ruleset", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRuleset" + } + } + } + } + } + }, + "put": { + "tags": [ + "query_ruleset.put" + ], + "summary": "Creates or updates a query ruleset.", + "description": "Creates or updates a query ruleset.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-query-ruleset.html" + }, + "operationId": "query-ruleset-put", + "parameters": [ + { + "in": "path", + "name": "ruleset_id", + "description": "The unique identifier of the query ruleset to be created or updated", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRule" + } + } + }, + "required": [ + "rules" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/_types:Result" + } + }, + "required": [ + "result" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "query_ruleset.delete" + ], + "summary": "Deletes a query ruleset.", + "description": "Deletes a query ruleset.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-query-ruleset.html" + }, + "operationId": "query-ruleset-delete", + "parameters": [ + { + "in": "path", + "name": "ruleset_id", + "description": "The unique identifier of the query ruleset to delete", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_query_rules": { + "get": { + "tags": [ + "query_ruleset.list" + ], + "summary": "Lists query rulesets.", + "description": "Lists query rulesets.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/list-query-rulesets.html" + }, + "operationId": "query-ruleset-list", + "parameters": [ + { + "in": "query", + "name": "from", + "description": "Starting offset (default: 0)", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "specifies a max number of results to get", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/query_ruleset.list:QueryRulesetListItem" + } + } + }, + "required": [ + "count", + "results" + ] + } + } + } + } + } + } + }, + "/_rank_eval": { + "get": { + "tags": [ + "rank_eval" + ], + "summary": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "description": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html" + }, + "operationId": "rank-eval", + "parameters": [ + { + "$ref": "#/components/parameters/rank_eval#allow_no_indices" + }, + { + "$ref": "#/components/parameters/rank_eval#expand_wildcards" + }, + { + "$ref": "#/components/parameters/rank_eval#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/rank_eval#search_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/rank_eval" + }, + "responses": { + "200": { + "$ref": "#/components/responses/rank_eval#200" + } + } + }, + "post": { + "tags": [ + "rank_eval" + ], + "summary": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "description": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html" + }, + "operationId": "rank-eval-1", + "parameters": [ + { + "$ref": "#/components/parameters/rank_eval#allow_no_indices" + }, + { + "$ref": "#/components/parameters/rank_eval#expand_wildcards" + }, + { + "$ref": "#/components/parameters/rank_eval#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/rank_eval#search_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/rank_eval" + }, + "responses": { + "200": { + "$ref": "#/components/responses/rank_eval#200" + } + } + } + }, + "/{index}/_rank_eval": { + "get": { + "tags": [ + "rank_eval" + ], + "summary": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "description": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html" + }, + "operationId": "rank-eval-2", + "parameters": [ + { + "$ref": "#/components/parameters/rank_eval#index" + }, + { + "$ref": "#/components/parameters/rank_eval#allow_no_indices" + }, + { + "$ref": "#/components/parameters/rank_eval#expand_wildcards" + }, + { + "$ref": "#/components/parameters/rank_eval#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/rank_eval#search_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/rank_eval" + }, + "responses": { + "200": { + "$ref": "#/components/responses/rank_eval#200" + } + } + }, + "post": { + "tags": [ + "rank_eval" + ], + "summary": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "description": "Allows to evaluate the quality of ranked search results over a set of typical search queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-rank-eval.html" + }, + "operationId": "rank-eval-3", + "parameters": [ + { + "$ref": "#/components/parameters/rank_eval#index" + }, + { + "$ref": "#/components/parameters/rank_eval#allow_no_indices" + }, + { + "$ref": "#/components/parameters/rank_eval#expand_wildcards" + }, + { + "$ref": "#/components/parameters/rank_eval#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/rank_eval#search_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/rank_eval" + }, + "responses": { + "200": { + "$ref": "#/components/responses/rank_eval#200" + } + } + } + }, + "/_reindex": { + "post": { + "tags": [ + "reindex" + ], + "summary": "Allows to copy documents from one index to another, optionally filtering the source\ndocuments by a query, changing the destination index settings, or fetching the\ndocuments from a remote cluster.", + "description": "Allows to copy documents from one index to another, optionally filtering the source\ndocuments by a query, changing the destination index settings, or fetching the\ndocuments from a remote cluster.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html" + }, + "operationId": "reindex", + "parameters": [ + { + "in": "query", + "name": "refresh", + "description": "If `true`, the request refreshes affected shards to make this operation visible to search.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "requests_per_second", + "description": "The throttle for this request in sub-requests per second.\nDefaults to no throttle.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "scroll", + "description": "Specifies how long a consistent view of the index should be maintained for scrolled search.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "slices", + "description": "The number of slices this task should be divided into.\nDefaults to 1 slice, meaning the task isn’t sliced into subtasks.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Slices" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period each indexing waits for automatic index creation, dynamic mapping updates, and waiting for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If `true`, the request blocks until the operation is complete.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "require_alias", + "description": "If `true`, the destination must be an index alias.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "conflicts": { + "$ref": "#/components/schemas/_types:Conflicts" + }, + "dest": { + "$ref": "#/components/schemas/_global.reindex:Destination" + }, + "max_docs": { + "description": "The maximum number of documents to reindex.", + "type": "number" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "size": { + "type": "number" + }, + "source": { + "$ref": "#/components/schemas/_global.reindex:Source" + } + }, + "required": [ + "dest", + "source" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "batches": { + "type": "number" + }, + "created": { + "type": "number" + }, + "deleted": { + "type": "number" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:BulkIndexByScrollFailure" + } + }, + "noops": { + "type": "number" + }, + "retries": { + "$ref": "#/components/schemas/_types:Retries" + }, + "requests_per_second": { + "type": "number" + }, + "slice_id": { + "type": "number" + }, + "task": { + "$ref": "#/components/schemas/_types:TaskId" + }, + "throttled_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "throttled_until_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "timed_out": { + "type": "boolean" + }, + "took": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "total": { + "type": "number" + }, + "updated": { + "type": "number" + }, + "version_conflicts": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "/_render/template": { + "get": { + "tags": [ + "render_search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/render-search-template-api.html" + }, + "operationId": "render-search-template", + "requestBody": { + "$ref": "#/components/requestBodies/render_search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/render_search_template#200" + } + } + }, + "post": { + "tags": [ + "render_search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/render-search-template-api.html" + }, + "operationId": "render-search-template-1", + "requestBody": { + "$ref": "#/components/requestBodies/render_search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/render_search_template#200" + } + } + } + }, + "/_render/template/{id}": { + "get": { + "tags": [ + "render_search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/render-search-template-api.html" + }, + "operationId": "render-search-template-2", + "parameters": [ + { + "$ref": "#/components/parameters/render_search_template#id" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/render_search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/render_search_template#200" + } + } + }, + "post": { + "tags": [ + "render_search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/render-search-template-api.html" + }, + "operationId": "render-search-template-3", + "parameters": [ + { + "$ref": "#/components/parameters/render_search_template#id" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/render_search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/render_search_template#200" + } + } + } + }, + "/_scripts/painless/_execute": { + "get": { + "tags": [ + "scripts_painless_execute" + ], + "summary": "Allows an arbitrary script to be executed and a result to be returned", + "description": "Allows an arbitrary script to be executed and a result to be returned", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-execute-api.html" + }, + "operationId": "scripts-painless-execute", + "requestBody": { + "$ref": "#/components/requestBodies/scripts_painless_execute" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scripts_painless_execute#200" + } + } + }, + "post": { + "tags": [ + "scripts_painless_execute" + ], + "summary": "Allows an arbitrary script to be executed and a result to be returned", + "description": "Allows an arbitrary script to be executed and a result to be returned", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-execute-api.html" + }, + "operationId": "scripts-painless-execute-1", + "requestBody": { + "$ref": "#/components/requestBodies/scripts_painless_execute" + }, + "responses": { + "200": { + "$ref": "#/components/responses/scripts_painless_execute#200" + } + } + } + }, + "/_search": { + "get": { + "tags": [ + "search" + ], + "summary": "Returns results matching a query.", + "description": "Returns results matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html" + }, + "operationId": "search", + "parameters": [ + { + "$ref": "#/components/parameters/search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/search#analyzer" + }, + { + "$ref": "#/components/parameters/search#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/search#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/search#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search#default_operator" + }, + { + "$ref": "#/components/parameters/search#df" + }, + { + "$ref": "#/components/parameters/search#docvalue_fields" + }, + { + "$ref": "#/components/parameters/search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search#explain" + }, + { + "$ref": "#/components/parameters/search#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search#lenient" + }, + { + "$ref": "#/components/parameters/search#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/search#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/search#preference" + }, + { + "$ref": "#/components/parameters/search#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/search#request_cache" + }, + { + "$ref": "#/components/parameters/search#routing" + }, + { + "$ref": "#/components/parameters/search#scroll" + }, + { + "$ref": "#/components/parameters/search#search_type" + }, + { + "$ref": "#/components/parameters/search#stats" + }, + { + "$ref": "#/components/parameters/search#stored_fields" + }, + { + "$ref": "#/components/parameters/search#suggest_field" + }, + { + "$ref": "#/components/parameters/search#suggest_mode" + }, + { + "$ref": "#/components/parameters/search#suggest_size" + }, + { + "$ref": "#/components/parameters/search#suggest_text" + }, + { + "$ref": "#/components/parameters/search#terminate_after" + }, + { + "$ref": "#/components/parameters/search#timeout" + }, + { + "$ref": "#/components/parameters/search#track_total_hits" + }, + { + "$ref": "#/components/parameters/search#track_scores" + }, + { + "$ref": "#/components/parameters/search#typed_keys" + }, + { + "$ref": "#/components/parameters/search#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search#version" + }, + { + "$ref": "#/components/parameters/search#_source" + }, + { + "$ref": "#/components/parameters/search#_source_excludes" + }, + { + "$ref": "#/components/parameters/search#_source_includes" + }, + { + "$ref": "#/components/parameters/search#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/search#q" + }, + { + "$ref": "#/components/parameters/search#size" + }, + { + "$ref": "#/components/parameters/search#from" + }, + { + "$ref": "#/components/parameters/search#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search#200" + } + } + }, + "post": { + "tags": [ + "search" + ], + "summary": "Returns results matching a query.", + "description": "Returns results matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html" + }, + "operationId": "search-1", + "parameters": [ + { + "$ref": "#/components/parameters/search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/search#analyzer" + }, + { + "$ref": "#/components/parameters/search#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/search#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/search#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search#default_operator" + }, + { + "$ref": "#/components/parameters/search#df" + }, + { + "$ref": "#/components/parameters/search#docvalue_fields" + }, + { + "$ref": "#/components/parameters/search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search#explain" + }, + { + "$ref": "#/components/parameters/search#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search#lenient" + }, + { + "$ref": "#/components/parameters/search#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/search#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/search#preference" + }, + { + "$ref": "#/components/parameters/search#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/search#request_cache" + }, + { + "$ref": "#/components/parameters/search#routing" + }, + { + "$ref": "#/components/parameters/search#scroll" + }, + { + "$ref": "#/components/parameters/search#search_type" + }, + { + "$ref": "#/components/parameters/search#stats" + }, + { + "$ref": "#/components/parameters/search#stored_fields" + }, + { + "$ref": "#/components/parameters/search#suggest_field" + }, + { + "$ref": "#/components/parameters/search#suggest_mode" + }, + { + "$ref": "#/components/parameters/search#suggest_size" + }, + { + "$ref": "#/components/parameters/search#suggest_text" + }, + { + "$ref": "#/components/parameters/search#terminate_after" + }, + { + "$ref": "#/components/parameters/search#timeout" + }, + { + "$ref": "#/components/parameters/search#track_total_hits" + }, + { + "$ref": "#/components/parameters/search#track_scores" + }, + { + "$ref": "#/components/parameters/search#typed_keys" + }, + { + "$ref": "#/components/parameters/search#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search#version" + }, + { + "$ref": "#/components/parameters/search#_source" + }, + { + "$ref": "#/components/parameters/search#_source_excludes" + }, + { + "$ref": "#/components/parameters/search#_source_includes" + }, + { + "$ref": "#/components/parameters/search#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/search#q" + }, + { + "$ref": "#/components/parameters/search#size" + }, + { + "$ref": "#/components/parameters/search#from" + }, + { + "$ref": "#/components/parameters/search#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search#200" + } + } + } + }, + "/{index}/_search": { + "get": { + "tags": [ + "search" + ], + "summary": "Returns results matching a query.", + "description": "Returns results matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html" + }, + "operationId": "search-2", + "parameters": [ + { + "$ref": "#/components/parameters/search#index" + }, + { + "$ref": "#/components/parameters/search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/search#analyzer" + }, + { + "$ref": "#/components/parameters/search#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/search#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/search#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search#default_operator" + }, + { + "$ref": "#/components/parameters/search#df" + }, + { + "$ref": "#/components/parameters/search#docvalue_fields" + }, + { + "$ref": "#/components/parameters/search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search#explain" + }, + { + "$ref": "#/components/parameters/search#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search#lenient" + }, + { + "$ref": "#/components/parameters/search#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/search#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/search#preference" + }, + { + "$ref": "#/components/parameters/search#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/search#request_cache" + }, + { + "$ref": "#/components/parameters/search#routing" + }, + { + "$ref": "#/components/parameters/search#scroll" + }, + { + "$ref": "#/components/parameters/search#search_type" + }, + { + "$ref": "#/components/parameters/search#stats" + }, + { + "$ref": "#/components/parameters/search#stored_fields" + }, + { + "$ref": "#/components/parameters/search#suggest_field" + }, + { + "$ref": "#/components/parameters/search#suggest_mode" + }, + { + "$ref": "#/components/parameters/search#suggest_size" + }, + { + "$ref": "#/components/parameters/search#suggest_text" + }, + { + "$ref": "#/components/parameters/search#terminate_after" + }, + { + "$ref": "#/components/parameters/search#timeout" + }, + { + "$ref": "#/components/parameters/search#track_total_hits" + }, + { + "$ref": "#/components/parameters/search#track_scores" + }, + { + "$ref": "#/components/parameters/search#typed_keys" + }, + { + "$ref": "#/components/parameters/search#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search#version" + }, + { + "$ref": "#/components/parameters/search#_source" + }, + { + "$ref": "#/components/parameters/search#_source_excludes" + }, + { + "$ref": "#/components/parameters/search#_source_includes" + }, + { + "$ref": "#/components/parameters/search#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/search#q" + }, + { + "$ref": "#/components/parameters/search#size" + }, + { + "$ref": "#/components/parameters/search#from" + }, + { + "$ref": "#/components/parameters/search#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search#200" + } + } + }, + "post": { + "tags": [ + "search" + ], + "summary": "Returns results matching a query.", + "description": "Returns results matching a query.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html" + }, + "operationId": "search-3", + "parameters": [ + { + "$ref": "#/components/parameters/search#index" + }, + { + "$ref": "#/components/parameters/search#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search#allow_partial_search_results" + }, + { + "$ref": "#/components/parameters/search#analyzer" + }, + { + "$ref": "#/components/parameters/search#analyze_wildcard" + }, + { + "$ref": "#/components/parameters/search#batched_reduce_size" + }, + { + "$ref": "#/components/parameters/search#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search#default_operator" + }, + { + "$ref": "#/components/parameters/search#df" + }, + { + "$ref": "#/components/parameters/search#docvalue_fields" + }, + { + "$ref": "#/components/parameters/search#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search#explain" + }, + { + "$ref": "#/components/parameters/search#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search#lenient" + }, + { + "$ref": "#/components/parameters/search#max_concurrent_shard_requests" + }, + { + "$ref": "#/components/parameters/search#min_compatible_shard_node" + }, + { + "$ref": "#/components/parameters/search#preference" + }, + { + "$ref": "#/components/parameters/search#pre_filter_shard_size" + }, + { + "$ref": "#/components/parameters/search#request_cache" + }, + { + "$ref": "#/components/parameters/search#routing" + }, + { + "$ref": "#/components/parameters/search#scroll" + }, + { + "$ref": "#/components/parameters/search#search_type" + }, + { + "$ref": "#/components/parameters/search#stats" + }, + { + "$ref": "#/components/parameters/search#stored_fields" + }, + { + "$ref": "#/components/parameters/search#suggest_field" + }, + { + "$ref": "#/components/parameters/search#suggest_mode" + }, + { + "$ref": "#/components/parameters/search#suggest_size" + }, + { + "$ref": "#/components/parameters/search#suggest_text" + }, + { + "$ref": "#/components/parameters/search#terminate_after" + }, + { + "$ref": "#/components/parameters/search#timeout" + }, + { + "$ref": "#/components/parameters/search#track_total_hits" + }, + { + "$ref": "#/components/parameters/search#track_scores" + }, + { + "$ref": "#/components/parameters/search#typed_keys" + }, + { + "$ref": "#/components/parameters/search#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search#version" + }, + { + "$ref": "#/components/parameters/search#_source" + }, + { + "$ref": "#/components/parameters/search#_source_excludes" + }, + { + "$ref": "#/components/parameters/search#_source_includes" + }, + { + "$ref": "#/components/parameters/search#seq_no_primary_term" + }, + { + "$ref": "#/components/parameters/search#q" + }, + { + "$ref": "#/components/parameters/search#size" + }, + { + "$ref": "#/components/parameters/search#from" + }, + { + "$ref": "#/components/parameters/search#sort" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search#200" + } + } + } + }, + "/_application/search_application/{name}": { + "get": { + "tags": [ + "search_application.get" + ], + "summary": "Returns the details about a search application.", + "description": "Returns the details about a search application.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-search-application.html" + }, + "operationId": "search-application-get", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "The name of the search application", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/search_application._types:SearchApplication" + } + } + } + } + } + }, + "put": { + "tags": [ + "search_application.put" + ], + "summary": "Creates or updates a search application.", + "description": "Creates or updates a search application.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-search-application.html" + }, + "operationId": "search-application-put", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "The name of the search application to be created or updated.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "create", + "description": "If `true`, this request cannot replace or update existing Search Applications.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/search_application._types:SearchApplication" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/_types:Result" + } + }, + "required": [ + "result" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "search_application.delete" + ], + "summary": "Deletes a search application.", + "description": "Deletes a search application.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-search-application.html" + }, + "operationId": "search-application-delete", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "The name of the search application to delete", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_application/analytics/{name}": { + "get": { + "tags": [ + "search_application.get_behavioral_analytics" + ], + "summary": "Returns the existing behavioral analytics collections.", + "description": "Returns the existing behavioral analytics collections.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/list-analytics-collection.html" + }, + "operationId": "search-application-get-behavioral-analytics-1", + "parameters": [ + { + "$ref": "#/components/parameters/search_application.get_behavioral_analytics#name" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/search_application.get_behavioral_analytics#200" + } + } + }, + "put": { + "tags": [ + "search_application.put_behavioral_analytics" + ], + "summary": "Creates a behavioral analytics collection.", + "description": "Creates a behavioral analytics collection.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-analytics-collection.html" + }, + "operationId": "search-application-put-behavioral-analytics", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "The name of the analytics collection to be created or updated.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/search_application.put_behavioral_analytics:AnalyticsAcknowledgeResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "search_application.delete_behavioral_analytics" + ], + "summary": "Delete a behavioral analytics collection.", + "description": "Delete a behavioral analytics collection.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-analytics-collection.html" + }, + "operationId": "search-application-delete-behavioral-analytics", + "parameters": [ + { + "in": "path", + "name": "name", + "description": "The name of the analytics collection to be deleted", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_application/analytics": { + "get": { + "tags": [ + "search_application.get_behavioral_analytics" + ], + "summary": "Returns the existing behavioral analytics collections.", + "description": "Returns the existing behavioral analytics collections.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/list-analytics-collection.html" + }, + "operationId": "search-application-get-behavioral-analytics", + "responses": { + "200": { + "$ref": "#/components/responses/search_application.get_behavioral_analytics#200" + } + } + } + }, + "/_application/search_application": { + "get": { + "tags": [ + "search_application.list" + ], + "summary": "Returns the existing search applications.", + "description": "Returns the existing search applications.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/list-search-applications.html" + }, + "operationId": "search-application-list", + "parameters": [ + { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Starting offset.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "Specifies a max number of results to get.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/search_application.list:SearchApplicationListItem" + } + } + }, + "required": [ + "count", + "results" + ] + } + } + } + } + } + } + }, + "/_application/search_application/{name}/_search": { + "get": { + "tags": [ + "search_application.search" + ], + "summary": "Perform a search against a search application", + "description": "Perform a search against a search application", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-application-search.html" + }, + "operationId": "search-application-search", + "parameters": [ + { + "$ref": "#/components/parameters/search_application.search#name" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_application.search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_application.search#200" + } + } + }, + "post": { + "tags": [ + "search_application.search" + ], + "summary": "Perform a search against a search application", + "description": "Perform a search against a search application", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-application-search.html" + }, + "operationId": "search-application-search-1", + "parameters": [ + { + "$ref": "#/components/parameters/search_application.search#name" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_application.search" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_application.search#200" + } + } + } + }, + "/{index}/_mvt/{field}/{zoom}/{x}/{y}": { + "get": { + "tags": [ + "search_mvt" + ], + "summary": "Searches a vector tile for geospatial values. Returns results as a binary Mapbox vector tile.", + "description": "Searches a vector tile for geospatial values. Returns results as a binary Mapbox vector tile.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-vector-tile-api.html" + }, + "operationId": "search-mvt-1", + "parameters": [ + { + "$ref": "#/components/parameters/search_mvt#index" + }, + { + "$ref": "#/components/parameters/search_mvt#field" + }, + { + "$ref": "#/components/parameters/search_mvt#zoom" + }, + { + "$ref": "#/components/parameters/search_mvt#x" + }, + { + "$ref": "#/components/parameters/search_mvt#y" + }, + { + "$ref": "#/components/parameters/search_mvt#exact_bounds" + }, + { + "$ref": "#/components/parameters/search_mvt#extent" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_agg" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_precision" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_type" + }, + { + "$ref": "#/components/parameters/search_mvt#size" + }, + { + "$ref": "#/components/parameters/search_mvt#with_labels" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_mvt" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_mvt#200" + } + } + }, + "post": { + "tags": [ + "search_mvt" + ], + "summary": "Searches a vector tile for geospatial values. Returns results as a binary Mapbox vector tile.", + "description": "Searches a vector tile for geospatial values. Returns results as a binary Mapbox vector tile.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/search-vector-tile-api.html" + }, + "operationId": "search-mvt", + "parameters": [ + { + "$ref": "#/components/parameters/search_mvt#index" + }, + { + "$ref": "#/components/parameters/search_mvt#field" + }, + { + "$ref": "#/components/parameters/search_mvt#zoom" + }, + { + "$ref": "#/components/parameters/search_mvt#x" + }, + { + "$ref": "#/components/parameters/search_mvt#y" + }, + { + "$ref": "#/components/parameters/search_mvt#exact_bounds" + }, + { + "$ref": "#/components/parameters/search_mvt#extent" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_agg" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_precision" + }, + { + "$ref": "#/components/parameters/search_mvt#grid_type" + }, + { + "$ref": "#/components/parameters/search_mvt#size" + }, + { + "$ref": "#/components/parameters/search_mvt#with_labels" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_mvt" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_mvt#200" + } + } + } + }, + "/_search/template": { + "get": { + "tags": [ + "search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html" + }, + "operationId": "search-template", + "parameters": [ + { + "$ref": "#/components/parameters/search_template#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search_template#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search_template#explain" + }, + { + "$ref": "#/components/parameters/search_template#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search_template#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search_template#preference" + }, + { + "$ref": "#/components/parameters/search_template#profile" + }, + { + "$ref": "#/components/parameters/search_template#routing" + }, + { + "$ref": "#/components/parameters/search_template#scroll" + }, + { + "$ref": "#/components/parameters/search_template#search_type" + }, + { + "$ref": "#/components/parameters/search_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_template#200" + } + } + }, + "post": { + "tags": [ + "search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html" + }, + "operationId": "search-template-1", + "parameters": [ + { + "$ref": "#/components/parameters/search_template#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search_template#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search_template#explain" + }, + { + "$ref": "#/components/parameters/search_template#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search_template#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search_template#preference" + }, + { + "$ref": "#/components/parameters/search_template#profile" + }, + { + "$ref": "#/components/parameters/search_template#routing" + }, + { + "$ref": "#/components/parameters/search_template#scroll" + }, + { + "$ref": "#/components/parameters/search_template#search_type" + }, + { + "$ref": "#/components/parameters/search_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_template#200" + } + } + } + }, + "/{index}/_search/template": { + "get": { + "tags": [ + "search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html" + }, + "operationId": "search-template-2", + "parameters": [ + { + "$ref": "#/components/parameters/search_template#index" + }, + { + "$ref": "#/components/parameters/search_template#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search_template#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search_template#explain" + }, + { + "$ref": "#/components/parameters/search_template#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search_template#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search_template#preference" + }, + { + "$ref": "#/components/parameters/search_template#profile" + }, + { + "$ref": "#/components/parameters/search_template#routing" + }, + { + "$ref": "#/components/parameters/search_template#scroll" + }, + { + "$ref": "#/components/parameters/search_template#search_type" + }, + { + "$ref": "#/components/parameters/search_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_template#200" + } + } + }, + "post": { + "tags": [ + "search_template" + ], + "summary": "Allows to use the Mustache language to pre-render a search definition.", + "description": "Allows to use the Mustache language to pre-render a search definition.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html" + }, + "operationId": "search-template-3", + "parameters": [ + { + "$ref": "#/components/parameters/search_template#index" + }, + { + "$ref": "#/components/parameters/search_template#allow_no_indices" + }, + { + "$ref": "#/components/parameters/search_template#ccs_minimize_roundtrips" + }, + { + "$ref": "#/components/parameters/search_template#expand_wildcards" + }, + { + "$ref": "#/components/parameters/search_template#explain" + }, + { + "$ref": "#/components/parameters/search_template#ignore_throttled" + }, + { + "$ref": "#/components/parameters/search_template#ignore_unavailable" + }, + { + "$ref": "#/components/parameters/search_template#preference" + }, + { + "$ref": "#/components/parameters/search_template#profile" + }, + { + "$ref": "#/components/parameters/search_template#routing" + }, + { + "$ref": "#/components/parameters/search_template#scroll" + }, + { + "$ref": "#/components/parameters/search_template#search_type" + }, + { + "$ref": "#/components/parameters/search_template#rest_total_hits_as_int" + }, + { + "$ref": "#/components/parameters/search_template#typed_keys" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/search_template" + }, + "responses": { + "200": { + "$ref": "#/components/responses/search_template#200" + } + } + } + }, + "/_security/_authenticate": { + "get": { + "tags": [ + "security.authenticate" + ], + "summary": "Enables authentication as a user and retrieve information about the authenticated user.", + "description": "Enables authentication as a user and retrieve information about the authenticated user.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-authenticate.html" + }, + "operationId": "security-authenticate", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "api_key": { + "$ref": "#/components/schemas/security._types:ApiKey" + }, + "authentication_realm": { + "$ref": "#/components/schemas/security._types:RealmInfo" + }, + "email": { + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "full_name": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:Name" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "lookup_realm": { + "$ref": "#/components/schemas/security._types:RealmInfo" + }, + "metadata": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "username": { + "$ref": "#/components/schemas/_types:Username" + }, + "enabled": { + "type": "boolean" + }, + "authentication_type": { + "type": "string" + }, + "token": { + "$ref": "#/components/schemas/security.authenticate:Token" + } + }, + "required": [ + "authentication_realm", + "lookup_realm", + "metadata", + "roles", + "username", + "enabled", + "authentication_type" + ] + } + } + } + } + } + } + }, + "/_security/api_key": { + "get": { + "tags": [ + "security.get_api_key" + ], + "summary": "Retrieves information for one or more API keys.", + "description": "Retrieves information for one or more API keys.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-api-key.html" + }, + "operationId": "security-get-api-key", + "parameters": [ + { + "in": "query", + "name": "id", + "description": "An API key id.\nThis parameter cannot be used with any of `name`, `realm_name` or `username`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "form" + }, + { + "in": "query", + "name": "name", + "description": "An API key name.\nThis parameter cannot be used with any of `id`, `realm_name` or `username`.\nIt supports prefix search with wildcard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "form" + }, + { + "in": "query", + "name": "owner", + "description": "A boolean flag that can be used to query API keys owned by the currently authenticated user.\nThe `realm_name` or `username` parameters cannot be specified when this parameter is set to `true` as they are assumed to be the currently authenticated ones.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "realm_name", + "description": "The name of an authentication realm.\nThis parameter cannot be used with either `id` or `name` or when `owner` flag is set to `true`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "form" + }, + { + "in": "query", + "name": "username", + "description": "The username of a user.\nThis parameter cannot be used with either `id` or `name` or when `owner` flag is set to `true`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Username" + }, + "style": "form" + }, + { + "in": "query", + "name": "with_limited_by", + "description": "Return the snapshot of the owner user's role descriptors\nassociated with the API key. An API key's actual\npermission is the intersection of its assigned role\ndescriptors and the owner user's role descriptors.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "api_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:ApiKey" + } + } + }, + "required": [ + "api_keys" + ] + } + } + } + } + } + }, + "put": { + "tags": [ + "security.create_api_key" + ], + "summary": "Creates an API key for access without requiring basic authentication.", + "description": "Creates an API key for access without requiring basic authentication.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html" + }, + "operationId": "security-create-api-key", + "parameters": [ + { + "$ref": "#/components/parameters/security.create_api_key#refresh" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.create_api_key" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.create_api_key#200" + } + } + }, + "post": { + "tags": [ + "security.create_api_key" + ], + "summary": "Creates an API key for access without requiring basic authentication.", + "description": "Creates an API key for access without requiring basic authentication.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html" + }, + "operationId": "security-create-api-key-1", + "parameters": [ + { + "$ref": "#/components/parameters/security.create_api_key#refresh" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.create_api_key" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.create_api_key#200" + } + } + }, + "delete": { + "tags": [ + "security.invalidate_api_key" + ], + "summary": "Invalidates one or more API keys.", + "description": "Invalidates one or more API keys.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-api-key.html" + }, + "operationId": "security-invalidate-api-key", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "ids": { + "description": "A list of API key ids.\nThis parameter cannot be used with any of `name`, `realm_name`, or `username`.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "owner": { + "description": "Can be used to query API keys owned by the currently authenticated user.\nThe `realm_name` or `username` parameters cannot be specified when this parameter is set to `true` as they are assumed to be the currently authenticated ones.", + "type": "boolean" + }, + "realm_name": { + "description": "The name of an authentication realm.\nThis parameter cannot be used with either `ids` or `name`, or when `owner` flag is set to `true`.", + "type": "string" + }, + "username": { + "$ref": "#/components/schemas/_types:Username" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error_count": { + "type": "number" + }, + "error_details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ErrorCause" + } + }, + "invalidated_api_keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "previously_invalidated_api_keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "error_count", + "invalidated_api_keys", + "previously_invalidated_api_keys" + ] + } + } + } + } + } + } + }, + "/_security/user/_has_privileges": { + "get": { + "tags": [ + "security.has_privileges" + ], + "summary": "Determines whether the specified user has a specified list of privileges.", + "description": "Determines whether the specified user has a specified list of privileges.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html" + }, + "operationId": "security-has-privileges", + "requestBody": { + "$ref": "#/components/requestBodies/security.has_privileges" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.has_privileges#200" + } + } + }, + "post": { + "tags": [ + "security.has_privileges" + ], + "summary": "Determines whether the specified user has a specified list of privileges.", + "description": "Determines whether the specified user has a specified list of privileges.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html" + }, + "operationId": "security-has-privileges-1", + "requestBody": { + "$ref": "#/components/requestBodies/security.has_privileges" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.has_privileges#200" + } + } + } + }, + "/_security/user/{user}/_has_privileges": { + "get": { + "tags": [ + "security.has_privileges" + ], + "summary": "Determines whether the specified user has a specified list of privileges.", + "description": "Determines whether the specified user has a specified list of privileges.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html" + }, + "operationId": "security-has-privileges-2", + "parameters": [ + { + "$ref": "#/components/parameters/security.has_privileges#user" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.has_privileges" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.has_privileges#200" + } + } + }, + "post": { + "tags": [ + "security.has_privileges" + ], + "summary": "Determines whether the specified user has a specified list of privileges.", + "description": "Determines whether the specified user has a specified list of privileges.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-has-privileges.html" + }, + "operationId": "security-has-privileges-3", + "parameters": [ + { + "$ref": "#/components/parameters/security.has_privileges#user" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.has_privileges" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.has_privileges#200" + } + } + } + }, + "/_security/_query/api_key": { + "get": { + "tags": [ + "security.query_api_keys" + ], + "summary": "Retrieves information for API keys using a subset of query DSL", + "description": "Retrieves information for API keys using a subset of query DSL", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-api-key.html" + }, + "operationId": "security-query-api-keys", + "parameters": [ + { + "$ref": "#/components/parameters/security.query_api_keys#with_limited_by" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.query_api_keys" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.query_api_keys#200" + } + } + }, + "post": { + "tags": [ + "security.query_api_keys" + ], + "summary": "Retrieves information for API keys using a subset of query DSL", + "description": "Retrieves information for API keys using a subset of query DSL", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-query-api-key.html" + }, + "operationId": "security-query-api-keys-1", + "parameters": [ + { + "$ref": "#/components/parameters/security.query_api_keys#with_limited_by" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/security.query_api_keys" + }, + "responses": { + "200": { + "$ref": "#/components/responses/security.query_api_keys#200" + } + } + } + }, + "/_security/api_key/{id}": { + "put": { + "tags": [ + "security.update_api_key" + ], + "summary": "Updates attributes of an existing API key.", + "description": "Updates attributes of an existing API key.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-update-api-key.html" + }, + "operationId": "security-update-api-key", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "The ID of the API key to update.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role_descriptors": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role.html" + }, + "description": "An array of role descriptors for this API key. This parameter is optional. When it is not specified or is an empty array, then the API key will have a point in time snapshot of permissions of the authenticated user. If you supply role descriptors then the resultant permissions would be an intersection of API keys permissions and authenticated user’s permissions thereby limiting the access scope for API keys. The structure of role descriptor is the same as the request for create role API. For more details, see create or update roles API.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security._types:RoleDescriptor" + } + }, + "metadata": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "updated": { + "description": "If `true`, the API key was updated.\nIf `false`, the API key didn’t change because no change was detected.", + "type": "boolean" + } + }, + "required": [ + "updated" + ] + } + } + } + } + } + } + }, + "/_sql/close": { + "post": { + "tags": [ + "sql.clear_cursor" + ], + "summary": "Clears the SQL cursor", + "description": "Clears the SQL cursor", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-sql-cursor-api.html" + }, + "operationId": "sql-clear-cursor", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cursor": { + "description": "Cursor to clear.", + "type": "string" + } + }, + "required": [ + "cursor" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "succeeded": { + "type": "boolean" + } + }, + "required": [ + "succeeded" + ] + } + } + } + } + } + } + }, + "/_sql/async/delete/{id}": { + "delete": { + "tags": [ + "sql.delete_async" + ], + "summary": "Deletes an async SQL search or a stored synchronous SQL search. If the search is still running, the API cancels it.", + "description": "Deletes an async SQL search or a stored synchronous SQL search. If the search is still running, the API cancels it.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-async-sql-search-api.html" + }, + "operationId": "sql-delete-async", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_sql/async/{id}": { + "get": { + "tags": [ + "sql.get_async" + ], + "summary": "Returns the current status and available results for an async SQL search or stored synchronous SQL search", + "description": "Returns the current status and available results for an async SQL search or stored synchronous SQL search", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-async-sql-search-api.html" + }, + "operationId": "sql-get-async", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "delimiter", + "description": "Separator for CSV results. The API only supports this parameter for CSV responses.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "format", + "description": "Format for the response. You must specify a format using this parameter or the\nAccept HTTP header. If you specify both, the API uses this parameter.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "keep_alive", + "description": "Retention period for the search and its results. Defaults\nto the `keep_alive` period for the original SQL search.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion_timeout", + "description": "Period to wait for complete results. Defaults to no timeout,\nmeaning the request waits for complete search results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "is_running": { + "description": "If `true`, the search is still running. If false, the search has finished.\nThis value is only returned for async and saved synchronous searches. For\nCSV, TSV, and TXT responses, this value is returned in the `Async-partial`\nHTTP header.", + "type": "boolean" + }, + "is_partial": { + "description": "If `true`, the response does not contain complete search results. If `is_partial`\nis `true` and `is_running` is `true`, the search is still running. If `is_partial`\nis `true` but `is_running` is `false`, the results are partial due to a failure or\ntimeout. This value is only returned for async and saved synchronous searches.\nFor CSV, TSV, and TXT responses, this value is returned in the `Async-partial` HTTP header.", + "type": "boolean" + }, + "columns": { + "description": "Column headings for the search results. Each object is a column.", + "type": "array", + "items": { + "$ref": "#/components/schemas/sql:Column" + } + }, + "cursor": { + "description": "Cursor for the next set of paginated results. For CSV, TSV, and\nTXT responses, this value is returned in the `Cursor` HTTP header.", + "type": "string" + }, + "rows": { + "description": "Values for the search results.", + "type": "array", + "items": { + "$ref": "#/components/schemas/sql:Row" + } + } + }, + "required": [ + "id", + "is_running", + "is_partial", + "rows" + ] + } + } + } + } + } + } + }, + "/_sql/async/status/{id}": { + "get": { + "tags": [ + "sql.get_async_status" + ], + "summary": "Returns the current status of an async SQL search or a stored synchronous SQL search", + "description": "Returns the current status of an async SQL search or a stored synchronous SQL search", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-async-sql-search-status-api.html" + }, + "operationId": "sql-get-async-status", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "Identifier for the search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "description": "Identifier for the search.", + "type": "string" + }, + "is_running": { + "description": "If `true`, the search is still running. If `false`, the search has finished.", + "type": "boolean" + }, + "is_partial": { + "description": "If `true`, the response does not contain complete search results. If `is_partial`\nis `true` and `is_running` is `true`, the search is still running. If `is_partial`\nis `true` but `is_running` is `false`, the results are partial due to a failure or\ntimeout.", + "type": "boolean" + }, + "start_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "expiration_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "completion_status": { + "$ref": "#/components/schemas/_types:uint" + } + }, + "required": [ + "id", + "is_running", + "is_partial", + "start_time_in_millis", + "expiration_time_in_millis" + ] + } + } + } + } + } + } + }, + "/_sql": { + "get": { + "tags": [ + "sql.query" + ], + "summary": "Executes a SQL request", + "description": "Executes a SQL request", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html" + }, + "operationId": "sql-query-1", + "parameters": [ + { + "$ref": "#/components/parameters/sql.query#format" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/sql.query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/sql.query#200" + } + } + }, + "post": { + "tags": [ + "sql.query" + ], + "summary": "Executes a SQL request", + "description": "Executes a SQL request", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html" + }, + "operationId": "sql-query", + "parameters": [ + { + "$ref": "#/components/parameters/sql.query#format" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/sql.query" + }, + "responses": { + "200": { + "$ref": "#/components/responses/sql.query#200" + } + } + } + }, + "/_sql/translate": { + "get": { + "tags": [ + "sql.translate" + ], + "summary": "Translates SQL into Elasticsearch queries", + "description": "Translates SQL into Elasticsearch queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate-api.html" + }, + "operationId": "sql-translate-1", + "requestBody": { + "$ref": "#/components/requestBodies/sql.translate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/sql.translate#200" + } + } + }, + "post": { + "tags": [ + "sql.translate" + ], + "summary": "Translates SQL into Elasticsearch queries", + "description": "Translates SQL into Elasticsearch queries", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate-api.html" + }, + "operationId": "sql-translate", + "requestBody": { + "$ref": "#/components/requestBodies/sql.translate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/sql.translate#200" + } + } + } + }, + "/_synonyms/{id}": { + "get": { + "tags": [ + "synonyms.get_synonym" + ], + "summary": "Retrieves a synonym set", + "description": "Retrieves a synonym set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-synonyms-set.html" + }, + "operationId": "synonyms-get-synonym", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "\"The id of the synonyms set to be retrieved", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "from", + "description": "Starting offset for query rules to be retrieved", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "specifies a max number of query rules to retrieve", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "synonyms_set": { + "type": "array", + "items": { + "$ref": "#/components/schemas/synonyms._types:SynonymRuleRead" + } + } + }, + "required": [ + "count", + "synonyms_set" + ] + } + } + } + } + } + }, + "put": { + "tags": [ + "synonyms.put_synonym" + ], + "summary": "Creates or updates a synonyms set", + "description": "Creates or updates a synonyms set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-synonyms-set.html" + }, + "operationId": "synonyms-put-synonym", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "The id of the synonyms set to be created or updated", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "synonyms_set": { + "description": "The synonym set information to update", + "type": "array", + "items": { + "$ref": "#/components/schemas/synonyms._types:SynonymRule" + } + } + }, + "required": [ + "synonyms_set" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/_types:Result" + }, + "reload_analyzers_details": { + "$ref": "#/components/schemas/indices.reload_search_analyzers:ReloadDetails" + } + }, + "required": [ + "result", + "reload_analyzers_details" + ] + } + } + } + } + } + }, + "delete": { + "tags": [ + "synonyms.delete_synonym" + ], + "summary": "Deletes a synonym set", + "description": "Deletes a synonym set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-synonyms-set.html" + }, + "operationId": "synonyms-delete-synonym", + "parameters": [ + { + "in": "path", + "name": "id", + "description": "The id of the synonyms set to be deleted", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_synonyms/{set_id}/{rule_id}": { + "get": { + "tags": [ + "synonyms.get_synonym_rule" + ], + "summary": "Retrieves a synonym rule from a synonym set", + "description": "Retrieves a synonym rule from a synonym set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/get-synonym-rule.html" + }, + "operationId": "synonyms-get-synonym-rule", + "parameters": [ + { + "in": "path", + "name": "set_id", + "description": "The id of the synonym set to retrieve the synonym rule from", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "rule_id", + "description": "The id of the synonym rule to retrieve", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/synonyms._types:SynonymRuleRead" + } + } + } + } + } + }, + "put": { + "tags": [ + "synonyms.put_synonym_rule" + ], + "summary": "Creates or updates a synonym rule in a synonym set", + "description": "Creates or updates a synonym rule in a synonym set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/put-synonym-rule.html" + }, + "operationId": "synonyms-put-synonym-rule", + "parameters": [ + { + "in": "path", + "name": "set_id", + "description": "The id of the synonym set to be updated with the synonym rule", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "rule_id", + "description": "The id of the synonym rule to be updated or created", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "synonyms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/synonyms._types:SynonymString" + } + } + }, + "required": [ + "synonyms" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/synonyms._types:SynonymsUpdateResult" + } + } + } + } + } + }, + "delete": { + "tags": [ + "synonyms.delete_synonym_rule" + ], + "summary": "Deletes a synonym rule in a synonym set", + "description": "Deletes a synonym rule in a synonym set", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/delete-synonym-rule.html" + }, + "operationId": "synonyms-delete-synonym-rule", + "parameters": [ + { + "in": "path", + "name": "set_id", + "description": "The id of the synonym set to be updated", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "path", + "name": "rule_id", + "description": "The id of the synonym rule to be deleted", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/synonyms._types:SynonymsUpdateResult" + } + } + } + } + } + } + }, + "/_synonyms": { + "get": { + "tags": [ + "synonyms.get_synonyms_sets" + ], + "summary": "Retrieves a summary of all defined synonym sets", + "description": "Retrieves a summary of all defined synonym sets", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/list-synonyms-sets.html" + }, + "operationId": "synonyms-get-synonyms-sets", + "parameters": [ + { + "in": "query", + "name": "from", + "description": "Starting offset", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "specifies a max number of results to get", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/synonyms.get_synonyms_sets:SynonymsSetItem" + } + } + }, + "required": [ + "count", + "results" + ] + } + } + } + } + } + } + }, + "/_tasks/{task_id}": { + "get": { + "tags": [ + "tasks.get" + ], + "summary": "Returns information about a task.", + "description": "Returns information about a task.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html" + }, + "operationId": "tasks-get", + "parameters": [ + { + "in": "path", + "name": "task_id", + "description": "ID of the task.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If `true`, the request blocks until the task has completed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "completed": { + "type": "boolean" + }, + "task": { + "$ref": "#/components/schemas/tasks._types:TaskInfo" + }, + "response": { + "type": "object" + }, + "error": { + "$ref": "#/components/schemas/_types:ErrorCause" + } + }, + "required": [ + "completed", + "task" + ] + } + } + } + } + } + } + }, + "/{index}/_terms_enum": { + "get": { + "tags": [ + "terms_enum" + ], + "summary": "The terms enum API can be used to discover terms in the index that begin with the provided string. It is designed for low-latency look-ups used in auto-complete scenarios.", + "description": "The terms enum API can be used to discover terms in the index that begin with the provided string. It is designed for low-latency look-ups used in auto-complete scenarios.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-terms-enum.html" + }, + "operationId": "terms-enum", + "parameters": [ + { + "$ref": "#/components/parameters/terms_enum#index" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/terms_enum" + }, + "responses": { + "200": { + "$ref": "#/components/responses/terms_enum#200" + } + } + }, + "post": { + "tags": [ + "terms_enum" + ], + "summary": "The terms enum API can be used to discover terms in the index that begin with the provided string. It is designed for low-latency look-ups used in auto-complete scenarios.", + "description": "The terms enum API can be used to discover terms in the index that begin with the provided string. It is designed for low-latency look-ups used in auto-complete scenarios.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-terms-enum.html" + }, + "operationId": "terms-enum-1", + "parameters": [ + { + "$ref": "#/components/parameters/terms_enum#index" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/terms_enum" + }, + "responses": { + "200": { + "$ref": "#/components/responses/terms_enum#200" + } + } + } + }, + "/{index}/_termvectors/{id}": { + "get": { + "tags": [ + "termvectors" + ], + "summary": "Returns information and statistics about terms in the fields of a particular document.", + "description": "Returns information and statistics about terms in the fields of a particular document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html" + }, + "operationId": "termvectors", + "parameters": [ + { + "$ref": "#/components/parameters/termvectors#index" + }, + { + "$ref": "#/components/parameters/termvectors#id" + }, + { + "$ref": "#/components/parameters/termvectors#fields" + }, + { + "$ref": "#/components/parameters/termvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#offsets" + }, + { + "$ref": "#/components/parameters/termvectors#payloads" + }, + { + "$ref": "#/components/parameters/termvectors#positions" + }, + { + "$ref": "#/components/parameters/termvectors#preference" + }, + { + "$ref": "#/components/parameters/termvectors#realtime" + }, + { + "$ref": "#/components/parameters/termvectors#routing" + }, + { + "$ref": "#/components/parameters/termvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#version" + }, + { + "$ref": "#/components/parameters/termvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/termvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/termvectors#200" + } + } + }, + "post": { + "tags": [ + "termvectors" + ], + "summary": "Returns information and statistics about terms in the fields of a particular document.", + "description": "Returns information and statistics about terms in the fields of a particular document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html" + }, + "operationId": "termvectors-1", + "parameters": [ + { + "$ref": "#/components/parameters/termvectors#index" + }, + { + "$ref": "#/components/parameters/termvectors#id" + }, + { + "$ref": "#/components/parameters/termvectors#fields" + }, + { + "$ref": "#/components/parameters/termvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#offsets" + }, + { + "$ref": "#/components/parameters/termvectors#payloads" + }, + { + "$ref": "#/components/parameters/termvectors#positions" + }, + { + "$ref": "#/components/parameters/termvectors#preference" + }, + { + "$ref": "#/components/parameters/termvectors#realtime" + }, + { + "$ref": "#/components/parameters/termvectors#routing" + }, + { + "$ref": "#/components/parameters/termvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#version" + }, + { + "$ref": "#/components/parameters/termvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/termvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/termvectors#200" + } + } + } + }, + "/{index}/_termvectors": { + "get": { + "tags": [ + "termvectors" + ], + "summary": "Returns information and statistics about terms in the fields of a particular document.", + "description": "Returns information and statistics about terms in the fields of a particular document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html" + }, + "operationId": "termvectors-2", + "parameters": [ + { + "$ref": "#/components/parameters/termvectors#index" + }, + { + "$ref": "#/components/parameters/termvectors#fields" + }, + { + "$ref": "#/components/parameters/termvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#offsets" + }, + { + "$ref": "#/components/parameters/termvectors#payloads" + }, + { + "$ref": "#/components/parameters/termvectors#positions" + }, + { + "$ref": "#/components/parameters/termvectors#preference" + }, + { + "$ref": "#/components/parameters/termvectors#realtime" + }, + { + "$ref": "#/components/parameters/termvectors#routing" + }, + { + "$ref": "#/components/parameters/termvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#version" + }, + { + "$ref": "#/components/parameters/termvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/termvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/termvectors#200" + } + } + }, + "post": { + "tags": [ + "termvectors" + ], + "summary": "Returns information and statistics about terms in the fields of a particular document.", + "description": "Returns information and statistics about terms in the fields of a particular document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-termvectors.html" + }, + "operationId": "termvectors-3", + "parameters": [ + { + "$ref": "#/components/parameters/termvectors#index" + }, + { + "$ref": "#/components/parameters/termvectors#fields" + }, + { + "$ref": "#/components/parameters/termvectors#field_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#offsets" + }, + { + "$ref": "#/components/parameters/termvectors#payloads" + }, + { + "$ref": "#/components/parameters/termvectors#positions" + }, + { + "$ref": "#/components/parameters/termvectors#preference" + }, + { + "$ref": "#/components/parameters/termvectors#realtime" + }, + { + "$ref": "#/components/parameters/termvectors#routing" + }, + { + "$ref": "#/components/parameters/termvectors#term_statistics" + }, + { + "$ref": "#/components/parameters/termvectors#version" + }, + { + "$ref": "#/components/parameters/termvectors#version_type" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/termvectors" + }, + "responses": { + "200": { + "$ref": "#/components/responses/termvectors#200" + } + } + } + }, + "/_transform/{transform_id}": { + "get": { + "tags": [ + "transform.get_transform" + ], + "summary": "Retrieves configuration information for transforms.", + "description": "Retrieves configuration information for transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform.html" + }, + "operationId": "transform-get-transform", + "parameters": [ + { + "$ref": "#/components/parameters/transform.get_transform#transform_id" + }, + { + "$ref": "#/components/parameters/transform.get_transform#allow_no_match" + }, + { + "$ref": "#/components/parameters/transform.get_transform#from" + }, + { + "$ref": "#/components/parameters/transform.get_transform#size" + }, + { + "$ref": "#/components/parameters/transform.get_transform#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/transform.get_transform#200" + } + } + }, + "put": { + "tags": [ + "transform.put_transform" + ], + "summary": "Instantiates a transform.", + "description": "Instantiates a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/put-transform.html" + }, + "operationId": "transform-put-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform. This identifier can contain lowercase alphanumeric characters (a-z and 0-9),\nhyphens, and underscores. It has a 64 character limit and must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "defer_validation", + "description": "When the transform is created, a series of validations occur to ensure its success. For example, there is a\ncheck for the existence of the source indices and a check that the destination index is not part of the source\nindex pattern. You can use this parameter to skip the checks, for example when the source index does not exist\nuntil after the transform is created. The validations are always run when you start the transform, however, with\nthe exception of privilege checks.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dest": { + "$ref": "#/components/schemas/transform._types:Destination" + }, + "description": { + "description": "Free text description of the transform.", + "type": "string" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "latest": { + "$ref": "#/components/schemas/transform._types:Latest" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "pivot": { + "$ref": "#/components/schemas/transform._types:Pivot" + }, + "retention_policy": { + "$ref": "#/components/schemas/transform._types:RetentionPolicyContainer" + }, + "settings": { + "$ref": "#/components/schemas/transform._types:Settings" + }, + "source": { + "$ref": "#/components/schemas/transform._types:Source" + }, + "sync": { + "$ref": "#/components/schemas/transform._types:SyncContainer" + } + }, + "required": [ + "dest", + "source" + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + }, + "delete": { + "tags": [ + "transform.delete_transform" + ], + "summary": "Deletes an existing transform.", + "description": "Deletes an existing transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-transform.html" + }, + "operationId": "transform-delete-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "If this value is false, the transform must be stopped before it can be deleted. If true, the transform is\ndeleted regardless of its current state.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_transform": { + "get": { + "tags": [ + "transform.get_transform" + ], + "summary": "Retrieves configuration information for transforms.", + "description": "Retrieves configuration information for transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform.html" + }, + "operationId": "transform-get-transform-1", + "parameters": [ + { + "$ref": "#/components/parameters/transform.get_transform#allow_no_match" + }, + { + "$ref": "#/components/parameters/transform.get_transform#from" + }, + { + "$ref": "#/components/parameters/transform.get_transform#size" + }, + { + "$ref": "#/components/parameters/transform.get_transform#exclude_generated" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/transform.get_transform#200" + } + } + } + }, + "/_transform/{transform_id}/_stats": { + "get": { + "tags": [ + "transform.get_transform_stats" + ], + "summary": "Retrieves usage information for transforms.", + "description": "Retrieves usage information for transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/get-transform-stats.html" + }, + "operationId": "transform-get-transform-stats", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform. It can be a transform identifier or a\nwildcard expression. You can get information for all transforms by using\n`_all`, by specifying `*` as the ``, or by omitting the\n``.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no transforms that match.\n2. Contains the _all string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nIf this parameter is false, the request returns a 404 status code when\nthere are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Skips the specified number of transforms.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of transforms to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the time to wait for the stats", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "transforms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/transform.get_transform_stats:TransformStats" + } + } + }, + "required": [ + "count", + "transforms" + ] + } + } + } + } + } + } + }, + "/_transform/{transform_id}/_preview": { + "get": { + "tags": [ + "transform.preview_transform" + ], + "summary": "Previews a transform.", + "description": "Previews a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/preview-transform.html" + }, + "operationId": "transform-preview-transform", + "parameters": [ + { + "$ref": "#/components/parameters/transform.preview_transform#transform_id" + }, + { + "$ref": "#/components/parameters/transform.preview_transform#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/transform.preview_transform" + }, + "responses": { + "200": { + "$ref": "#/components/responses/transform.preview_transform#200" + } + } + }, + "post": { + "tags": [ + "transform.preview_transform" + ], + "summary": "Previews a transform.", + "description": "Previews a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/preview-transform.html" + }, + "operationId": "transform-preview-transform-1", + "parameters": [ + { + "$ref": "#/components/parameters/transform.preview_transform#transform_id" + }, + { + "$ref": "#/components/parameters/transform.preview_transform#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/transform.preview_transform" + }, + "responses": { + "200": { + "$ref": "#/components/responses/transform.preview_transform#200" + } + } + } + }, + "/_transform/_preview": { + "get": { + "tags": [ + "transform.preview_transform" + ], + "summary": "Previews a transform.", + "description": "Previews a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/preview-transform.html" + }, + "operationId": "transform-preview-transform-2", + "parameters": [ + { + "$ref": "#/components/parameters/transform.preview_transform#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/transform.preview_transform" + }, + "responses": { + "200": { + "$ref": "#/components/responses/transform.preview_transform#200" + } + } + }, + "post": { + "tags": [ + "transform.preview_transform" + ], + "summary": "Previews a transform.", + "description": "Previews a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/preview-transform.html" + }, + "operationId": "transform-preview-transform-3", + "parameters": [ + { + "$ref": "#/components/parameters/transform.preview_transform#timeout" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/transform.preview_transform" + }, + "responses": { + "200": { + "$ref": "#/components/responses/transform.preview_transform#200" + } + } + } + }, + "/_transform/{transform_id}/_reset": { + "post": { + "tags": [ + "transform.reset_transform" + ], + "summary": "Resets an existing transform.", + "description": "Resets an existing transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/reset-transform.html" + }, + "operationId": "transform-reset-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform. This identifier can contain lowercase alphanumeric characters (a-z and 0-9),\nhyphens, and underscores. It has a 64 character limit and must start and end with alphanumeric characters.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "force", + "description": "If this value is `true`, the transform is reset regardless of its current state. If it's `false`, the transform\nmust be stopped before it can be reset.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_transform/{transform_id}/_schedule_now": { + "post": { + "tags": [ + "transform.schedule_now_transform" + ], + "summary": "Schedules now a transform.", + "description": "Schedules now a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/schedule-now-transform.html" + }, + "operationId": "transform-schedule-now-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "timeout", + "description": "Controls the time to wait for the scheduling to take place", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_transform/{transform_id}/_start": { + "post": { + "tags": [ + "transform.start_transform" + ], + "summary": "Starts one or more transforms.", + "description": "Starts one or more transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/start-transform.html" + }, + "operationId": "transform-start-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Restricts the set of transformed entities to those changed after this time. Relative times like now-30d are supported. Only applicable for continuous transforms.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_transform/{transform_id}/_stop": { + "post": { + "tags": [ + "transform.stop_transform" + ], + "summary": "Stops one or more transforms.", + "description": "Stops one or more transforms.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/stop-transform.html" + }, + "operationId": "transform-stop-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform. To stop multiple transforms, use a comma-separated list or a wildcard expression.\nTo stop all transforms, use `_all` or `*` as the identifier.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request: contains wildcard expressions and there are no transforms that match;\ncontains the `_all` string or no identifiers and there are no matches; contains wildcard expressions and there\nare only partial matches.\n\nIf it is true, the API returns a successful acknowledgement message when there are no matches. When there are\nonly partial matches, the API stops the appropriate transforms.\n\nIf it is false, the request returns a 404 status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "force", + "description": "If it is true, the API forcefully stops the transforms.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response when `wait_for_completion` is `true`. If no response is received before the\ntimeout expires, the request returns a timeout exception. However, the request continues processing and\neventually moves the transform to a STOPPED state.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_checkpoint", + "description": "If it is true, the transform does not completely stop until the current checkpoint is completed. If it is false,\nthe transform stops as soon as possible.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If it is true, the API blocks until the indexer state completely stops. If it is false, the API returns\nimmediately and the indexer is stopped asynchronously in the background.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + } + } + } + }, + "/_transform/{transform_id}/_update": { + "post": { + "tags": [ + "transform.update_transform" + ], + "summary": "Updates certain properties of a transform.", + "description": "Updates certain properties of a transform.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/update-transform.html" + }, + "operationId": "transform-update-transform", + "parameters": [ + { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "defer_validation", + "description": "When true, deferrable validations are not run. This behavior may be\ndesired if the source index does not exist until after the transform is\ncreated.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the\ntimeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dest": { + "$ref": "#/components/schemas/transform._types:Destination" + }, + "description": { + "description": "Free text description of the transform.", + "type": "string" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "source": { + "$ref": "#/components/schemas/transform._types:Source" + }, + "settings": { + "$ref": "#/components/schemas/transform._types:Settings" + }, + "sync": { + "$ref": "#/components/schemas/transform._types:SyncContainer" + }, + "retention_policy": { + "description": "Defines a retention policy for the transform. Data that meets the defined\ncriteria is deleted from the destination index.", + "oneOf": [ + { + "$ref": "#/components/schemas/transform._types:RetentionPolicyContainer" + }, + { + "nullable": true, + "type": "string" + } + ] + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authorization": { + "$ref": "#/components/schemas/ml._types:TransformAuthorization" + }, + "create_time": { + "type": "number" + }, + "description": { + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/_global.reindex:Destination" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "latest": { + "$ref": "#/components/schemas/transform._types:Latest" + }, + "pivot": { + "$ref": "#/components/schemas/transform._types:Pivot" + }, + "retention_policy": { + "$ref": "#/components/schemas/transform._types:RetentionPolicyContainer" + }, + "settings": { + "$ref": "#/components/schemas/transform._types:Settings" + }, + "source": { + "$ref": "#/components/schemas/_global.reindex:Source" + }, + "sync": { + "$ref": "#/components/schemas/transform._types:SyncContainer" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + }, + "required": [ + "create_time", + "description", + "dest", + "id", + "settings", + "source", + "version" + ] + } + } + } + } + } + } + }, + "/{index}/_update/{id}": { + "post": { + "tags": [ + "update" + ], + "summary": "Updates a document with a script or partial document.", + "description": "Updates a document with a script or partial document.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update.html" + }, + "operationId": "update", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "The name of the index", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + { + "in": "path", + "name": "id", + "description": "Document ID", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + { + "in": "query", + "name": "if_primary_term", + "description": "Only perform the operation if the document has this primary term.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "if_seq_no", + "description": "Only perform the operation if the document has this sequence number.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "style": "form" + }, + { + "in": "query", + "name": "lang", + "description": "The script language.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If 'true', Elasticsearch refreshes the affected shards to make this operation\nvisible to search, if 'wait_for' then wait for a refresh to make this operation\nvisible to search, if 'false' do nothing with refreshes.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + { + "in": "query", + "name": "require_alias", + "description": "If true, the destination must be an index alias.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "retry_on_conflict", + "description": "Specify how many times should the operation be retried when a conflict occurs.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period to wait for dynamic mapping updates and active shards.\nThis guarantees Elasticsearch waits for at least the timeout before failing.\nThe actual wait time could be longer, particularly when multiple waits occur.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operations.\nSet to 'all' or any positive integer up to the total number of shards in the index\n(number_of_replicas+1). Defaults to 1 meaning the primary shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source", + "description": "Set to false to disable source retrieval. You can also specify a comma-separated\nlist of the fields you want to retrieve.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_excludes", + "description": "Specify the source fields you want to exclude.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + { + "in": "query", + "name": "_source_includes", + "description": "Specify the source fields you want to retrieve.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "detect_noop": { + "description": "Set to false to disable setting 'result' in the response\nto 'noop' if no change to the document occurred.", + "type": "boolean" + }, + "doc": { + "description": "A partial update to an existing document.", + "type": "object" + }, + "doc_as_upsert": { + "description": "Set to true to use the contents of 'doc' as the value of 'upsert'", + "type": "boolean" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "scripted_upsert": { + "description": "Set to true to execute the script whether or not the document exists.", + "type": "boolean" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "upsert": { + "description": "If the document does not already exist, the contents of 'upsert' are inserted as a\nnew document. If the document exists, the 'script' is executed.", + "type": "object" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.update:UpdateWriteResponseBase" + } + } + } + } + } + } + }, + "/{index}/_update_by_query": { + "post": { + "tags": [ + "update_by_query" + ], + "summary": "Performs an update on every document in the index without changing the source,\nfor example to pick up a mapping change.", + "description": "Performs an update on every document in the index without changing the source,\nfor example to pick up a mapping change.", + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-update-by-query.html" + }, + "operationId": "update-by-query", + "parameters": [ + { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams or indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.\nFor example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "analyze_wildcard", + "description": "If `true`, wildcard and prefix queries are analyzed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "conflicts", + "description": "What to do if update by query hits version conflicts: `abort` or `proceed`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Conflicts" + }, + "style": "form" + }, + { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: `AND` or `OR`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + { + "in": "query", + "name": "from", + "description": "Starting offset (default: 0)", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "max_docs", + "description": "Maximum number of documents to process.\nDefaults to all documents.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "pipeline", + "description": "ID of the pipeline to use to preprocess incoming documents.\nIf the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.\nIf a final pipeline is configured it will always run, regardless of the value of this parameter.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes affected shards to make the operation visible to search.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "request_cache", + "description": "If `true`, the request cache is used for this request.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "requests_per_second", + "description": "The throttle for this request in sub-requests per second.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + { + "in": "query", + "name": "scroll", + "description": "Period to retain the search context for scrolling.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "scroll_size", + "description": "Size of the scroll request that powers the operation.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "search_timeout", + "description": "Explicit timeout for each search request.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "search_type", + "description": "The type of the search operation. Available options: `query_then_fetch`, `dfs_query_then_fetch`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + { + "in": "query", + "name": "slices", + "description": "The number of slices this task should be divided into.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Slices" + }, + "style": "form" + }, + { + "in": "query", + "name": "sort", + "description": "A comma-separated list of : pairs.", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + { + "in": "query", + "name": "stats", + "description": "Specific `tag` of the request for logging and statistical purposes.", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + { + "in": "query", + "name": "terminate_after", + "description": "Maximum number of documents to collect for each shard.\nIf a query reaches this limit, Elasticsearch terminates the query early.\nElasticsearch collects documents before sorting.\nUse with caution.\nElasticsearch applies this parameter to each shard handling the request.\nWhen possible, let Elasticsearch perform early termination automatically.\nAvoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + { + "in": "query", + "name": "timeout", + "description": "Period each update request waits for the following operations: dynamic mapping updates, waiting for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + { + "in": "query", + "name": "version", + "description": "If `true`, returns the document version as part of a hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "version_type", + "description": "Should the document increment the version number (internal) on hit or not (reindex)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + { + "in": "query", + "name": "wait_for_completion", + "description": "If `true`, the request blocks until the operation is complete.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "max_docs": { + "description": "The maximum number of documents to update.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "slice": { + "$ref": "#/components/schemas/_types:SlicedScroll" + }, + "conflicts": { + "$ref": "#/components/schemas/_types:Conflicts" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "batches": { + "type": "number" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:BulkIndexByScrollFailure" + } + }, + "noops": { + "type": "number" + }, + "deleted": { + "type": "number" + }, + "requests_per_second": { + "type": "number" + }, + "retries": { + "$ref": "#/components/schemas/_types:Retries" + }, + "task": { + "$ref": "#/components/schemas/_types:TaskId" + }, + "timed_out": { + "type": "boolean" + }, + "took": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "total": { + "type": "number" + }, + "updated": { + "type": "number" + }, + "version_conflicts": { + "type": "number" + }, + "throttled": { + "$ref": "#/components/schemas/_types:Duration" + }, + "throttled_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "throttled_until": { + "$ref": "#/components/schemas/_types:Duration" + }, + "throttled_until_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + } + } + } + } + } + } + } + } + } + }, + "components": { + "responses": { + "async_search.submit#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/async_search._types:AsyncSearchDocumentResponseBase" + } + } + } + }, + "bulk#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.bulk:ResponseItem" + }, + "minProperties": 1, + "maxProperties": 1 + } + }, + "took": { + "type": "number" + }, + "ingest_took": { + "type": "number" + } + }, + "required": [ + "errors", + "items", + "took" + ] + } + } + } + }, + "cat.aliases#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.aliases:AliasesRecord" + } + } + } + } + }, + "cat.component_templates#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.component_templates:ComponentTemplate" + } + } + } + } + }, + "cat.count#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.count:CountRecord" + } + } + } + } + }, + "cat.indices#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.indices:IndicesRecord" + } + } + } + } + }, + "cat.ml_data_frame_analytics#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.ml_data_frame_analytics:DataFrameAnalyticsRecord" + } + } + } + } + }, + "cat.ml_datafeeds#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.ml_datafeeds:DatafeedsRecord" + } + } + } + } + }, + "cat.ml_jobs#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.ml_jobs:JobsRecord" + } + } + } + } + }, + "cat.ml_trained_models#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.ml_trained_models:TrainedModelsRecord" + } + } + } + } + }, + "cat.transforms#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat.transforms:TransformsRecord" + } + } + } + } + }, + "clear_scroll#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "succeeded": { + "type": "boolean" + }, + "num_freed": { + "type": "number" + } + }, + "required": [ + "succeeded", + "num_freed" + ] + } + } + } + }, + "cluster.get_component_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "component_templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cluster._types:ComponentTemplate" + } + } + }, + "required": [ + "component_templates" + ] + } + } + } + }, + "cluster.put_component_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "count#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + } + }, + "required": [ + "count", + "_shards" + ] + } + } + } + }, + "create#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:WriteResponseBase" + } + } + } + }, + "enrich.get_policy#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "policies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/enrich._types:Summary" + } + } + }, + "required": [ + "policies" + ] + } + } + } + }, + "eql.search#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eql._types:EqlSearchResponseBase" + } + } + } + }, + "explain#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "matched": { + "type": "boolean" + }, + "explanation": { + "$ref": "#/components/schemas/_global.explain:ExplanationDetail" + }, + "get": { + "$ref": "#/components/schemas/_types:InlineGet" + } + }, + "required": [ + "_index", + "_id", + "matched" + ] + } + } + } + }, + "field_caps#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.field_caps:FieldCapability" + } + } + } + }, + "required": [ + "indices", + "fields" + ] + } + } + } + }, + "graph.explore#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/graph._types:Connection" + } + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ShardFailure" + } + }, + "timed_out": { + "type": "boolean" + }, + "took": { + "type": "number" + }, + "vertices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/graph._types:Vertex" + } + } + }, + "required": [ + "connections", + "failures", + "timed_out", + "took", + "vertices" + ] + } + } + } + }, + "index#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:WriteResponseBase" + } + } + } + }, + "indices.analyze#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "detail": { + "$ref": "#/components/schemas/indices.analyze:AnalyzeDetail" + }, + "tokens": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.analyze:AnalyzeToken" + } + } + } + } + } + } + }, + "indices.data_streams_stats#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "backing_indices": { + "description": "Total number of backing indices for the selected data streams.", + "type": "number" + }, + "data_stream_count": { + "description": "Total number of selected data streams.", + "type": "number" + }, + "data_streams": { + "description": "Contains statistics for the selected data streams.", + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.data_streams_stats:DataStreamsStatsItem" + } + }, + "total_store_sizes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "total_store_size_bytes": { + "description": "Total size, in bytes, of all shards for the selected data streams.", + "type": "number" + } + }, + "required": [ + "_shards", + "backing_indices", + "data_stream_count", + "data_streams", + "total_store_size_bytes" + ] + } + } + } + }, + "indices.delete_alias#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "indices.exists_alias#200": { + "description": "", + "content": { + "application/json": {} + } + }, + "indices.get_alias#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices.get_alias:IndexAliases" + } + } + } + } + }, + "indices.get_data_stream#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data_streams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:DataStream" + } + } + }, + "required": [ + "data_streams" + ] + } + } + } + }, + "indices.get_index_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "index_templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.get_index_template:IndexTemplateItem" + } + } + }, + "required": [ + "index_templates" + ] + } + } + } + }, + "indices.get_mapping#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices.get_mapping:IndexMappingRecord" + } + } + } + } + }, + "indices.get_settings#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:IndexState" + } + } + } + } + }, + "indices.put_alias#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "indices.put_index_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "indices.put_mapping#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:IndicesResponseBase" + } + } + } + }, + "indices.put_settings#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "indices.put_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "indices.refresh#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:ShardsOperationResponseBase" + } + } + } + }, + "indices.rollover#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "acknowledged": { + "type": "boolean" + }, + "conditions": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "dry_run": { + "type": "boolean" + }, + "new_index": { + "type": "string" + }, + "old_index": { + "type": "string" + }, + "rolled_over": { + "type": "boolean" + }, + "shards_acknowledged": { + "type": "boolean" + } + }, + "required": [ + "acknowledged", + "conditions", + "dry_run", + "new_index", + "old_index", + "rolled_over", + "shards_acknowledged" + ] + } + } + } + }, + "indices.simulate_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "overlapping": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.simulate_template:Overlapping" + } + }, + "template": { + "$ref": "#/components/schemas/indices.simulate_template:Template" + } + }, + "required": [ + "template" + ] + } + } + } + }, + "indices.validate_query#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "explanations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.validate_query:IndicesValidationExplanation" + } + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "valid": { + "type": "boolean" + }, + "error": { + "type": "string" + } + }, + "required": [ + "valid" + ] + } + } + } + }, + "ingest.get_pipeline#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ingest._types:Pipeline" + } + } + } + } + }, + "ingest.simulate#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest.simulate:PipelineSimulation" + } + } + }, + "required": [ + "docs" + ] + } + } + } + }, + "logstash.get_pipeline#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/logstash._types:Pipeline" + } + } + } + } + }, + "mget#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.mget:ResponseItem" + } + } + }, + "required": [ + "docs" + ] + } + } + } + }, + "ml.get_calendars#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "calendars": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.get_calendars:Calendar" + } + }, + "count": { + "type": "number" + } + }, + "required": [ + "calendars", + "count" + ] + } + } + } + }, + "ml.get_data_frame_analytics#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "data_frame_analytics": { + "description": "An array of data frame analytics job resources, which are sorted by the id value in ascending order.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSummary" + } + } + }, + "required": [ + "count", + "data_frame_analytics" + ] + } + } + } + }, + "ml.get_data_frame_analytics_stats#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "data_frame_analytics": { + "description": "An array of objects that contain usage information for data frame analytics jobs, which are sorted by the id value in ascending order.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DataframeAnalytics" + } + } + }, + "required": [ + "count", + "data_frame_analytics" + ] + } + } + } + }, + "ml.get_datafeed_stats#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "datafeeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DatafeedStats" + } + } + }, + "required": [ + "count", + "datafeeds" + ] + } + } + } + }, + "ml.get_datafeeds#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "datafeeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Datafeed" + } + } + }, + "required": [ + "count", + "datafeeds" + ] + } + } + } + }, + "ml.get_filters#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Filter" + } + } + }, + "required": [ + "count", + "filters" + ] + } + } + } + }, + "ml.get_job_stats#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:JobStats" + } + } + }, + "required": [ + "count", + "jobs" + ] + } + } + } + }, + "ml.get_jobs#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Job" + } + } + }, + "required": [ + "count", + "jobs" + ] + } + } + } + }, + "ml.get_overall_buckets#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "overall_buckets": { + "description": "Array of overall bucket objects", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:OverallBucket" + } + } + }, + "required": [ + "count", + "overall_buckets" + ] + } + } + } + }, + "ml.get_trained_models#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "trained_model_configs": { + "description": "An array of trained model resources, which are sorted by the model_id value in ascending order.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TrainedModelConfig" + } + } + }, + "required": [ + "count", + "trained_model_configs" + ] + } + } + } + }, + "ml.get_trained_models_stats#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "description": "The total number of trained model statistics that matched the requested ID patterns. Could be higher than the number of items in the trained_model_stats array as the size of the array is restricted by the supplied size parameter.", + "type": "number" + }, + "trained_model_stats": { + "description": "An array of trained model statistics, which are sorted by the model_id value in ascending order.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TrainedModelStats" + } + } + }, + "required": [ + "count", + "trained_model_stats" + ] + } + } + } + }, + "ml.infer_trained_model#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "inference_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:InferenceResponseResult" + } + } + }, + "required": [ + "inference_results" + ] + } + } + } + }, + "ml.preview_data_frame_analytics#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feature_values": { + "description": "An array of objects that contain feature name and value pairs. The features have been processed and indicate what will be sent to the model for training.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "required": [ + "feature_values" + ] + } + } + } + }, + "ml.preview_datafeed#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "msearch#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.msearch:MultiSearchResult" + } + } + } + }, + "msearch_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.msearch:MultiSearchResult" + } + } + } + }, + "mtermvectors#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.mtermvectors:TermVectorsResult" + } + } + }, + "required": [ + "docs" + ] + } + } + } + }, + "put_script#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + } + } + } + }, + "rank_eval#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metric_score": { + "description": "The overall evaluation quality calculated by the defined metric", + "type": "number" + }, + "details": { + "description": "The details section contains one entry for every query in the original requests section, keyed by the search request id", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricDetail" + } + }, + "failures": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "required": [ + "metric_score", + "details", + "failures" + ] + } + } + } + }, + "render_search_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "template_output": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "required": [ + "template_output" + ] + } + } + } + }, + "scripts_painless_execute#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "type": "object" + } + }, + "required": [ + "result" + ] + } + } + } + }, + "scroll#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.search:ResponseBody" + } + } + } + }, + "search#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.search:ResponseBody" + } + } + } + }, + "search_application.get_behavioral_analytics#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/search_application._types:AnalyticsCollection" + } + } + } + } + }, + "search_application.search#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_global.search:ResponseBody" + } + } + } + }, + "search_mvt#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/_types:MapboxVectorTiles" + } + } + } + }, + "search_template#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "took": { + "type": "number" + }, + "timed_out": { + "type": "boolean" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "hits": { + "$ref": "#/components/schemas/_global.search._types:HitsMetadata" + }, + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:Aggregate" + } + }, + "_clusters": { + "$ref": "#/components/schemas/_types:ClusterStatistics" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "max_score": { + "type": "number" + }, + "num_reduce_phases": { + "type": "number" + }, + "profile": { + "$ref": "#/components/schemas/_global.search._types:Profile" + }, + "pit_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_scroll_id": { + "$ref": "#/components/schemas/_types:ScrollId" + }, + "suggest": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Suggest" + } + } + }, + "terminated_early": { + "type": "boolean" + } + }, + "required": [ + "took", + "timed_out", + "_shards", + "hits" + ] + } + } + } + }, + "security.create_api_key#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "api_key": { + "description": "Generated API key.", + "type": "string" + }, + "expiration": { + "description": "Expiration in milliseconds for the API key.", + "type": "number" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "encoded": { + "description": "API key credentials which is the base64-encoding of\nthe UTF-8 representation of `id` and `api_key` joined\nby a colon (`:`).", + "type": "string" + } + }, + "required": [ + "api_key", + "id", + "name", + "encoded" + ] + } + } + } + }, + "security.has_privileges#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "application": { + "$ref": "#/components/schemas/security.has_privileges:ApplicationsPrivileges" + }, + "cluster": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "has_all_requested": { + "type": "boolean" + }, + "index": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security.has_privileges:Privileges" + } + }, + "username": { + "$ref": "#/components/schemas/_types:Username" + } + }, + "required": [ + "application", + "cluster", + "has_all_requested", + "index", + "username" + ] + } + } + } + }, + "security.query_api_keys#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "The total number of API keys found.", + "type": "number" + }, + "count": { + "description": "The number of API keys returned in the response.", + "type": "number" + }, + "api_keys": { + "description": "A list of API key information.", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:ApiKey" + } + } + }, + "required": [ + "total", + "count", + "api_keys" + ] + } + } + } + }, + "sql.query#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "is_running": { + "description": "If `true`, the search is still running. If false, the search has finished.\nThis value is only returned for async and saved synchronous searches. For\nCSV, TSV, and TXT responses, this value is returned in the `Async-partial`\nHTTP header.", + "type": "boolean" + }, + "is_partial": { + "description": "If `true`, the response does not contain complete search results. If `is_partial`\nis `true` and `is_running` is `true`, the search is still running. If `is_partial`\nis `true` but `is_running` is `false`, the results are partial due to a failure or\ntimeout. This value is only returned for async and saved synchronous searches.\nFor CSV, TSV, and TXT responses, this value is returned in the `Async-partial` HTTP header.", + "type": "boolean" + }, + "columns": { + "description": "Column headings for the search results. Each object is a column.", + "type": "array", + "items": { + "$ref": "#/components/schemas/sql:Column" + } + }, + "cursor": { + "description": "Cursor for the next set of paginated results. For CSV, TSV, and\nTXT responses, this value is returned in the `Cursor` HTTP header.", + "type": "string" + }, + "rows": { + "description": "Values for the search results.", + "type": "array", + "items": { + "$ref": "#/components/schemas/sql:Row" + } + } + }, + "required": [ + "rows" + ] + } + } + } + }, + "sql.translate#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "size": { + "type": "number" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + } + } + } + } + } + }, + "terms_enum#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "complete": { + "type": "boolean" + } + }, + "required": [ + "_shards", + "terms", + "complete" + ] + } + } + } + }, + "termvectors#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "found": { + "type": "boolean" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "term_vectors": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.termvectors:TermVector" + } + }, + "took": { + "type": "number" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + }, + "required": [ + "found", + "_id", + "_index", + "took", + "_version" + ] + } + } + } + }, + "transform.get_transform#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "transforms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/transform.get_transform:TransformSummary" + } + } + }, + "required": [ + "count", + "transforms" + ] + } + } + } + }, + "transform.preview_transform#200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "generated_dest_index": { + "$ref": "#/components/schemas/indices._types:IndexState" + }, + "preview": { + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "generated_dest_index", + "preview" + ] + } + } + } + } + }, + "parameters": { + "async_search.submit#index": { + "in": "path", + "name": "index", + "description": "A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "async_search.submit#wait_for_completion_timeout": { + "in": "query", + "name": "wait_for_completion_timeout", + "description": "Blocks and waits until the search is completed up to a certain timeout.\nWhen the async search completes within the timeout, the response won’t include the ID as the results are not stored in the cluster.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "async_search.submit#keep_on_completion": { + "in": "query", + "name": "keep_on_completion", + "description": "If `true`, results are stored for later retrieval when the search completes within the `wait_for_completion_timeout`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#keep_alive": { + "in": "query", + "name": "keep_alive", + "description": "Specifies how long the async search needs to be available.\nOngoing async searches and any saved search results are deleted after this period.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "async_search.submit#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "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)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#allow_partial_search_results": { + "in": "query", + "name": "allow_partial_search_results", + "description": "Indicate if an error should be returned if there is a partial search failure or timeout", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#analyzer": { + "in": "query", + "name": "analyzer", + "description": "The analyzer to use for the query string", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "async_search.submit#analyze_wildcard": { + "in": "query", + "name": "analyze_wildcard", + "description": "Specify whether wildcard and prefix queries should be analyzed (default: false)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#batched_reduce_size": { + "in": "query", + "name": "batched_reduce_size", + "description": "Affects how often partial results become available, which happens whenever shard results are reduced.\nA partial reduction is performed every time the coordinating node has received a certain number of new shard responses (5 by default).", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#ccs_minimize_roundtrips": { + "in": "query", + "name": "ccs_minimize_roundtrips", + "description": "The default value is the only supported value.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#default_operator": { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query (AND or OR)", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + "async_search.submit#df": { + "in": "query", + "name": "df", + "description": "The field to use as default where no field prefix is given in the query string", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "async_search.submit#docvalue_fields": { + "in": "query", + "name": "docvalue_fields", + "description": "A comma-separated list of fields to return as the docvalue representation of a field for each hit", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "async_search.submit#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Whether to expand wildcard expression to concrete indices that are open, closed or both.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "async_search.submit#explain": { + "in": "query", + "name": "explain", + "description": "Specify whether to return detailed information about score computation as part of a hit", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#ignore_throttled": { + "in": "query", + "name": "ignore_throttled", + "description": "Whether specified concrete, expanded or aliased indices should be ignored when throttled", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "Whether specified concrete indices should be ignored when unavailable (missing or closed)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#lenient": { + "in": "query", + "name": "lenient", + "description": "Specify whether format-based query failures (such as providing text to a numeric field) should be ignored", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#max_concurrent_shard_requests": { + "in": "query", + "name": "max_concurrent_shard_requests", + "description": "The number of concurrent shard requests per node 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", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#min_compatible_shard_node": { + "in": "query", + "name": "min_compatible_shard_node", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "style": "form" + }, + "async_search.submit#preference": { + "in": "query", + "name": "preference", + "description": "Specify the node or shard the operation should be performed on (default: random)", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "async_search.submit#pre_filter_shard_size": { + "in": "query", + "name": "pre_filter_shard_size", + "description": "The default value cannot be changed, which enforces the execution of a pre-filter roundtrip to retrieve statistics from each shard so that the ones that surely don’t hold any document matching the query get skipped.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#request_cache": { + "in": "query", + "name": "request_cache", + "description": "Specify if request cache should be used for this request or not, defaults to true", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#routing": { + "in": "query", + "name": "routing", + "description": "A comma-separated list of specific routing values", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "async_search.submit#scroll": { + "in": "query", + "name": "scroll", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "async_search.submit#search_type": { + "in": "query", + "name": "search_type", + "description": "Search operation type", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + "async_search.submit#stats": { + "in": "query", + "name": "stats", + "description": "Specific 'tag' of the request for logging and statistical purposes", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + "async_search.submit#stored_fields": { + "in": "query", + "name": "stored_fields", + "description": "A comma-separated list of stored fields to return as part of a hit", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "async_search.submit#suggest_field": { + "in": "query", + "name": "suggest_field", + "description": "Specifies which field to use for suggestions.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Field" + }, + "style": "form" + }, + "async_search.submit#suggest_mode": { + "in": "query", + "name": "suggest_mode", + "description": "Specify suggest mode", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SuggestMode" + }, + "style": "form" + }, + "async_search.submit#suggest_size": { + "in": "query", + "name": "suggest_size", + "description": "How many suggestions to return in response", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#suggest_text": { + "in": "query", + "name": "suggest_text", + "description": "The source text for which the suggestions should be returned.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "async_search.submit#terminate_after": { + "in": "query", + "name": "terminate_after", + "description": "The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#timeout": { + "in": "query", + "name": "timeout", + "description": "Explicit operation timeout", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "async_search.submit#track_total_hits": { + "in": "query", + "name": "track_total_hits", + "description": "Indicate if the number of documents that match the query should be tracked. A number can also be specified, to accurately track the total hit count up to the number.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "style": "form" + }, + "async_search.submit#track_scores": { + "in": "query", + "name": "track_scores", + "description": "Whether to calculate and return scores even if they are not used for sorting", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#typed_keys": { + "in": "query", + "name": "typed_keys", + "description": "Specify whether aggregation and suggester names should be prefixed by their respective types in the response", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#version": { + "in": "query", + "name": "version", + "description": "Specify whether to return document version as part of a hit", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#_source": { + "in": "query", + "name": "_source", + "description": "True or false to return the _source field or not, or a list of fields to return", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + "async_search.submit#_source_excludes": { + "in": "query", + "name": "_source_excludes", + "description": "A list of fields to exclude from the returned _source field", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "async_search.submit#_source_includes": { + "in": "query", + "name": "_source_includes", + "description": "A list of fields to extract and return from the _source field", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "async_search.submit#seq_no_primary_term": { + "in": "query", + "name": "seq_no_primary_term", + "description": "Specify whether to return sequence number and primary term of the last modification of each hit", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "async_search.submit#q": { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "async_search.submit#size": { + "in": "query", + "name": "size", + "description": "Number of hits to return (default: 10)", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#from": { + "in": "query", + "name": "from", + "description": "Starting offset (default: 0)", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "async_search.submit#sort": { + "in": "query", + "name": "sort", + "description": "A comma-separated list of : pairs", + "deprecated": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "style": "form" + }, + "bulk#index": { + "in": "path", + "name": "index", + "description": "Name of the data stream, index, or index alias to perform bulk actions on.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "bulk#pipeline": { + "in": "query", + "name": "pipeline", + "description": "ID of the pipeline to use to preprocess incoming documents.\nIf the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.\nIf a final pipeline is configured it will always run, regardless of the value of this parameter.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "bulk#refresh": { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes 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` do nothing with refreshes.\nValid values: `true`, `false`, `wait_for`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + "bulk#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "bulk#_source": { + "in": "query", + "name": "_source", + "description": "`true` or `false` to return the `_source` field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + "bulk#_source_excludes": { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude from the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "bulk#_source_includes": { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "bulk#timeout": { + "in": "query", + "name": "timeout", + "description": "Period each action waits for the following operations: automatic index creation, dynamic mapping updates, waiting for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "bulk#wait_for_active_shards": { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to all or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + "bulk#require_alias": { + "in": "query", + "name": "require_alias", + "description": "If `true`, the request’s actions must target an index alias.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.aliases#name": { + "in": "path", + "name": "name", + "description": "A comma-separated list of aliases to retrieve. Supports wildcards (`*`). To retrieve all aliases, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "cat.aliases#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Whether to expand wildcard expression to concrete indices that are open, closed or both.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "cat.component_templates#name": { + "in": "path", + "name": "name", + "description": "The name of the component template. Accepts wildcard expressions. If omitted, all component templates are returned.", + "required": true, + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "simple" + }, + "cat.count#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit the request.\nSupports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "cat.indices#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit the request.\nSupports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "cat.indices#bytes": { + "in": "query", + "name": "bytes", + "description": "The unit used to display byte values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Bytes" + }, + "style": "form" + }, + "cat.indices#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "The type of index that wildcard patterns can match.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "cat.indices#health": { + "in": "query", + "name": "health", + "description": "The health status used to limit returned indices. By default, the response includes indices of any health status.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:HealthStatus" + }, + "style": "form" + }, + "cat.indices#include_unloaded_segments": { + "in": "query", + "name": "include_unloaded_segments", + "description": "If true, the response includes information from segments that are not loaded into memory.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.indices#pri": { + "in": "query", + "name": "pri", + "description": "If true, the response only includes information from primary shards.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.indices#time": { + "in": "query", + "name": "time", + "description": "The unit used to display time values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:TimeUnit" + }, + "style": "form" + }, + "cat.ml_data_frame_analytics#id": { + "in": "path", + "name": "id", + "description": "The ID of the data frame analytics to fetch", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "cat.ml_data_frame_analytics#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Whether to ignore if a wildcard expression matches no configs. (This includes `_all` string or when no configs have been specified)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.ml_data_frame_analytics#bytes": { + "in": "query", + "name": "bytes", + "description": "The unit in which to display byte values", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Bytes" + }, + "style": "form" + }, + "cat.ml_data_frame_analytics#h": { + "in": "query", + "name": "h", + "description": "Comma-separated list of column names to display.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatDfaColumns" + }, + "style": "form" + }, + "cat.ml_data_frame_analytics#s": { + "in": "query", + "name": "s", + "description": "Comma-separated list of column names or column aliases used to sort the\nresponse.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatDfaColumns" + }, + "style": "form" + }, + "cat.ml_data_frame_analytics#time": { + "in": "query", + "name": "time", + "description": "Unit used to display time values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "cat.ml_datafeeds#datafeed_id": { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "cat.ml_datafeeds#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n* Contains wildcard expressions and there are no datafeeds that match.\n* Contains the `_all` string or no identifiers and there are no matches.\n* Contains wildcard expressions and there are only partial matches.\n\nIf `true`, the API returns an empty datafeeds array when there are no matches and the subset of results when\nthere are partial matches. If `false`, the API returns a 404 status code when there are no matches or only\npartial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.ml_datafeeds#h": { + "in": "query", + "name": "h", + "description": "Comma-separated list of column names to display.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatDatafeedColumns" + }, + "style": "form" + }, + "cat.ml_datafeeds#s": { + "in": "query", + "name": "s", + "description": "Comma-separated list of column names or column aliases used to sort the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatDatafeedColumns" + }, + "style": "form" + }, + "cat.ml_datafeeds#time": { + "in": "query", + "name": "time", + "description": "The unit used to display time values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:TimeUnit" + }, + "style": "form" + }, + "cat.ml_jobs#job_id": { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "cat.ml_jobs#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n* Contains wildcard expressions and there are no jobs that match.\n* Contains the `_all` string or no identifiers and there are no matches.\n* Contains wildcard expressions and there are only partial matches.\n\nIf `true`, the API returns an empty jobs array when there are no matches and the subset of results when there\nare partial matches. If `false`, the API returns a 404 status code when there are no matches or only partial\nmatches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.ml_jobs#bytes": { + "in": "query", + "name": "bytes", + "description": "The unit used to display byte values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Bytes" + }, + "style": "form" + }, + "cat.ml_jobs#h": { + "in": "query", + "name": "h", + "description": "Comma-separated list of column names to display.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatAnonalyDetectorColumns" + }, + "style": "form" + }, + "cat.ml_jobs#s": { + "in": "query", + "name": "s", + "description": "Comma-separated list of column names or column aliases used to sort the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatAnonalyDetectorColumns" + }, + "style": "form" + }, + "cat.ml_jobs#time": { + "in": "query", + "name": "time", + "description": "The unit used to display time values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:TimeUnit" + }, + "style": "form" + }, + "cat.ml_trained_models#model_id": { + "in": "path", + "name": "model_id", + "description": "A unique identifier for the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "cat.ml_trained_models#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request: contains wildcard expressions and there are no models that match; contains the `_all` string or no identifiers and there are no matches; contains wildcard expressions and there are only partial matches.\nIf `true`, the API returns an empty array when there are no matches and the subset of results when there are partial matches.\nIf `false`, the API returns a 404 status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.ml_trained_models#bytes": { + "in": "query", + "name": "bytes", + "description": "The unit used to display byte values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Bytes" + }, + "style": "form" + }, + "cat.ml_trained_models#h": { + "in": "query", + "name": "h", + "description": "A comma-separated list of column names to display.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatTrainedModelsColumns" + }, + "style": "form" + }, + "cat.ml_trained_models#s": { + "in": "query", + "name": "s", + "description": "A comma-separated list of column names or aliases used to sort the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatTrainedModelsColumns" + }, + "style": "form" + }, + "cat.ml_trained_models#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of transforms.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "cat.ml_trained_models#size": { + "in": "query", + "name": "size", + "description": "The maximum number of transforms to display.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "cat.transforms#transform_id": { + "in": "path", + "name": "transform_id", + "description": "A transform identifier or a wildcard expression.\nIf you do not specify one of these options, the API returns information for all transforms.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "cat.transforms#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request: contains wildcard expressions and there are no transforms that match; contains the `_all` string or no identifiers and there are no matches; contains wildcard expressions and there are only partial matches.\nIf `true`, it returns an empty transforms array when there are no matches and the subset of results when there are partial matches.\nIf `false`, the request returns a 404 status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cat.transforms#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of transforms.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "cat.transforms#h": { + "in": "query", + "name": "h", + "description": "Comma-separated list of column names to display.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatTransformColumns" + }, + "style": "form" + }, + "cat.transforms#s": { + "in": "query", + "name": "s", + "description": "Comma-separated list of column names or column aliases used to sort the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/cat._types:CatTransformColumns" + }, + "style": "form" + }, + "cat.transforms#time": { + "in": "query", + "name": "time", + "description": "The unit used to display time values.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:TimeUnit" + }, + "style": "form" + }, + "cat.transforms#size": { + "in": "query", + "name": "size", + "description": "The maximum number of transforms to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "clear_scroll#scroll_id": { + "in": "path", + "name": "scroll_id", + "description": "Comma-separated list of scroll IDs to clear.\nTo clear all scroll IDs, use `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ScrollIds" + }, + "style": "simple" + }, + "cluster.get_component_template#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of component template names used to limit the request.\nWildcard (`*`) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "cluster.get_component_template#flat_settings": { + "in": "query", + "name": "flat_settings", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cluster.get_component_template#include_defaults": { + "in": "query", + "name": "include_defaults", + "description": "Return all default configurations for the component template (default: false)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cluster.get_component_template#local": { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only.\nIf `false`, information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cluster.get_component_template#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "cluster.put_component_template#name": { + "in": "path", + "name": "name", + "description": "Name of the component template to create.\nElasticsearch includes the following built-in component templates: `logs-mappings`; 'logs-settings`; `metrics-mappings`; `metrics-settings`;`synthetics-mapping`; `synthetics-settings`.\nElastic Agent uses these templates to configure backing indices for its data streams.\nIf you use Elastic Agent and want to overwrite one of these templates, set the `version` for your replacement template higher than the current version.\nIf you don’t use Elastic Agent and want to disable all built-in component and index templates, set `stack.templates.enabled` to `false` using the cluster update settings API.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "cluster.put_component_template#create": { + "in": "query", + "name": "create", + "description": "If `true`, this request cannot replace or update existing component templates.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "cluster.put_component_template#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "count#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "count#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "count#analyzer": { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "count#analyze_wildcard": { + "in": "query", + "name": "analyze_wildcard", + "description": "If `true`, wildcard and prefix queries are analyzed.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "count#default_operator": { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: `AND` or `OR`.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + "count#df": { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "count#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "count#ignore_throttled": { + "in": "query", + "name": "ignore_throttled", + "description": "If `true`, concrete, expanded or aliased indices are ignored when frozen.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "count#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "count#lenient": { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "count#min_score": { + "in": "query", + "name": "min_score", + "description": "Sets the minimum `_score` value that documents must have to be included in the result.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "count#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "count#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "count#terminate_after": { + "in": "query", + "name": "terminate_after", + "description": "Maximum number of documents to collect for each shard.\nIf a query reaches this limit, Elasticsearch terminates the query early.\nElasticsearch collects documents before sorting.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "count#q": { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "create#id": { + "in": "path", + "name": "id", + "description": "Unique identifier for the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "create#index": { + "in": "path", + "name": "index", + "description": "Name of the data stream or index to target.\nIf the target doesn’t exist and matches the name or wildcard (`*`) pattern of an index template with a `data_stream` definition, this request creates the data stream.\nIf the target doesn’t exist and doesn’t match a data stream template, this request creates the index.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "create#pipeline": { + "in": "query", + "name": "pipeline", + "description": "ID of the pipeline to use to preprocess incoming documents.\nIf the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.\nIf a final pipeline is configured it will always run, regardless of the value of this parameter.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "create#refresh": { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes 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` do nothing with refreshes.\nValid values: `true`, `false`, `wait_for`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + "create#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "create#timeout": { + "in": "query", + "name": "timeout", + "description": "Period the request waits for the following operations: automatic index creation, dynamic mapping updates, waiting for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "create#version": { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control.\nThe specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + "create#version_type": { + "in": "query", + "name": "version_type", + "description": "Specific version type: `external`, `external_gte`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + }, + "create#wait_for_active_shards": { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to `all` or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + "enrich.get_policy#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of enrich policy names used to limit the request.\nTo return information for all enrich policies, omit this parameter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "eql.search#index": { + "in": "path", + "name": "index", + "description": "The name of the index to scope the operation", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "eql.search#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "eql.search#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "eql.search#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If true, missing or closed indices are not included in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "eql.search#keep_alive": { + "in": "query", + "name": "keep_alive", + "description": "Period for which the search and its results are stored on the cluster.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "eql.search#keep_on_completion": { + "in": "query", + "name": "keep_on_completion", + "description": "If true, the search and its results are stored on the cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "eql.search#wait_for_completion_timeout": { + "in": "query", + "name": "wait_for_completion_timeout", + "description": "Timeout duration to wait for the request to finish. Defaults to no timeout, meaning the request waits for complete search results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "explain#id": { + "in": "path", + "name": "id", + "description": "Defines the document ID.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "explain#index": { + "in": "path", + "name": "index", + "description": "Index names used to limit the request.\nOnly a single index name can be provided to this parameter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "explain#analyzer": { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "explain#analyze_wildcard": { + "in": "query", + "name": "analyze_wildcard", + "description": "If `true`, wildcard and prefix queries are analyzed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "explain#default_operator": { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: `AND` or `OR`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + "explain#df": { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "explain#lenient": { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "explain#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "explain#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "explain#_source": { + "in": "query", + "name": "_source", + "description": "True or false to return the `_source` field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + "explain#_source_excludes": { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude from the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "explain#_source_includes": { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "explain#stored_fields": { + "in": "query", + "name": "stored_fields", + "description": "A comma-separated list of stored fields to return in the response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "explain#q": { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "field_caps#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit the request. Supports wildcards (*). To target all data streams and indices, omit this parameter or use * or _all.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "field_caps#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If false, the request returns an error if any wildcard expression, index alias,\nor `_all` value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request\ntargeting `foo*,bar*` returns an error if an index starts with foo but no index starts with bar.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "field_caps#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "field_caps#fields": { + "in": "query", + "name": "fields", + "description": "Comma-separated list of fields to retrieve capabilities for. Wildcard (`*`) expressions are supported.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "field_caps#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `true`, missing or closed indices are not included in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "field_caps#include_unmapped": { + "in": "query", + "name": "include_unmapped", + "description": "If true, unmapped fields are included in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "field_caps#filters": { + "in": "query", + "name": "filters", + "description": "An optional set of filters: can include +metadata,-metadata,-nested,-multifield,-parent", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "field_caps#types": { + "in": "query", + "name": "types", + "description": "Only return results for fields that have one of the types in the list", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + "graph.explore#index": { + "in": "path", + "name": "index", + "description": "Name of the index.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "graph.explore#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "graph.explore#timeout": { + "in": "query", + "name": "timeout", + "description": "Specifies the period of time to wait for a response from each shard.\nIf no response is received before the timeout expires, the request fails and returns an error.\nDefaults to no timeout.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "index#id": { + "in": "path", + "name": "id", + "description": "Unique identifier for the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "index#index": { + "in": "path", + "name": "index", + "description": "Name of the data stream or index to target.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "index#if_primary_term": { + "in": "query", + "name": "if_primary_term", + "description": "Only perform the operation if the document has this primary term.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "index#if_seq_no": { + "in": "query", + "name": "if_seq_no", + "description": "Only perform the operation if the document has this sequence number.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "style": "form" + }, + "index#op_type": { + "in": "query", + "name": "op_type", + "description": "Set to create to only index the document if it does not already exist (put if absent).\nIf a document with the specified `_id` already exists, the indexing operation will fail.\nSame as using the `/_create` endpoint.\nValid values: `index`, `create`.\nIf document id is specified, it defaults to `index`.\nOtherwise, it defaults to `create`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:OpType" + }, + "style": "form" + }, + "index#pipeline": { + "in": "query", + "name": "pipeline", + "description": "ID of the pipeline to use to preprocess incoming documents.\nIf the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.\nIf a final pipeline is configured it will always run, regardless of the value of this parameter.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "index#refresh": { + "in": "query", + "name": "refresh", + "description": "If `true`, Elasticsearch refreshes 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` do nothing with refreshes.\nValid values: `true`, `false`, `wait_for`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + "index#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "index#timeout": { + "in": "query", + "name": "timeout", + "description": "Period the request waits for the following operations: automatic index creation, dynamic mapping updates, waiting for active shards.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "index#version": { + "in": "query", + "name": "version", + "description": "Explicit version number for concurrency control.\nThe specified version must match the current version of the document for the request to succeed.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + "index#version_type": { + "in": "query", + "name": "version_type", + "description": "Specific version type: `external`, `external_gte`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + }, + "index#wait_for_active_shards": { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to all or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + "index#require_alias": { + "in": "query", + "name": "require_alias", + "description": "If `true`, the destination must be an index alias.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.analyze#index": { + "in": "path", + "name": "index", + "description": "Index used to derive the analyzer.\nIf specified, the `analyzer` or field parameter overrides this value.\nIf no index is specified or the index does not have a default analyzer, the analyze API uses the standard analyzer.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "indices.data_streams_stats#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of data streams used to limit the request.\nWildcard expressions (`*`) are supported.\nTo target all data streams in a cluster, omit this parameter or use `*`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "indices.data_streams_stats#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of data stream that wildcard patterns can match.\nSupports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.delete_alias#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams or indices used to limit the request.\nSupports wildcards (`*`).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.delete_alias#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of aliases to remove.\nSupports wildcards (`*`). To remove all aliases, use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "indices.delete_alias#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.delete_alias#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.exists_alias#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of aliases to check. Supports wildcards (`*`).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "indices.exists_alias#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams or indices used to limit the request. Supports wildcards (`*`).\nTo target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.exists_alias#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.exists_alias#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.exists_alias#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, requests that include a missing data stream or index in the target indices or data streams return an error.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.exists_alias#local": { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_alias#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of aliases to retrieve.\nSupports wildcards (`*`).\nTo retrieve all aliases, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "indices.get_alias#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams or indices used to limit the request.\nSupports wildcards (`*`).\nTo target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.get_alias#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_alias#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.get_alias#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_alias#local": { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_data_stream#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of data stream names used to limit the request.\nWildcard (`*`) expressions are supported. If omitted, all data streams are returned.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DataStreamNames" + }, + "style": "simple" + }, + "indices.get_data_stream#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of data stream that wildcard patterns can match.\nSupports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.get_data_stream#include_defaults": { + "in": "query", + "name": "include_defaults", + "description": "If true, returns all relevant default configurations for the index template.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_index_template#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list of index template names used to limit the request. Wildcard (*) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "indices.get_index_template#local": { + "in": "query", + "name": "local", + "description": "If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_index_template#flat_settings": { + "in": "query", + "name": "flat_settings", + "description": "If true, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_index_template#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.get_index_template#include_defaults": { + "in": "query", + "name": "include_defaults", + "description": "If true, returns all relevant default configurations for the index template.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_mapping#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit the request.\nSupports wildcards (`*`).\nTo target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.get_mapping#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_mapping#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.get_mapping#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_mapping#local": { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_mapping#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.get_settings#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit\nthe request. Supports wildcards (`*`). To target all data streams and\nindices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.get_settings#name": { + "in": "path", + "name": "name", + "description": "Comma-separated list or wildcard expression of settings to retrieve.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "indices.get_settings#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index\nalias, or `_all` value targets only missing or closed indices. This\nbehavior applies even if the request targets other open indices. For\nexample, a request targeting `foo*,bar*` returns an error if an index\nstarts with foo but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_settings#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.get_settings#flat_settings": { + "in": "query", + "name": "flat_settings", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_settings#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_settings#include_defaults": { + "in": "query", + "name": "include_defaults", + "description": "If `true`, return all default settings in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_settings#local": { + "in": "query", + "name": "local", + "description": "If `true`, the request retrieves information from the local node only. If\n`false`, information is retrieved from the master node.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.get_settings#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is\nreceived before the timeout expires, the request fails and returns an\nerror.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_alias#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams or indices to add.\nSupports wildcards (`*`).\nWildcard patterns that match both data streams and indices return an error.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.put_alias#name": { + "in": "path", + "name": "name", + "description": "Alias to update.\nIf the alias doesn’t exist, the request creates it.\nIndex alias names support date math.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "indices.put_alias#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_alias#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_index_template#name": { + "in": "path", + "name": "name", + "description": "Index or template name", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "indices.put_index_template#create": { + "in": "query", + "name": "create", + "description": "If `true`, this request cannot replace or update existing index templates.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_mapping#index": { + "in": "path", + "name": "index", + "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.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.put_mapping#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_mapping#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.put_mapping#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_mapping#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_mapping#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_mapping#write_index_only": { + "in": "query", + "name": "write_index_only", + "description": "If `true`, the mappings are applied only to the current write index for the target.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_settings#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit\nthe request. Supports wildcards (`*`). To target all data streams and\nindices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.put_settings#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index\nalias, or `_all` value targets only missing or closed indices. This\nbehavior applies even if the request targets other open indices. For\nexample, a request targeting `foo*,bar*` returns an error if an index\nstarts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_settings#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match. If the request can target\ndata streams, this argument determines whether wildcard expressions match\nhidden data streams. Supports comma-separated values, such as\n`open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.put_settings#flat_settings": { + "in": "query", + "name": "flat_settings", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_settings#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_settings#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is\nreceived before the timeout expires, the request fails and returns an\nerror.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_settings#preserve_existing": { + "in": "query", + "name": "preserve_existing", + "description": "If `true`, existing index settings remain unchanged.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_settings#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the\n timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_template#name": { + "in": "path", + "name": "name", + "description": "The name of the template", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "indices.put_template#create": { + "in": "query", + "name": "create", + "description": "If true, this request cannot replace or update existing index templates.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_template#flat_settings": { + "in": "query", + "name": "flat_settings", + "description": "If `true`, returns settings in flat format.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.put_template#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is\nreceived before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_template#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.put_template#order": { + "in": "query", + "name": "order", + "description": "Order in which Elasticsearch applies this template if index\nmatches multiple templates.\n\nTemplates with lower 'order' values are merged first. Templates with higher\n'order' values are merged later, overriding templates with lower values.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "indices.refresh#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases used to limit the request.\nSupports wildcards (`*`).\nTo target all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.refresh#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.refresh#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.refresh#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.rollover#alias": { + "in": "path", + "name": "alias", + "description": "Name of the data stream or index alias to roll over.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexAlias" + }, + "style": "simple" + }, + "indices.rollover#new_index": { + "in": "path", + "name": "new_index", + "description": "Name of the index to create.\nSupports date math.\nData streams do not support this parameter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "indices.rollover#dry_run": { + "in": "query", + "name": "dry_run", + "description": "If `true`, checks whether the current index satisfies the specified conditions but does not perform a rollover.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.rollover#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.rollover#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.rollover#wait_for_active_shards": { + "in": "query", + "name": "wait_for_active_shards", + "description": "The number of shard copies that must be active before proceeding with the operation.\nSet to all or any positive integer up to the total number of shards in the index (`number_of_replicas+1`).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:WaitForActiveShards" + }, + "style": "form" + }, + "indices.simulate_template#name": { + "in": "path", + "name": "name", + "description": "Name of the index template to simulate. To test a template configuration before you add it to the cluster, omit\nthis parameter and specify the template configuration in the request body.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "indices.simulate_template#create": { + "in": "query", + "name": "create", + "description": "If true, the template passed in the body is only used if no existing templates match the same index patterns. If false, the simulation uses the template with the highest priority. Note that the template is not permanently added or updated in either case; it is only used for the simulation.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.simulate_template#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "indices.simulate_template#include_defaults": { + "in": "query", + "name": "include_defaults", + "description": "If true, returns all relevant default configurations for the index template.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams or indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "indices.validate_query#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#all_shards": { + "in": "query", + "name": "all_shards", + "description": "If `true`, the validation is executed on all shards instead of one random shard per index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#analyzer": { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "indices.validate_query#analyze_wildcard": { + "in": "query", + "name": "analyze_wildcard", + "description": "If `true`, wildcard and prefix queries are analyzed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#default_operator": { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: `AND` or `OR`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + "indices.validate_query#df": { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "indices.validate_query#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "indices.validate_query#explain": { + "in": "query", + "name": "explain", + "description": "If `true`, the response returns detailed information if an error has occurred.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#lenient": { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#rewrite": { + "in": "query", + "name": "rewrite", + "description": "If `true`, returns a more detailed explanation showing the actual Lucene query that will be executed.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "indices.validate_query#q": { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "ingest.get_pipeline#id": { + "in": "path", + "name": "id", + "description": "Comma-separated list of pipeline IDs to retrieve.\nWildcard (`*`) expressions are supported.\nTo get all ingest pipelines, omit this parameter or use `*`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ingest.get_pipeline#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "ingest.get_pipeline#summary": { + "in": "query", + "name": "summary", + "description": "Return pipelines without their definitions (default: false)", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ingest.simulate#id": { + "in": "path", + "name": "id", + "description": "Pipeline to test.\nIf you don’t specify a `pipeline` in the request body, this parameter is required.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ingest.simulate#verbose": { + "in": "query", + "name": "verbose", + "description": "If `true`, the response includes output data for each processor in the executed pipeline.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "logstash.get_pipeline#id": { + "in": "path", + "name": "id", + "description": "Comma-separated list of pipeline identifiers.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "mget#index": { + "in": "path", + "name": "index", + "description": "Name of the index to retrieve documents from when `ids` are specified, or when a document in the `docs` array does not specify an index.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "mget#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on. Random by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "mget#realtime": { + "in": "query", + "name": "realtime", + "description": "If `true`, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mget#refresh": { + "in": "query", + "name": "refresh", + "description": "If `true`, the request refreshes relevant shards before retrieving documents.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mget#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "mget#_source": { + "in": "query", + "name": "_source", + "description": "True or false to return the `_source` field or not, or a list of fields to return.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + "mget#_source_excludes": { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude from the response.\nYou can also use this parameter to exclude fields from the subset specified in `_source_includes` query parameter.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "mget#_source_includes": { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.\nIf this parameter is specified, only these source fields are returned. You can exclude fields from this subset using the `_source_excludes` query parameter.\nIf the `_source` parameter is `false`, this parameter is ignored.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "mget#stored_fields": { + "in": "query", + "name": "stored_fields", + "description": "If `true`, retrieves the document fields stored in the index rather than the document `_source`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "ml.get_calendars#calendar_id": { + "in": "path", + "name": "calendar_id", + "description": "A string that uniquely identifies a calendar. You can get information for multiple calendars by using a comma-separated list of ids or a wildcard expression. You can get information for all calendars by using `_all` or `*` or by omitting the calendar identifier.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_calendars#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of calendars. This parameter is supported only when you omit the calendar identifier.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_calendars#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of calendars to obtain. This parameter is supported only when you omit the calendar identifier.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_data_frame_analytics#id": { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. If you do not specify this\noption, the API returns information for the first hundred data frame\nanalytics jobs.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_data_frame_analytics#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no data frame analytics\njobs that match.\n2. Contains the `_all` string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value returns an empty data_frame_analytics array when there\nare no matches and the subset of results when there are partial matches.\nIf this parameter is `false`, the request returns a 404 status code when\nthere are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_data_frame_analytics#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of data frame analytics jobs.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_data_frame_analytics#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of data frame analytics jobs to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_data_frame_analytics#exclude_generated": { + "in": "query", + "name": "exclude_generated", + "description": "Indicates if certain fields should be removed from the configuration on\nretrieval. This allows the configuration to be in an acceptable format to\nbe retrieved and then added to another cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_data_frame_analytics_stats#id": { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job. If you do not specify this\noption, the API returns information for the first hundred data frame\nanalytics jobs.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_data_frame_analytics_stats#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no data frame analytics\njobs that match.\n2. Contains the `_all` string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value returns an empty data_frame_analytics array when there\nare no matches and the subset of results when there are partial matches.\nIf this parameter is `false`, the request returns a 404 status code when\nthere are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_data_frame_analytics_stats#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of data frame analytics jobs.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_data_frame_analytics_stats#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of data frame analytics jobs to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_data_frame_analytics_stats#verbose": { + "in": "query", + "name": "verbose", + "description": "Defines whether the stats response should be verbose.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_datafeed_stats#datafeed_id": { + "in": "path", + "name": "datafeed_id", + "description": "Identifier for the datafeed. It can be a datafeed identifier or a\nwildcard expression. If you do not specify one of these options, the API\nreturns information about all datafeeds.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "ml.get_datafeed_stats#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no datafeeds that match.\n2. Contains the `_all` string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value is `true`, which returns an empty `datafeeds` array\nwhen there are no matches and the subset of results when there are\npartial matches. If this parameter is `false`, the request returns a\n`404` status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_datafeeds#datafeed_id": { + "in": "path", + "name": "datafeed_id", + "description": "Identifier for the datafeed. It can be a datafeed identifier or a\nwildcard expression. If you do not specify one of these options, the API\nreturns information about all datafeeds.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "ml.get_datafeeds#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no datafeeds that match.\n2. Contains the `_all` string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value is `true`, which returns an empty `datafeeds` array\nwhen there are no matches and the subset of results when there are\npartial matches. If this parameter is `false`, the request returns a\n`404` status code when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_datafeeds#exclude_generated": { + "in": "query", + "name": "exclude_generated", + "description": "Indicates if certain fields should be removed from the configuration on\nretrieval. This allows the configuration to be in an acceptable format to\nbe retrieved and then added to another cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_filters#filter_id": { + "in": "path", + "name": "filter_id", + "description": "A string that uniquely identifies a filter.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "ml.get_filters#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of filters.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_filters#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of filters to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_job_stats#job_id": { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job. It can be a job identifier, a\ngroup name, a comma-separated list of jobs, or a wildcard expression. If\nyou do not specify one of these options, the API returns information for\nall anomaly detection jobs.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_job_stats#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no jobs that match.\n2. Contains the _all string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nIf `true`, the API returns an empty `jobs` array when\nthere are no matches and the subset of results when there are partial\nmatches. If `false`, the API returns a `404` status\ncode when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_jobs#job_id": { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job. It can be a job identifier, a\ngroup name, or a wildcard expression. If you do not specify one of these\noptions, the API returns information for all anomaly detection jobs.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "ml.get_jobs#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no jobs that match.\n2. Contains the _all string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nThe default value is `true`, which returns an empty `jobs` array when\nthere are no matches and the subset of results when there are partial\nmatches. If this parameter is `false`, the request returns a `404` status\ncode when there are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_jobs#exclude_generated": { + "in": "query", + "name": "exclude_generated", + "description": "Indicates if certain fields should be removed from the configuration on\nretrieval. This allows the configuration to be in an acceptable format to\nbe retrieved and then added to another cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_overall_buckets#job_id": { + "in": "path", + "name": "job_id", + "description": "Identifier for the anomaly detection job. It can be a job identifier, a\ngroup name, a comma-separated list of jobs or groups, or a wildcard\nexpression.\n\nYou can summarize the bucket results for all anomaly detection jobs by\nusing `_all` or by specifying `*` as the ``.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_overall_buckets#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no jobs that match.\n2. Contains the `_all` string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nIf `true`, the request returns an empty `jobs` array when there are no\nmatches and the subset of results when there are partial matches. If this\nparameter is `false`, the request returns a `404` status code when there\nare no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_overall_buckets#bucket_span": { + "in": "query", + "name": "bucket_span", + "description": "The span of the overall buckets. Must be greater or equal to the largest\nbucket span of the specified anomaly detection jobs, which is the default\nvalue.\n\nBy default, an overall bucket has a span equal to the largest bucket span\nof the specified anomaly detection jobs. To override that behavior, use\nthe optional `bucket_span` parameter.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "ml.get_overall_buckets#end": { + "in": "query", + "name": "end", + "description": "Returns overall buckets with timestamps earlier than this time.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + "ml.get_overall_buckets#exclude_interim": { + "in": "query", + "name": "exclude_interim", + "description": "If `true`, the output excludes interim results.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_overall_buckets#overall_score": { + "in": "query", + "name": "overall_score", + "description": "Returns overall buckets with overall scores greater than or equal to this\nvalue.", + "deprecated": false, + "schema": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "style": "form" + }, + "ml.get_overall_buckets#start": { + "in": "query", + "name": "start", + "description": "Returns overall buckets with timestamps after this time.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + "ml.get_overall_buckets#top_n": { + "in": "query", + "name": "top_n", + "description": "The number of top anomaly detection job bucket scores to be used in the\n`overall_score` calculation.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_trained_models#model_id": { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.get_trained_models#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n- Contains wildcard expressions and there are no models that match.\n- Contains the _all string or no identifiers and there are no matches.\n- Contains wildcard expressions and there are only partial matches.\n\nIf true, it returns an empty array when there are no matches and the\nsubset of results when there are partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_trained_models#decompress_definition": { + "in": "query", + "name": "decompress_definition", + "description": "Specifies whether the included model definition should be returned as a\nJSON map (true) or in a custom compressed format (false).", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_trained_models#exclude_generated": { + "in": "query", + "name": "exclude_generated", + "description": "Indicates if certain fields should be removed from the configuration on\nretrieval. This allows the configuration to be in an acceptable format to\nbe retrieved and then added to another cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_trained_models#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of models.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_trained_models#include": { + "in": "query", + "name": "include", + "description": "A comma delimited string of optional fields to include in the response\nbody.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/ml._types:Include" + }, + "style": "form" + }, + "ml.get_trained_models#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of models to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_trained_models#tags": { + "in": "query", + "name": "tags", + "description": "A comma delimited string of tags. A trained model can have many tags, or\nnone. When supplied, only trained models that contain all the supplied\ntags are returned.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "ml.get_trained_models_stats#model_id": { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model or a model alias. It can be a\ncomma-separated list or a wildcard expression.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Ids" + }, + "style": "simple" + }, + "ml.get_trained_models_stats#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n- Contains wildcard expressions and there are no models that match.\n- Contains the _all string or no identifiers and there are no matches.\n- Contains wildcard expressions and there are only partial matches.\n\nIf true, it returns an empty array when there are no matches and the\nsubset of results when there are partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "ml.get_trained_models_stats#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of models.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.get_trained_models_stats#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of models to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "ml.infer_trained_model#model_id": { + "in": "path", + "name": "model_id", + "description": "The unique identifier of the trained model.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.infer_trained_model#timeout": { + "in": "query", + "name": "timeout", + "description": "Controls the amount of time to wait for inference results.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "ml.preview_data_frame_analytics#id": { + "in": "path", + "name": "id", + "description": "Identifier for the data frame analytics job.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.preview_datafeed#datafeed_id": { + "in": "path", + "name": "datafeed_id", + "description": "A numerical character string that uniquely identifies the datafeed. This identifier can contain lowercase\nalphanumeric characters (a-z and 0-9), hyphens, and underscores. It must start and end with alphanumeric\ncharacters. NOTE: If you use this path parameter, you cannot provide datafeed or anomaly detection job\nconfiguration details in the request body.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "ml.preview_datafeed#start": { + "in": "query", + "name": "start", + "description": "The start time from where the datafeed preview should begin", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + "ml.preview_datafeed#end": { + "in": "query", + "name": "end", + "description": "The end time when the datafeed preview should stop", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "style": "form" + }, + "msearch#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and index aliases to search.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "msearch#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If false, the request returns an error if any wildcard expression, index alias, or _all value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targeting foo*,bar* returns an error if an index starts with foo but no index starts with bar.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch#ccs_minimize_roundtrips": { + "in": "query", + "name": "ccs_minimize_roundtrips", + "description": "If true, network roundtrips between the coordinating node and remote clusters are minimized for cross-cluster search requests.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard expressions can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "msearch#ignore_throttled": { + "in": "query", + "name": "ignore_throttled", + "description": "If true, concrete, expanded or aliased indices are ignored when frozen.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If true, missing or closed indices are not included in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch#max_concurrent_searches": { + "in": "query", + "name": "max_concurrent_searches", + "description": "Maximum number of concurrent searches the multi search API can execute.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "msearch#max_concurrent_shard_requests": { + "in": "query", + "name": "max_concurrent_shard_requests", + "description": "Maximum number of concurrent shard requests that each sub-search request executes per node.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "msearch#pre_filter_shard_size": { + "in": "query", + "name": "pre_filter_shard_size", + "description": "Defines 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 its rewrite method i.e., if date filters are mandatory to match but the shard bounds and the query are disjoint.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "msearch#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "description": "If true, hits.total are returned as an integer in the response. Defaults to false, which returns an object.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch#routing": { + "in": "query", + "name": "routing", + "description": "Custom routing value used to route search operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "msearch#search_type": { + "in": "query", + "name": "search_type", + "description": "Indicates whether global term and document frequencies should be used when scoring returned documents.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + "msearch#typed_keys": { + "in": "query", + "name": "typed_keys", + "description": "Specifies whether aggregation and suggester names should be prefixed by their respective types in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch_template#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams and indices, omit this parameter or use `*`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "msearch_template#ccs_minimize_roundtrips": { + "in": "query", + "name": "ccs_minimize_roundtrips", + "description": "If `true`, network round-trips are minimized for cross-cluster search requests.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch_template#max_concurrent_searches": { + "in": "query", + "name": "max_concurrent_searches", + "description": "Maximum number of concurrent searches the API can run.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "msearch_template#search_type": { + "in": "query", + "name": "search_type", + "description": "The type of the search operation.\nAvailable options: `query_then_fetch`, `dfs_query_then_fetch`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + "msearch_template#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "description": "If `true`, the response returns `hits.total` as an integer.\nIf `false`, it returns `hits.total` as an object.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "msearch_template#typed_keys": { + "in": "query", + "name": "typed_keys", + "description": "If `true`, the response prefixes aggregation and suggester names with their respective types.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#index": { + "in": "path", + "name": "index", + "description": "Name of the index that contains the documents.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "mtermvectors#ids": { + "in": "query", + "name": "ids", + "description": "A comma-separated list of documents ids. You must define ids as parameter or set \"ids\" or \"docs\" in the request body", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "style": "form" + }, + "mtermvectors#fields": { + "in": "query", + "name": "fields", + "description": "Comma-separated list or wildcard expressions of fields to include in the statistics.\nUsed as the default list unless a specific field list is provided in the `completion_fields` or `fielddata_fields` parameters.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "mtermvectors#field_statistics": { + "in": "query", + "name": "field_statistics", + "description": "If `true`, the response includes the document count, sum of document frequencies, and sum of total term frequencies.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#offsets": { + "in": "query", + "name": "offsets", + "description": "If `true`, the response includes term offsets.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#payloads": { + "in": "query", + "name": "payloads", + "description": "If `true`, the response includes term payloads.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#positions": { + "in": "query", + "name": "positions", + "description": "If `true`, the response includes term positions.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "mtermvectors#realtime": { + "in": "query", + "name": "realtime", + "description": "If true, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "mtermvectors#term_statistics": { + "in": "query", + "name": "term_statistics", + "description": "If true, the response includes term frequency and document frequency.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "mtermvectors#version": { + "in": "query", + "name": "version", + "description": "If `true`, returns the document version as part of a hit.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + "mtermvectors#version_type": { + "in": "query", + "name": "version_type", + "description": "Specific version type.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + }, + "put_script#id": { + "in": "path", + "name": "id", + "description": "Identifier for the stored script or search template.\nMust be unique within the cluster.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "put_script#context": { + "in": "path", + "name": "context", + "description": "Context in which the script or search template should run.\nTo prevent errors, the API immediately compiles the script or template in this context.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "put_script#master_timeout": { + "in": "query", + "name": "master_timeout", + "description": "Period to wait for a connection to the master node.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "put_script#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "rank_eval#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and index aliases used to limit the request. Wildcard (`*`) expressions are supported.\nTo target all data streams and indices in a cluster, omit this parameter or use `_all` or `*`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "rank_eval#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "rank_eval#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Whether to expand wildcard expression to concrete indices that are open, closed or both.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "rank_eval#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `true`, missing or closed indices are not included in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "rank_eval#search_type": { + "in": "query", + "name": "search_type", + "description": "Search operation type", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "render_search_template#id": { + "in": "path", + "name": "id", + "description": "ID of the search template to render.\nIf no `source` is specified, this or the `id` request body parameter is required.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "scroll#scroll_id": { + "in": "path", + "name": "scroll_id", + "description": "The scroll ID", + "required": true, + "deprecated": true, + "schema": { + "$ref": "#/components/schemas/_types:ScrollId" + }, + "style": "simple" + }, + "scroll#scroll": { + "in": "query", + "name": "scroll", + "description": "Period to retain the search context for scrolling.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "scroll#scroll_id_": { + "in": "query", + "name": "scroll_id", + "description": "The scroll ID for scrolled search", + "deprecated": true, + "schema": { + "$ref": "#/components/schemas/_types:ScrollId" + }, + "style": "form" + }, + "scroll#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "description": "If true, the API response’s hit.total property is returned as an integer. If false, the API response’s hit.total property is returned as an object.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and aliases to search.\nSupports wildcards (`*`).\nTo search all data streams and indices, omit this parameter or use `*` or `_all`.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "search#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.\nFor example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#allow_partial_search_results": { + "in": "query", + "name": "allow_partial_search_results", + "description": "If true, returns partial results if there are shard request timeouts or shard failures. If false, returns an error with no partial results.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#analyzer": { + "in": "query", + "name": "analyzer", + "description": "Analyzer to use for the query string.\nThis parameter can only be used when the q query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search#analyze_wildcard": { + "in": "query", + "name": "analyze_wildcard", + "description": "If true, wildcard and prefix queries are analyzed.\nThis parameter can only be used when the q query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#batched_reduce_size": { + "in": "query", + "name": "batched_reduce_size", + "description": "The number of shard results that should be reduced at once on the coordinating node.\nThis 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.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#ccs_minimize_roundtrips": { + "in": "query", + "name": "ccs_minimize_roundtrips", + "description": "If true, network round-trips between the coordinating node and the remote clusters are minimized when executing cross-cluster search (CCS) requests.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#default_operator": { + "in": "query", + "name": "default_operator", + "description": "The default operator for query string query: AND or OR.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "style": "form" + }, + "search#df": { + "in": "query", + "name": "df", + "description": "Field to use as default where no field prefix is given in the query string.\nThis parameter can only be used when the q query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search#docvalue_fields": { + "in": "query", + "name": "docvalue_fields", + "description": "A comma-separated list of fields to return as the docvalue representation for each hit.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "search#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "search#explain": { + "in": "query", + "name": "explain", + "description": "If `true`, returns detailed information about score computation as part of a hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#ignore_throttled": { + "in": "query", + "name": "ignore_throttled", + "description": "If `true`, concrete, expanded or aliased indices will be ignored when frozen.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#lenient": { + "in": "query", + "name": "lenient", + "description": "If `true`, format-based query failures (such as providing text to a numeric field) in the query string will be ignored.\nThis parameter can only be used when the `q` query string parameter is specified.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#max_concurrent_shard_requests": { + "in": "query", + "name": "max_concurrent_shard_requests", + "description": "Defines the number of concurrent shard requests per node this search executes concurrently.\nThis value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#min_compatible_shard_node": { + "in": "query", + "name": "min_compatible_shard_node", + "description": "The minimum version of the node that can handle the request\nAny handling node with a lower version will fail the request.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "style": "form" + }, + "search#preference": { + "in": "query", + "name": "preference", + "description": "Nodes and shards used for the search.\nBy default, Elasticsearch selects from eligible nodes and shards using adaptive replica selection, accounting for allocation awareness. Valid values are:\n`_only_local` to run the search only on shards on the local node;\n`_local` to, if possible, run the search on shards on the local node, or if not, select shards using the default method;\n`_only_nodes:,` to run the search on only the specified nodes IDs, where, if suitable shards exist on more than one selected node, use shards on those nodes using the default method, or if none of the specified nodes are available, select shards from any available node using the default method;\n`_prefer_nodes:,` to if possible, run the search on the specified nodes IDs, or if not, select shards using the default method;\n`_shards:,` to run the search only on the specified shards;\n`` (any string that does not start with `_`) to route searches with the same `` to the same shards in the same order.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search#pre_filter_shard_size": { + "in": "query", + "name": "pre_filter_shard_size", + "description": "Defines 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.\nThis filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method (if date filters are mandatory to match but the shard bounds and the query are disjoint).\nWhen unspecified, the pre-filter phase is executed if any of these conditions is met:\nthe request targets more than 128 shards;\nthe request targets one or more read-only index;\nthe primary sort of the query targets an indexed field.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#request_cache": { + "in": "query", + "name": "request_cache", + "description": "If `true`, the caching of search results is enabled for requests where `size` is `0`.\nDefaults to index level settings.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "search#scroll": { + "in": "query", + "name": "scroll", + "description": "Period to retain the search context for scrolling. See Scroll search results.\nBy default, this value cannot exceed `1d` (24 hours).\nYou can change this limit using the `search.max_keep_alive` cluster-level setting.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "search#search_type": { + "in": "query", + "name": "search_type", + "description": "How distributed term frequencies are calculated for relevance scoring.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + "search#stats": { + "in": "query", + "name": "stats", + "description": "Specific `tag` of the request for logging and statistical purposes.", + "deprecated": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "style": "form" + }, + "search#stored_fields": { + "in": "query", + "name": "stored_fields", + "description": "A comma-separated list of stored fields to return as part of a hit.\nIf no fields are specified, no stored fields are included in the response.\nIf this field is specified, the `_source` parameter defaults to `false`.\nYou can pass `_source: true` to return both source fields and stored fields in the search response.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "search#suggest_field": { + "in": "query", + "name": "suggest_field", + "description": "Specifies which field to use for suggestions.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Field" + }, + "style": "form" + }, + "search#suggest_mode": { + "in": "query", + "name": "suggest_mode", + "description": "Specifies the suggest mode.\nThis parameter can only be used when the `suggest_field` and `suggest_text` query string parameters are specified.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SuggestMode" + }, + "style": "form" + }, + "search#suggest_size": { + "in": "query", + "name": "suggest_size", + "description": "Number of suggestions to return.\nThis parameter can only be used when the `suggest_field` and `suggest_text` query string parameters are specified.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#suggest_text": { + "in": "query", + "name": "suggest_text", + "description": "The source text for which the suggestions should be returned.\nThis parameter can only be used when the `suggest_field` and `suggest_text` query string parameters are specified.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search#terminate_after": { + "in": "query", + "name": "terminate_after", + "description": "Maximum number of documents to collect for each shard.\nIf a query reaches this limit, Elasticsearch terminates the query early.\nElasticsearch collects documents before sorting.\nUse with caution.\nElasticsearch applies this parameter to each shard handling the request.\nWhen possible, let Elasticsearch perform early termination automatically.\nAvoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers.\nIf set to `0` (default), the query does not terminate early.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#timeout": { + "in": "query", + "name": "timeout", + "description": "Specifies the period of time to wait for a response from each shard.\nIf no response is received before the timeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "search#track_total_hits": { + "in": "query", + "name": "track_total_hits", + "description": "Number of hits matching the query to count accurately.\nIf `true`, the exact number of hits is returned at the cost of some performance.\nIf `false`, the response does not include the total number of hits matching the query.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "style": "form" + }, + "search#track_scores": { + "in": "query", + "name": "track_scores", + "description": "If `true`, calculate and return document scores, even if the scores are not used for sorting.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#typed_keys": { + "in": "query", + "name": "typed_keys", + "description": "If `true`, aggregation and suggester names are be prefixed by their respective types in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "description": "Indicates whether `hits.total` should be rendered as an integer or an object in the rest search response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#version": { + "in": "query", + "name": "version", + "description": "If `true`, returns document version as part of a hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#_source": { + "in": "query", + "name": "_source", + "description": "Indicates which source fields are returned for matching documents.\nThese fields are returned in the `hits._source` property of the search response.\nValid values are:\n`true` to return the entire document source;\n`false` to not return the document source;\n`` to return the source fields that are specified as a comma-separated list (supports wildcard (`*`) patterns).", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search._types:SourceConfigParam" + }, + "style": "form" + }, + "search#_source_excludes": { + "in": "query", + "name": "_source_excludes", + "description": "A comma-separated list of source fields to exclude from the response.\nYou can also use this parameter to exclude fields from the subset specified in `_source_includes` query parameter.\nIf the `_source` parameter is `false`, this parameter is ignored.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "search#_source_includes": { + "in": "query", + "name": "_source_includes", + "description": "A comma-separated list of source fields to include in the response.\nIf this parameter is specified, only these source fields are returned.\nYou can exclude fields from this subset using the `_source_excludes` query parameter.\nIf the `_source` parameter is `false`, this parameter is ignored.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "search#seq_no_primary_term": { + "in": "query", + "name": "seq_no_primary_term", + "description": "If `true`, returns sequence number and primary term of the last modification of each hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search#q": { + "in": "query", + "name": "q", + "description": "Query in the Lucene query string syntax using query parameter search.\nQuery parameter searches do not support the full Elasticsearch Query DSL but are handy for testing.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search#size": { + "in": "query", + "name": "size", + "description": "Defines the number of hits to return.\nBy default, you cannot page through more than 10,000 hits using the `from` and `size` parameters.\nTo page through more hits, use the `search_after` parameter.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#from": { + "in": "query", + "name": "from", + "description": "Starting document offset.\nNeeds to be non-negative.\nBy default, you cannot page through more than 10,000 hits using the `from` and `size` parameters.\nTo page through more hits, use the `search_after` parameter.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search#sort": { + "in": "query", + "name": "sort", + "description": "A comma-separated list of : pairs.", + "deprecated": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "style": "form" + }, + "search_application.get_behavioral_analytics#name": { + "in": "path", + "name": "name", + "description": "A list of analytics collections to limit the returned information", + "required": true, + "deprecated": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "style": "simple" + }, + "search_application.search#name": { + "in": "path", + "name": "name", + "description": "The name of the search application to be searched.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "search_mvt#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, or aliases to search", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "search_mvt#field": { + "in": "path", + "name": "field", + "description": "Field containing geospatial data to return", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Field" + }, + "style": "simple" + }, + "search_mvt#zoom": { + "in": "path", + "name": "zoom", + "description": "Zoom level for the vector tile to search", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search_mvt._types:ZoomLevel" + }, + "style": "simple" + }, + "search_mvt#x": { + "in": "path", + "name": "x", + "description": "X coordinate for the vector tile to search", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search_mvt._types:Coordinate" + }, + "style": "simple" + }, + "search_mvt#y": { + "in": "path", + "name": "y", + "description": "Y coordinate for the vector tile to search", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search_mvt._types:Coordinate" + }, + "style": "simple" + }, + "search_mvt#exact_bounds": { + "in": "query", + "name": "exact_bounds", + "description": "If false, the meta layer’s feature is the bounding box of the tile.\nIf true, the meta layer’s feature is a bounding box resulting from a\ngeo_bounds aggregation. The aggregation runs on values that intersect\nthe // tile with wrap_longitude set to false. The resulting\nbounding box may be larger than the vector tile.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_mvt#extent": { + "in": "query", + "name": "extent", + "description": "Size, in pixels, of a side of the tile. Vector tiles are square with equal sides.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search_mvt#grid_agg": { + "in": "query", + "name": "grid_agg", + "description": "Aggregation used to create a grid for `field`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search_mvt._types:GridAggregationType" + }, + "style": "form" + }, + "search_mvt#grid_precision": { + "in": "query", + "name": "grid_precision", + "description": "Additional zoom levels available through the aggs layer. For example, if is 7\nand grid_precision is 8, you can zoom in up to level 15. Accepts 0-8. If 0, results\ndon’t include the aggs layer.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search_mvt#grid_type": { + "in": "query", + "name": "grid_type", + "description": "Determines the geometry type for features in the aggs layer. In the aggs layer,\neach feature represents a geotile_grid cell. If 'grid' each feature is a Polygon\nof the cells bounding box. If 'point' each feature is a Point that is the centroid\nof the cell.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_global.search_mvt._types:GridType" + }, + "style": "form" + }, + "search_mvt#size": { + "in": "query", + "name": "size", + "description": "Maximum number of features to return in the hits layer. Accepts 0-10000.\nIf 0, results don’t include the hits layer.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "search_mvt#with_labels": { + "in": "query", + "name": "with_labels", + "description": "If `true`, the hits and aggs layers will contain additional point features representing\nsuggested label positions for the original features.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices,\nand aliases to search. Supports wildcards (*).", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Indices" + }, + "style": "simple" + }, + "search_template#allow_no_indices": { + "in": "query", + "name": "allow_no_indices", + "description": "If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices.\nThis behavior applies even if the request targets other open indices.\nFor example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#ccs_minimize_roundtrips": { + "in": "query", + "name": "ccs_minimize_roundtrips", + "description": "If `true`, network round-trips are minimized for cross-cluster search requests.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#expand_wildcards": { + "in": "query", + "name": "expand_wildcards", + "description": "Type of index that wildcard patterns can match.\nIf the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.\nSupports comma-separated values, such as `open,hidden`.\nValid values are: `all`, `open`, `closed`, `hidden`, `none`.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "style": "form" + }, + "search_template#explain": { + "in": "query", + "name": "explain", + "description": "If `true`, the response includes additional details about score computation as part of a hit.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#ignore_throttled": { + "in": "query", + "name": "ignore_throttled", + "description": "If `true`, specified concrete, expanded, or aliased indices are not included in the response when throttled.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#ignore_unavailable": { + "in": "query", + "name": "ignore_unavailable", + "description": "If `false`, the request returns an error if it targets a missing or closed index.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "search_template#profile": { + "in": "query", + "name": "profile", + "description": "If `true`, the query execution is profiled.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "search_template#scroll": { + "in": "query", + "name": "scroll", + "description": "Specifies how long a consistent view of the index\nshould be maintained for scrolled search.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + }, + "search_template#search_type": { + "in": "query", + "name": "search_type", + "description": "The type of the search operation.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "style": "form" + }, + "search_template#rest_total_hits_as_int": { + "in": "query", + "name": "rest_total_hits_as_int", + "description": "If true, hits.total are rendered as an integer in the response.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "search_template#typed_keys": { + "in": "query", + "name": "typed_keys", + "description": "If `true`, the response prefixes aggregation and suggester names with their respective types.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "security.create_api_key#refresh": { + "in": "query", + "name": "refresh", + "description": "If `true` (the default) 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` then do nothing with refreshes.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Refresh" + }, + "style": "form" + }, + "security.has_privileges#user": { + "in": "path", + "name": "user", + "description": "Username", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Name" + }, + "style": "simple" + }, + "security.query_api_keys#with_limited_by": { + "in": "query", + "name": "with_limited_by", + "description": "Return the snapshot of the owner user's role descriptors associated with the API key. \nAn API key's actual permission is the intersection of its assigned role descriptors and the owner user's role descriptors.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "sql.query#format": { + "in": "query", + "name": "format", + "description": "Format for the response.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "terms_enum#index": { + "in": "path", + "name": "index", + "description": "Comma-separated list of data streams, indices, and index aliases to search. Wildcard (*) expressions are supported.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "termvectors#index": { + "in": "path", + "name": "index", + "description": "Name of the index that contains the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "style": "simple" + }, + "termvectors#id": { + "in": "path", + "name": "id", + "description": "Unique identifier of the document.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "termvectors#fields": { + "in": "query", + "name": "fields", + "description": "Comma-separated list or wildcard expressions of fields to include in the statistics.\nUsed as the default list unless a specific field list is provided in the `completion_fields` or `fielddata_fields` parameters.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Fields" + }, + "style": "form" + }, + "termvectors#field_statistics": { + "in": "query", + "name": "field_statistics", + "description": "If `true`, the response includes the document count, sum of document frequencies, and sum of total term frequencies.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#offsets": { + "in": "query", + "name": "offsets", + "description": "If `true`, the response includes term offsets.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#payloads": { + "in": "query", + "name": "payloads", + "description": "If `true`, the response includes term payloads.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#positions": { + "in": "query", + "name": "positions", + "description": "If `true`, the response includes term positions.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#preference": { + "in": "query", + "name": "preference", + "description": "Specifies the node or shard the operation should be performed on.\nRandom by default.", + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "termvectors#realtime": { + "in": "query", + "name": "realtime", + "description": "If true, the request is real-time as opposed to near-real-time.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#routing": { + "in": "query", + "name": "routing", + "description": "Custom value used to route operations to a specific shard.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Routing" + }, + "style": "form" + }, + "termvectors#term_statistics": { + "in": "query", + "name": "term_statistics", + "description": "If `true`, the response includes term frequency and document frequency.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "termvectors#version": { + "in": "query", + "name": "version", + "description": "If `true`, returns the document version as part of a hit.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "style": "form" + }, + "termvectors#version_type": { + "in": "query", + "name": "version_type", + "description": "Specific version type.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:VersionType" + }, + "style": "form" + }, + "transform.get_transform#transform_id": { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform. It can be a transform identifier or a\nwildcard expression. You can get information for all transforms by using\n`_all`, by specifying `*` as the ``, or by omitting the\n``.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Names" + }, + "style": "simple" + }, + "transform.get_transform#allow_no_match": { + "in": "query", + "name": "allow_no_match", + "description": "Specifies what to do when the request:\n\n1. Contains wildcard expressions and there are no transforms that match.\n2. Contains the _all string or no identifiers and there are no matches.\n3. Contains wildcard expressions and there are only partial matches.\n\nIf this parameter is false, the request returns a 404 status code when\nthere are no matches or only partial matches.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "transform.get_transform#from": { + "in": "query", + "name": "from", + "description": "Skips the specified number of transforms.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "transform.get_transform#size": { + "in": "query", + "name": "size", + "description": "Specifies the maximum number of transforms to obtain.", + "deprecated": false, + "schema": { + "type": "number" + }, + "style": "form" + }, + "transform.get_transform#exclude_generated": { + "in": "query", + "name": "exclude_generated", + "description": "Excludes fields that were automatically added when creating the\ntransform. This allows the configuration to be in an acceptable format to\nbe retrieved and then added to another cluster.", + "deprecated": false, + "schema": { + "type": "boolean" + }, + "style": "form" + }, + "transform.preview_transform#transform_id": { + "in": "path", + "name": "transform_id", + "description": "Identifier for the transform to preview. If you specify this path parameter, you cannot provide transform\nconfiguration details in the request body.", + "required": true, + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Id" + }, + "style": "simple" + }, + "transform.preview_transform#timeout": { + "in": "query", + "name": "timeout", + "description": "Period to wait for a response. If no response is received before the\ntimeout expires, the request fails and returns an error.", + "deprecated": false, + "schema": { + "$ref": "#/components/schemas/_types:Duration" + }, + "style": "form" + } + }, + "requestBodies": { + "async_search.submit": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "collapse": { + "$ref": "#/components/schemas/_global.search._types:FieldCollapse" + }, + "explain": { + "description": "If true, returns detailed information about score computation as part of a hit.", + "type": "boolean" + }, + "ext": { + "description": "Configuration of search extensions defined by Elasticsearch plugins.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "from": { + "description": "Starting document offset. By default, you cannot page through more than 10,000\nhits using the from and size parameters. To page through more hits, use the\nsearch_after parameter.", + "type": "number" + }, + "highlight": { + "$ref": "#/components/schemas/_global.search._types:Highlight" + }, + "track_total_hits": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "indices_boost": { + "description": "Boosts the _score of documents from specified indices.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "docvalue_fields": { + "description": "Array of wildcard (*) patterns. The request returns doc values for field\nnames matching these patterns in the hits.fields property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "knn": { + "description": "Defines the approximate kNN search to run.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:KnnQuery" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:KnnQuery" + } + } + ] + }, + "min_score": { + "description": "Minimum _score for matching documents. Documents with a lower _score are\nnot included in the search results.", + "type": "number" + }, + "post_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "profile": { + "type": "boolean" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "rescore": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:Rescore" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Rescore" + } + } + ] + }, + "script_fields": { + "description": "Retrieve a script evaluation (based on different fields) for each hit.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "search_after": { + "$ref": "#/components/schemas/_types:SortResults" + }, + "size": { + "description": "The number of hits to return. By default, you cannot page through more\nthan 10,000 hits using the from and size parameters. To page through more\nhits, use the search_after parameter.", + "type": "number" + }, + "slice": { + "$ref": "#/components/schemas/_types:SlicedScroll" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "fields": { + "description": "Array of wildcard (*) patterns. The request returns values for field names\nmatching these patterns in the hits.fields property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "suggest": { + "$ref": "#/components/schemas/_global.search._types:Suggester" + }, + "terminate_after": { + "description": "Maximum number of documents to collect for each shard. If a query reaches this\nlimit, Elasticsearch terminates the query early. Elasticsearch collects documents\nbefore sorting. Defaults to 0, which does not terminate query execution early.", + "type": "number" + }, + "timeout": { + "description": "Specifies the period of time to wait for a response from each shard. If no response\nis received before the timeout expires, the request fails and returns an error.\nDefaults to no timeout.", + "type": "string" + }, + "track_scores": { + "description": "If true, calculate and return document scores, even if the scores are not used for sorting.", + "type": "boolean" + }, + "version": { + "description": "If true, returns document version as part of a hit.", + "type": "boolean" + }, + "seq_no_primary_term": { + "description": "If true, returns sequence number and primary term of the last modification\nof each hit. See Optimistic concurrency control.", + "type": "boolean" + }, + "stored_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "pit": { + "$ref": "#/components/schemas/_global.search._types:PointInTimeReference" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "stats": { + "description": "Stats groups to associate with the search. Each group maintains a statistics\naggregation for its associated searches. You can retrieve these stats using\nthe indices stats API.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "bulk": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.bulk:OperationContainer" + }, + { + "$ref": "#/components/schemas/_global.bulk:UpdateAction" + }, + { + "type": "object" + } + ] + } + } + } + }, + "required": true + }, + "clear_scroll": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scroll_id": { + "$ref": "#/components/schemas/_types:ScrollIds" + } + } + } + } + } + }, + "cluster.put_component_template": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_auto_create": { + "description": "This setting overrides the value of the `action.auto_create_index` cluster setting.\nIf set to `true` in a template, then indices can be automatically created using that\ntemplate even if auto-creation of indices is disabled via `actions.auto_create_index`.\nIf set to `false` then data streams matching the template must always be explicitly created.", + "type": "boolean" + }, + "template": { + "$ref": "#/components/schemas/indices._types:IndexState" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + }, + "required": [ + "template" + ] + } + } + }, + "required": true + }, + "count": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + } + } + } + }, + "create": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "eql.search": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-syntax.html" + }, + "description": "EQL query you wish to run.", + "type": "string" + }, + "case_sensitive": { + "type": "boolean" + }, + "event_category_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "tiebreaker_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "timestamp_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "fetch_size": { + "$ref": "#/components/schemas/_types:uint" + }, + "filter": { + "description": "Query, written in Query DSL, used to filter the events on which the EQL query runs.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "keep_alive": { + "$ref": "#/components/schemas/_types:Duration" + }, + "keep_on_completion": { + "type": "boolean" + }, + "wait_for_completion_timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "size": { + "$ref": "#/components/schemas/_types:uint" + }, + "fields": { + "description": "Array of wildcard (*) patterns. The response returns values for field names matching these patterns in the fields property of each hit.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + } + ] + }, + "result_position": { + "$ref": "#/components/schemas/eql.search:ResultPosition" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + } + }, + "required": [ + "query" + ] + } + } + }, + "required": true + }, + "explain": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + } + } + } + }, + "field_caps": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "index_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + } + } + } + } + } + }, + "graph.explore": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "connections": { + "$ref": "#/components/schemas/graph._types:Hop" + }, + "controls": { + "$ref": "#/components/schemas/graph._types:ExploreControls" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "vertices": { + "description": "Specifies one or more fields that contain the terms you want to include in the graph as vertices.", + "type": "array", + "items": { + "$ref": "#/components/schemas/graph._types:VertexDefinition" + } + } + } + } + } + } + }, + "index": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "indices.analyze": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html" + }, + "description": "The name of the analyzer that should be applied to the provided `text`.\nThis could be a built-in analyzer, or an analyzer that’s been configured in the index.", + "type": "string" + }, + "attributes": { + "description": "Array of token attributes used to filter the output of the `explain` parameter.", + "type": "array", + "items": { + "type": "string" + } + }, + "char_filter": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-charfilters.html" + }, + "description": "Array of character filters used to preprocess characters before the tokenizer.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:CharFilter" + } + }, + "explain": { + "description": "If `true`, the response includes token attributes and additional details.", + "type": "boolean" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "filter": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenfilters.html" + }, + "description": "Array of token filters used to apply after the tokenizer.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:TokenFilter" + } + }, + "normalizer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-normalizers.html" + }, + "description": "Normalizer to use to convert text into a single token.", + "type": "string" + }, + "text": { + "$ref": "#/components/schemas/indices.analyze:TextToAnalyze" + }, + "tokenizer": { + "$ref": "#/components/schemas/_types.analysis:Tokenizer" + } + } + } + } + } + }, + "indices.put_alias": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "index_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "is_write_index": { + "description": "If `true`, sets the write index or data stream for the alias.\nIf an alias points to multiple indices or data streams and `is_write_index` isn’t set, the alias rejects write requests.\nIf an index alias points to one index and `is_write_index` isn’t set, the index automatically acts as the write index.\nData stream aliases don’t automatically set a write data stream, even if the alias points to one data stream.", + "type": "boolean" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "search_routing": { + "$ref": "#/components/schemas/_types:Routing" + } + } + } + } + } + }, + "indices.put_index_template": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "index_patterns": { + "$ref": "#/components/schemas/_types:Indices" + }, + "composed_of": { + "description": "An ordered list of component template names.\nComponent templates are merged in the order specified, meaning that the last component template specified has the highest precedence.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "template": { + "$ref": "#/components/schemas/indices.put_index_template:IndexTemplateMapping" + }, + "data_stream": { + "$ref": "#/components/schemas/indices._types:DataStreamVisibility" + }, + "priority": { + "description": "Priority to determine index template precedence when a new data stream or index is created.\nThe index template with the highest priority is chosen.\nIf no priority is specified the template is treated as though it is of priority 0 (lowest priority).\nThis number is not automatically generated by Elasticsearch.", + "type": "number" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + } + } + }, + "required": true + }, + "indices.put_mapping": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "date_detection": { + "description": "Controls whether dynamic date detection is enabled.", + "type": "boolean" + }, + "dynamic": { + "$ref": "#/components/schemas/_types.mapping:DynamicMapping" + }, + "dynamic_date_formats": { + "description": "If date detection is enabled then new string fields are checked\nagainst 'dynamic_date_formats' and if the value matches then\na new date field is added instead of string.", + "type": "array", + "items": { + "type": "string" + } + }, + "dynamic_templates": { + "description": "Specify dynamic templates for the mapping.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:DynamicTemplate" + } + }, + { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:DynamicTemplate" + } + } + } + ] + }, + "_field_names": { + "$ref": "#/components/schemas/_types.mapping:FieldNamesField" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "numeric_detection": { + "description": "Automatically map strings into numeric data types for all fields.", + "type": "boolean" + }, + "properties": { + "description": "Mapping for a field. For new fields, this mapping can include:\n\n- Field name\n- Field data type\n- Mapping parameters", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:Property" + } + }, + "_routing": { + "$ref": "#/components/schemas/_types.mapping:RoutingField" + }, + "_source": { + "$ref": "#/components/schemas/_types.mapping:SourceField" + }, + "runtime": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + } + } + } + } + }, + "required": true + }, + "indices.put_settings": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + } + } + }, + "required": true + }, + "indices.put_template": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aliases": { + "description": "Aliases for the index.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "index_patterns": { + "description": "Array of wildcard expressions used to match the names\nof indices during creation.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "order": { + "description": "Order in which Elasticsearch applies this template if index\nmatches multiple templates.\n\nTemplates with lower 'order' values are merged first. Templates with higher\n'order' values are merged later, overriding templates with lower values.", + "type": "number" + }, + "settings": { + "description": "Configuration options for the index.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + } + } + } + }, + "required": true + }, + "indices.rollover": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aliases": { + "description": "Aliases for the target index.\nData streams do not support this parameter.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "conditions": { + "$ref": "#/components/schemas/indices.rollover:RolloverConditions" + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "description": "Configuration options for the index.\nData streams do not support this parameter.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + }, + "indices.simulate_template": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/indices._types:IndexTemplate" + } + } + } + }, + "indices.validate_query": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + } + } + } + }, + "ingest.simulate": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "description": "Sample documents to test in the pipeline.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest.simulate:Document" + } + }, + "pipeline": { + "$ref": "#/components/schemas/ingest._types:Pipeline" + } + } + } + } + }, + "required": true + }, + "mget": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "description": "The documents you want to retrieve. Required if no index is specified in the request URI.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.mget:Operation" + } + }, + "ids": { + "$ref": "#/components/schemas/_types:Ids" + } + } + } + } + }, + "required": true + }, + "ml.get_calendars": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/ml._types:Page" + } + } + } + } + } + }, + "ml.get_overall_buckets": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allow_no_match": { + "description": "Refer to the description for the `allow_no_match` query parameter.", + "type": "boolean" + }, + "bucket_span": { + "$ref": "#/components/schemas/_types:Duration" + }, + "end": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "exclude_interim": { + "description": "Refer to the description for the `exclude_interim` query parameter.", + "type": "boolean" + }, + "overall_score": { + "description": "Refer to the description for the `overall_score` query parameter.", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "start": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "top_n": { + "description": "Refer to the description for the `top_n` query parameter.", + "type": "number" + } + } + } + } + } + }, + "ml.infer_trained_model": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "description": "An array of objects to pass to the model for inference. The objects should contain a fields matching your\nconfigured trained model input. Typically, for NLP models, the field name is `text_field`.\nCurrently, for NLP models, only a single value is allowed.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "inference_config": { + "$ref": "#/components/schemas/ml._types:InferenceConfigUpdateContainer" + } + }, + "required": [ + "docs" + ] + } + } + }, + "required": true + }, + "ml.preview_data_frame_analytics": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "config": { + "$ref": "#/components/schemas/ml.preview_data_frame_analytics:DataframePreviewConfig" + } + } + } + } + } + }, + "ml.preview_datafeed": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:DatafeedConfig" + }, + "job_config": { + "$ref": "#/components/schemas/ml._types:JobConfig" + } + } + } + } + } + }, + "msearch": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.msearch:RequestItem" + } + } + } + }, + "required": true + }, + "msearch_template": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.msearch_template:RequestItem" + } + } + } + }, + "required": true + }, + "mtermvectors": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docs": { + "description": "Array of existing or artificial documents.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.mtermvectors:Operation" + } + }, + "ids": { + "description": "Simplified syntax to specify documents by their ID if they're in the same index.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + } + } + } + } + } + }, + "put_script": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:StoredScript" + } + }, + "required": [ + "script" + ] + } + } + }, + "required": true + }, + "rank_eval": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "requests": { + "description": "A set of typical search requests, together with their provided ratings.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalRequestItem" + } + }, + "metric": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetric" + } + }, + "required": [ + "requests" + ] + } + } + }, + "required": true + }, + "render_search_template": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string" + }, + "params": { + "description": "Key-value pairs used to replace Mustache variables in the template.\nThe key is the variable name.\nThe value is the variable value.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "source": { + "description": "An inline search template.\nSupports the same parameters as the search API's request body.\nThese parameters also support Mustache variables.\nIf no `id` or `` is specified, this parameter is required.", + "type": "string" + } + } + } + } + } + }, + "scripts_painless_execute": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "context": { + "description": "The context that the script should run in.", + "type": "string" + }, + "context_setup": { + "$ref": "#/components/schemas/_global.scripts_painless_execute:PainlessContextSetup" + }, + "script": { + "$ref": "#/components/schemas/_types:InlineScript" + } + } + } + } + } + }, + "scroll": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scroll": { + "$ref": "#/components/schemas/_types:Duration" + }, + "scroll_id": { + "$ref": "#/components/schemas/_types:ScrollId" + } + }, + "required": [ + "scroll_id" + ] + } + } + } + }, + "search": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggregations": { + "description": "Defines the aggregations that are run as part of the search request.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "collapse": { + "$ref": "#/components/schemas/_global.search._types:FieldCollapse" + }, + "explain": { + "description": "If true, returns detailed information about score computation as part of a hit.", + "type": "boolean" + }, + "ext": { + "description": "Configuration of search extensions defined by Elasticsearch plugins.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "from": { + "description": "Starting document offset.\nNeeds to be non-negative.\nBy default, you cannot page through more than 10,000 hits using the `from` and `size` parameters.\nTo page through more hits, use the `search_after` parameter.", + "type": "number" + }, + "highlight": { + "$ref": "#/components/schemas/_global.search._types:Highlight" + }, + "track_total_hits": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "indices_boost": { + "description": "Boosts the _score of documents from specified indices.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "docvalue_fields": { + "description": "Array of wildcard (`*`) patterns.\nThe request returns doc values for field names matching these patterns in the `hits.fields` property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "knn": { + "description": "Defines the approximate kNN search to run.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:KnnQuery" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:KnnQuery" + } + } + ] + }, + "rank": { + "$ref": "#/components/schemas/_types:RankContainer" + }, + "min_score": { + "description": "Minimum `_score` for matching documents.\nDocuments with a lower `_score` are not included in the search results.", + "type": "number" + }, + "post_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "profile": { + "description": "Set to `true` to return detailed timing information about the execution of individual components in a search request.\nNOTE: This is a debugging tool and adds significant overhead to search execution.", + "type": "boolean" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "rescore": { + "description": "Can be used to improve precision by reordering just the top (for example 100 - 500) documents returned by the `query` and `post_filter` phases.", + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:Rescore" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Rescore" + } + } + ] + }, + "script_fields": { + "description": "Retrieve a script evaluation (based on different fields) for each hit.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "search_after": { + "$ref": "#/components/schemas/_types:SortResults" + }, + "size": { + "description": "The number of hits to return.\nBy default, you cannot page through more than 10,000 hits using the `from` and `size` parameters.\nTo page through more hits, use the `search_after` parameter.", + "type": "number" + }, + "slice": { + "$ref": "#/components/schemas/_types:SlicedScroll" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "fields": { + "description": "Array of wildcard (`*`) patterns.\nThe request returns values for field names matching these patterns in the `hits.fields` property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "suggest": { + "$ref": "#/components/schemas/_global.search._types:Suggester" + }, + "terminate_after": { + "description": "Maximum number of documents to collect for each shard.\nIf a query reaches this limit, Elasticsearch terminates the query early.\nElasticsearch collects documents before sorting.\nUse with caution.\nElasticsearch applies this parameter to each shard handling the request.\nWhen possible, let Elasticsearch perform early termination automatically.\nAvoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers.\nIf set to `0` (default), the query does not terminate early.", + "type": "number" + }, + "timeout": { + "description": "Specifies the period of time to wait for a response from each shard.\nIf no response is received before the timeout expires, the request fails and returns an error.\nDefaults to no timeout.", + "type": "string" + }, + "track_scores": { + "description": "If true, calculate and return document scores, even if the scores are not used for sorting.", + "type": "boolean" + }, + "version": { + "description": "If true, returns document version as part of a hit.", + "type": "boolean" + }, + "seq_no_primary_term": { + "description": "If `true`, returns sequence number and primary term of the last modification of each hit.", + "type": "boolean" + }, + "stored_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "pit": { + "$ref": "#/components/schemas/_global.search._types:PointInTimeReference" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "stats": { + "description": "Stats groups to associate with the search.\nEach group maintains a statistics aggregation for its associated searches.\nYou can retrieve these stats using the indices stats API.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "search_application.search": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "params": { + "description": "Query parameters specific to this request, which will override any defaults specified in the template.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + }, + "search_mvt": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "aggs": { + "description": "Sub-aggregations for the geotile_grid.\n\nSupports the following aggregation types:\n- avg\n- cardinality\n- max\n- min\n- sum", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "buffer": { + "description": "Size, in pixels, of a clipping buffer outside the tile. This allows renderers\nto avoid outline artifacts from geometries that extend past the extent of the tile.", + "type": "number" + }, + "exact_bounds": { + "description": "If false, the meta layer’s feature is the bounding box of the tile.\nIf true, the meta layer’s feature is a bounding box resulting from a\ngeo_bounds aggregation. The aggregation runs on values that intersect\nthe // tile with wrap_longitude set to false. The resulting\nbounding box may be larger than the vector tile.", + "type": "boolean" + }, + "extent": { + "description": "Size, in pixels, of a side of the tile. Vector tiles are square with equal sides.", + "type": "number" + }, + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "grid_agg": { + "$ref": "#/components/schemas/_global.search_mvt._types:GridAggregationType" + }, + "grid_precision": { + "description": "Additional zoom levels available through the aggs layer. For example, if is 7\nand grid_precision is 8, you can zoom in up to level 15. Accepts 0-8. If 0, results\ndon’t include the aggs layer.", + "type": "number" + }, + "grid_type": { + "$ref": "#/components/schemas/_global.search_mvt._types:GridType" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "size": { + "description": "Maximum number of features to return in the hits layer. Accepts 0-10000.\nIf 0, results don’t include the hits layer.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "track_total_hits": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "with_labels": { + "description": "If `true`, the hits and aggs layers will contain additional point features representing\nsuggested label positions for the original features.", + "type": "boolean" + } + } + } + } + } + }, + "search_template": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "explain": { + "description": "If `true`, returns detailed information about score calculation as part of each hit.", + "type": "boolean" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "params": { + "description": "Key-value pairs used to replace Mustache variables in the template.\nThe key is the variable name.\nThe value is the variable value.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "profile": { + "description": "If `true`, the query execution is profiled.", + "type": "boolean" + }, + "source": { + "description": "An inline search template. Supports the same parameters as the search API's\nrequest body. Also supports Mustache variables. If no id is specified, this\nparameter is required.", + "type": "string" + } + } + } + } + }, + "required": true + }, + "security.create_api_key": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "expiration": { + "$ref": "#/components/schemas/_types:Duration" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "role_descriptors": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role.html" + }, + "description": "An array of role descriptors for this API key. This parameter is optional. When it is not specified or is an empty array, then the API key will have a point in time snapshot of permissions of the authenticated user. If you supply role descriptors then the resultant permissions would be an intersection of API keys permissions and authenticated user’s permissions thereby limiting the access scope for API keys. The structure of role descriptor is the same as the request for create role API. For more details, see create or update roles API.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security._types:RoleDescriptor" + } + }, + "metadata": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + } + } + }, + "required": true + }, + "security.has_privileges": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "application": { + "type": "array", + "items": { + "$ref": "#/components/schemas/security.has_privileges:ApplicationPrivilegesCheck" + } + }, + "cluster": { + "description": "A list of the cluster privileges that you want to check.", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:ClusterPrivilege" + } + }, + "index": { + "type": "array", + "items": { + "$ref": "#/components/schemas/security.has_privileges:IndexPrivilegesCheck" + } + } + } + } + } + }, + "required": true + }, + "security.query_api_keys": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "from": { + "description": "Starting document offset.\nBy default, you cannot page through more than 10,000 hits using the from and size parameters.\nTo page through more hits, use the `search_after` parameter.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "size": { + "description": "The number of hits to return.\nBy default, you cannot page through more than 10,000 hits using the `from` and `size` parameters.\nTo page through more hits, use the `search_after` parameter.", + "type": "number" + }, + "search_after": { + "$ref": "#/components/schemas/_types:SortResults" + } + } + } + } + } + }, + "sql.query": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "catalog": { + "description": "Default catalog (cluster) for queries. If unspecified, the queries execute on the data in the local cluster only.", + "type": "string" + }, + "columnar": { + "description": "If true, the results in a columnar fashion: one row represents all the values of a certain column from the current page of results.", + "type": "boolean" + }, + "cursor": { + "description": "Cursor used to retrieve a set of paginated results.\nIf you specify a cursor, the API only uses the `columnar` and `time_zone` request body parameters.\nIt ignores other request body parameters.", + "type": "string" + }, + "fetch_size": { + "description": "The maximum number of rows (or entries) to return in one response", + "type": "number" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query": { + "description": "SQL query to run.", + "type": "string" + }, + "request_timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "page_timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + }, + "field_multi_value_leniency": { + "description": "Throw an exception when encountering multiple values for a field (default) or be lenient and return the first value from the list (without any guarantees of what that will be - typically the first in natural ascending order).", + "type": "boolean" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "wait_for_completion_timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "params": { + "description": "Values for parameters in the query.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "keep_alive": { + "$ref": "#/components/schemas/_types:Duration" + }, + "keep_on_completion": { + "description": "If true, Elasticsearch stores synchronous searches if you also specify the wait_for_completion_timeout parameter. If false, Elasticsearch only stores async searches that don’t finish before the wait_for_completion_timeout.", + "type": "boolean" + }, + "index_using_frozen": { + "description": "If true, the search can run on frozen indices. Defaults to false.", + "type": "boolean" + } + } + } + } + }, + "required": true + }, + "sql.translate": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "fetch_size": { + "description": "The maximum number of rows (or entries) to return in one response.", + "type": "number" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query": { + "description": "SQL query to run.", + "type": "string" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + } + }, + "required": [ + "query" + ] + } + } + }, + "required": true + }, + "terms_enum": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "size": { + "description": "How many matching terms to return.", + "type": "number" + }, + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "case_insensitive": { + "description": "When true the provided search string is matched against index terms without case sensitivity.", + "type": "boolean" + }, + "index_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "string": { + "description": "The string after which terms in the index should be returned. Allows for a form of pagination if the last result from one request is passed as the search_after parameter for a subsequent request.", + "type": "string" + }, + "search_after": { + "type": "string" + } + }, + "required": [ + "field" + ] + } + } + } + }, + "termvectors": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "doc": { + "description": "An artificial document (a document not present in the index) for which you want to retrieve term vectors.", + "type": "object" + }, + "filter": { + "$ref": "#/components/schemas/_global.termvectors:Filter" + }, + "per_field_analyzer": { + "description": "Overrides the default per-field analyzer.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + }, + "transform.preview_transform": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dest": { + "$ref": "#/components/schemas/transform._types:Destination" + }, + "description": { + "description": "Free text description of the transform.", + "type": "string" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "pivot": { + "$ref": "#/components/schemas/transform._types:Pivot" + }, + "source": { + "$ref": "#/components/schemas/transform._types:Source" + }, + "settings": { + "$ref": "#/components/schemas/transform._types:Settings" + }, + "sync": { + "$ref": "#/components/schemas/transform._types:SyncContainer" + }, + "retention_policy": { + "$ref": "#/components/schemas/transform._types:RetentionPolicyContainer" + }, + "latest": { + "$ref": "#/components/schemas/transform._types:Latest" + } + } + } + } + } + } + }, + "schemas": { + "_types:Id": { + "type": "string" + }, + "_types:AcknowledgedResponseBase": { + "type": "object", + "properties": { + "acknowledged": { + "description": "For a successful response, this value is always true. On failure, an exception is returned instead.", + "type": "boolean" + } + }, + "required": [ + "acknowledged" + ] + }, + "_types:Duration": { + "externalDocs": { + "url": "https://github.com/elastic/elasticsearch/blob/current/libs/core/src/main/java/org/elasticsearch/core/TimeValue.java" + }, + "description": "A duration. Units can be `nanos`, `micros`, `ms` (milliseconds), `s` (seconds), `m` (minutes), `h` (hours) and\n`d` (days). Also accepts \"0\" without a unit and \"-1\" to indicate an unspecified value.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "-1" + ] + }, + { + "type": "string", + "enum": [ + "0" + ] + } + ] + }, + "async_search._types:AsyncSearchDocumentResponseBase": { + "allOf": [ + { + "$ref": "#/components/schemas/async_search._types:AsyncSearchResponseBase" + }, + { + "type": "object", + "properties": { + "response": { + "$ref": "#/components/schemas/async_search._types:AsyncSearch" + } + }, + "required": [ + "response" + ] + } + ] + }, + "async_search._types:AsyncSearch": { + "type": "object", + "properties": { + "aggregations": { + "description": "Partial aggregations results, coming from the shards that have already completed the execution of the query.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:Aggregate" + } + }, + "_clusters": { + "$ref": "#/components/schemas/_types:ClusterStatistics" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "hits": { + "$ref": "#/components/schemas/_global.search._types:HitsMetadata" + }, + "max_score": { + "type": "number" + }, + "num_reduce_phases": { + "description": "Indicates how many reductions of the results have been performed.\nIf this number increases compared to the last retrieved results for a get asynch search request, you can expect additional results included in the search response.", + "type": "number" + }, + "profile": { + "$ref": "#/components/schemas/_global.search._types:Profile" + }, + "pit_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_scroll_id": { + "$ref": "#/components/schemas/_types:ScrollId" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "suggest": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Suggest" + } + } + }, + "terminated_early": { + "type": "boolean" + }, + "timed_out": { + "type": "boolean" + }, + "took": { + "type": "number" + } + }, + "required": [ + "hits", + "_shards", + "timed_out", + "took" + ] + }, + "_types.aggregations:Aggregate": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:CardinalityAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:HdrPercentilesAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:HdrPercentileRanksAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:TDigestPercentilesAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:TDigestPercentileRanksAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesBucketAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MedianAbsoluteDeviationAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MinAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MaxAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SumAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:AvgAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:WeightedAvgAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ValueCountAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SimpleValueAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:DerivativeAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:BucketMetricValueAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:StatsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:StatsBucketAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ExtendedStatsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ExtendedStatsBucketAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoBoundsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoCentroidAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:HistogramAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:DateHistogramAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:AutoDateHistogramAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:VariableWidthHistogramAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:StringTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:LongTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:DoubleTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:UnmappedTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:LongRareTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:StringRareTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:UnmappedRareTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MultiTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MissingAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:NestedAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ReverseNestedAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GlobalAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:FilterAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ChildrenAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ParentAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SamplerAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:UnmappedSamplerAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoHashGridAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoTileGridAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoHexGridAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:RangeAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:DateRangeAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoDistanceAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:IpRangeAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:IpPrefixAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:FiltersAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:AdjacencyMatrixAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SignificantLongTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SignificantStringTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:UnmappedSignificantTermsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:FrequentItemSetsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:ScriptedMetricAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:TopHitsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:InferenceAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:StringStatsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:BoxPlotAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:TopMetricsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:TTestAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:RateAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:CumulativeCardinalityAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:MatrixStatsAggregate" + }, + { + "$ref": "#/components/schemas/_types.aggregations:GeoLineAggregate" + } + ] + }, + "_types.aggregations:CardinalityAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:AggregateBase": { + "type": "object", + "properties": { + "meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + }, + "_types:Metadata": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "_types.aggregations:HdrPercentilesAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:PercentilesAggregateBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "values": { + "$ref": "#/components/schemas/_types.aggregations:Percentiles" + } + }, + "required": [ + "values" + ] + } + ] + }, + "_types.aggregations:Percentiles": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:KeyedPercentiles" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:ArrayPercentilesItem" + } + } + ] + }, + "_types.aggregations:KeyedPercentiles": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + } + }, + "_types.aggregations:ArrayPercentilesItem": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "value_as_string": { + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + }, + "_types.aggregations:HdrPercentileRanksAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TDigestPercentilesAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TDigestPercentileRanksAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:PercentilesBucketAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MedianAbsoluteDeviationAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SingleMetricAggregateBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "description": "The metric value. A missing value generally means that there was no data to aggregate,\nunless specified otherwise.", + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "value_as_string": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:MinAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MaxAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SumAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:AvgAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:WeightedAvgAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:ValueCountAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SimpleValueAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:DerivativeAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object", + "properties": { + "normalized_value": { + "type": "number" + }, + "normalized_value_as_string": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:BucketMetricValueAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleMetricAggregateBase" + }, + { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "keys" + ] + } + ] + }, + "_types.aggregations:StatsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "min": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "max": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "avg": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "sum": { + "type": "number" + }, + "min_as_string": { + "type": "string" + }, + "max_as_string": { + "type": "string" + }, + "avg_as_string": { + "type": "string" + }, + "sum_as_string": { + "type": "string" + } + }, + "required": [ + "count", + "min", + "max", + "avg", + "sum" + ] + } + ] + }, + "_types.aggregations:StatsBucketAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:StatsAggregate" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:ExtendedStatsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:StatsAggregate" + }, + { + "type": "object", + "properties": { + "sum_of_squares": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "variance": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "variance_population": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "variance_sampling": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "std_deviation": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "std_deviation_population": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "std_deviation_sampling": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "std_deviation_bounds": { + "$ref": "#/components/schemas/_types.aggregations:StandardDeviationBounds" + }, + "sum_of_squares_as_string": { + "type": "string" + }, + "variance_as_string": { + "type": "string" + }, + "variance_population_as_string": { + "type": "string" + }, + "variance_sampling_as_string": { + "type": "string" + }, + "std_deviation_as_string": { + "type": "string" + }, + "std_deviation_bounds_as_string": { + "$ref": "#/components/schemas/_types.aggregations:StandardDeviationBoundsAsString" + } + }, + "required": [ + "sum_of_squares", + "variance", + "variance_population", + "variance_sampling", + "std_deviation", + "std_deviation_population", + "std_deviation_sampling" + ] + } + ] + }, + "_types.aggregations:StandardDeviationBounds": { + "type": "object", + "properties": { + "upper": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "lower": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "upper_population": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "lower_population": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "upper_sampling": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "lower_sampling": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + } + }, + "required": [ + "upper", + "lower", + "upper_population", + "lower_population", + "upper_sampling", + "lower_sampling" + ] + }, + "_types.aggregations:StandardDeviationBoundsAsString": { + "type": "object", + "properties": { + "upper": { + "type": "string" + }, + "lower": { + "type": "string" + }, + "upper_population": { + "type": "string" + }, + "lower_population": { + "type": "string" + }, + "upper_sampling": { + "type": "string" + }, + "lower_sampling": { + "type": "string" + } + }, + "required": [ + "upper", + "lower", + "upper_population", + "lower_population", + "upper_sampling", + "lower_sampling" + ] + }, + "_types.aggregations:ExtendedStatsBucketAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:ExtendedStatsAggregate" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:GeoBoundsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "bounds": { + "$ref": "#/components/schemas/_types:GeoBounds" + } + } + } + ] + }, + "_types:GeoBounds": { + "description": "A geo bounding box. It can be represented in various ways:\n- as 4 top/bottom/left/right coordinates\n- as 2 top_left / bottom_right points\n- as 2 top_right / bottom_left points\n- as a WKT bounding box", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:CoordsGeoBounds" + }, + { + "$ref": "#/components/schemas/_types:TopLeftBottomRightGeoBounds" + }, + { + "$ref": "#/components/schemas/_types:TopRightBottomLeftGeoBounds" + }, + { + "$ref": "#/components/schemas/_types:WktGeoBounds" + } + ] + }, + "_types:CoordsGeoBounds": { + "type": "object", + "properties": { + "top": { + "type": "number" + }, + "bottom": { + "type": "number" + }, + "left": { + "type": "number" + }, + "right": { + "type": "number" + } + }, + "required": [ + "top", + "bottom", + "left", + "right" + ] + }, + "_types:TopLeftBottomRightGeoBounds": { + "type": "object", + "properties": { + "top_left": { + "$ref": "#/components/schemas/_types:GeoLocation" + }, + "bottom_right": { + "$ref": "#/components/schemas/_types:GeoLocation" + } + }, + "required": [ + "top_left", + "bottom_right" + ] + }, + "_types:GeoLocation": { + "description": "A latitude/longitude as a 2 dimensional point. It can be represented in various ways:\n- as a `{lat, long}` object\n- as a geo hash value\n- as a `[lon, lat]` array\n- as a string in `\", \"` or WKT point formats", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:LatLonGeoLocation" + }, + { + "$ref": "#/components/schemas/_types:GeoHashLocation" + }, + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "type": "string" + } + ] + }, + "_types:LatLonGeoLocation": { + "type": "object", + "properties": { + "lat": { + "description": "Latitude", + "type": "number" + }, + "lon": { + "description": "Longitude", + "type": "number" + } + }, + "required": [ + "lat", + "lon" + ] + }, + "_types:GeoHashLocation": { + "type": "object", + "properties": { + "geohash": { + "$ref": "#/components/schemas/_types:GeoHash" + } + }, + "required": [ + "geohash" + ] + }, + "_types:GeoHash": { + "type": "string" + }, + "_types:TopRightBottomLeftGeoBounds": { + "type": "object", + "properties": { + "top_right": { + "$ref": "#/components/schemas/_types:GeoLocation" + }, + "bottom_left": { + "$ref": "#/components/schemas/_types:GeoLocation" + } + }, + "required": [ + "top_right", + "bottom_left" + ] + }, + "_types:WktGeoBounds": { + "type": "object", + "properties": { + "wkt": { + "type": "string" + } + }, + "required": [ + "wkt" + ] + }, + "_types.aggregations:GeoCentroidAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "location": { + "$ref": "#/components/schemas/_types:GeoLocation" + } + }, + "required": [ + "count" + ] + } + ] + }, + "_types.aggregations:HistogramAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseHistogramBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseHistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsHistogramBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsHistogramBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:HistogramBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:HistogramBucket" + } + } + ] + }, + "_types.aggregations:HistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key_as_string": { + "type": "string" + }, + "key": { + "type": "number" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:MultiBucketBase": { + "type": "object", + "properties": { + "doc_count": { + "type": "number" + } + }, + "required": [ + "doc_count" + ] + }, + "_types.aggregations:DateHistogramAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseDateHistogramBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseDateHistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsDateHistogramBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsDateHistogramBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:DateHistogramBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:DateHistogramBucket" + } + } + ] + }, + "_types.aggregations:DateHistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key_as_string": { + "type": "string" + }, + "key": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types:EpochTimeUnitMillis": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitMillis" + } + ] + }, + "_types:UnitMillis": { + "description": "Time unit for milliseconds", + "type": "number" + }, + "_types.aggregations:AutoDateHistogramAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseDateHistogramBucket" + }, + { + "type": "object", + "properties": { + "interval": { + "$ref": "#/components/schemas/_types:DurationLarge" + } + }, + "required": [ + "interval" + ] + } + ] + }, + "_types:DurationLarge": { + "description": "A date histogram interval. Similar to `Duration` with additional units: `w` (week), `M` (month), `q` (quarter) and\n`y` (year)", + "type": "string" + }, + "_types.aggregations:VariableWidthHistogramAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseVariableWidthHistogramBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseVariableWidthHistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsVariableWidthHistogramBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsVariableWidthHistogramBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:VariableWidthHistogramBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:VariableWidthHistogramBucket" + } + } + ] + }, + "_types.aggregations:VariableWidthHistogramBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "min": { + "type": "number" + }, + "key": { + "type": "number" + }, + "max": { + "type": "number" + }, + "min_as_string": { + "type": "string" + }, + "key_as_string": { + "type": "string" + }, + "max_as_string": { + "type": "string" + } + }, + "required": [ + "min", + "key", + "max" + ] + } + ] + }, + "_types.aggregations:StringTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregateBaseStringTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregateBaseStringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseStringTermsBucket" + }, + { + "type": "object", + "properties": { + "doc_count_error_upper_bound": { + "type": "number" + }, + "sum_other_doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseStringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsStringTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsStringTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:StringTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:StringTermsBucket" + } + } + ] + }, + "_types.aggregations:StringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/_types:FieldValue" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types:FieldValue": { + "description": "A field value.", + "oneOf": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "nullable": true, + "type": "string" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsBucketBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "doc_count_error": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:LongTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregateBaseLongTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregateBaseLongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseLongTermsBucket" + }, + { + "type": "object", + "properties": { + "doc_count_error_upper_bound": { + "type": "number" + }, + "sum_other_doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseLongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsLongTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsLongTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:LongTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:LongTermsBucket" + } + } + ] + }, + "_types.aggregations:LongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "number" + }, + "key_as_string": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:DoubleTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregateBaseDoubleTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregateBaseDoubleTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseDoubleTermsBucket" + }, + { + "type": "object", + "properties": { + "doc_count_error_upper_bound": { + "type": "number" + }, + "sum_other_doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseDoubleTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsDoubleTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsDoubleTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:DoubleTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:DoubleTermsBucket" + } + } + ] + }, + "_types.aggregations:DoubleTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "number" + }, + "key_as_string": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:UnmappedTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregateBaseVoid" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregateBaseVoid": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseVoid" + }, + { + "type": "object", + "properties": { + "doc_count_error_upper_bound": { + "type": "number" + }, + "sum_other_doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseVoid": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsVoid" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsVoid": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_spec_utils:Void" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_spec_utils:Void" + } + } + ] + }, + "_spec_utils:Void": { + "description": "The absence of any type. This is commonly used in APIs that don't return a body.\n\nAlthough \"void\" is generally used for the unit type that has only one value, this is to be interpreted as\nthe bottom type that has no value at all. Most languages have a unit type, but few have a bottom type.\n\nSee https://en.m.wikipedia.org/wiki/Unit_type and https://en.m.wikipedia.org/wiki/Bottom_type", + "type": "object" + }, + "_types.aggregations:LongRareTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseLongRareTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseLongRareTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsLongRareTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsLongRareTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:LongRareTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:LongRareTermsBucket" + } + } + ] + }, + "_types.aggregations:LongRareTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "number" + }, + "key_as_string": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:StringRareTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseStringRareTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseStringRareTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsStringRareTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsStringRareTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:StringRareTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:StringRareTermsBucket" + } + } + ] + }, + "_types.aggregations:StringRareTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:UnmappedRareTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseVoid" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregateBaseMultiTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregateBaseMultiTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseMultiTermsBucket" + }, + { + "type": "object", + "properties": { + "doc_count_error_upper_bound": { + "type": "number" + }, + "sum_other_doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseMultiTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsMultiTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsMultiTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:MultiTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:MultiTermsBucket" + } + } + ] + }, + "_types.aggregations:MultiTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:FieldValue" + } + }, + "key_as_string": { + "type": "string" + }, + "doc_count_error_upper_bound": { + "type": "number" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:MissingAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SingleBucketAggregateBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "doc_count": { + "type": "number" + } + }, + "required": [ + "doc_count" + ] + } + ] + }, + "_types.aggregations:NestedAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:ReverseNestedAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:GlobalAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:FilterAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:ChildrenAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:ParentAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SamplerAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:UnmappedSamplerAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SingleBucketAggregateBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:GeoHashGridAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseGeoHashGridBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseGeoHashGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsGeoHashGridBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsGeoHashGridBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:GeoHashGridBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:GeoHashGridBucket" + } + } + ] + }, + "_types.aggregations:GeoHashGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/_types:GeoHash" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:GeoTileGridAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseGeoTileGridBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseGeoTileGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsGeoTileGridBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsGeoTileGridBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:GeoTileGridBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:GeoTileGridBucket" + } + } + ] + }, + "_types.aggregations:GeoTileGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/_types:GeoTile" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types:GeoTile": { + "description": "A map tile reference, represented as `{zoom}/{x}/{y}`", + "type": "string" + }, + "_types.aggregations:GeoHexGridAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseGeoHexGridBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseGeoHexGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsGeoHexGridBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsGeoHexGridBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:GeoHexGridBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:GeoHexGridBucket" + } + } + ] + }, + "_types.aggregations:GeoHexGridBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/_types:GeoHexCell" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types:GeoHexCell": { + "description": "A map hex cell (H3) reference", + "type": "string" + }, + "_types.aggregations:RangeAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseRangeBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseRangeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsRangeBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsRangeBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:RangeBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:RangeBucket" + } + } + ] + }, + "_types.aggregations:RangeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "from": { + "type": "number" + }, + "to": { + "type": "number" + }, + "from_as_string": { + "type": "string" + }, + "to_as_string": { + "type": "string" + }, + "key": { + "description": "The bucket key. Present if the aggregation is _not_ keyed", + "type": "string" + } + } + } + ] + }, + "_types.aggregations:DateRangeAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:RangeAggregate" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:GeoDistanceAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:RangeAggregate" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:IpRangeAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseIpRangeBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseIpRangeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsIpRangeBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsIpRangeBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:IpRangeBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:IpRangeBucket" + } + } + ] + }, + "_types.aggregations:IpRangeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:IpPrefixAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseIpPrefixBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseIpPrefixBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsIpPrefixBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsIpPrefixBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:IpPrefixBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:IpPrefixBucket" + } + } + ] + }, + "_types.aggregations:IpPrefixBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "is_ipv6": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "prefix_length": { + "type": "number" + }, + "netmask": { + "type": "string" + } + }, + "required": [ + "is_ipv6", + "key", + "prefix_length" + ] + } + ] + }, + "_types.aggregations:FiltersAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseFiltersBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseFiltersBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsFiltersBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsFiltersBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:FiltersBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:FiltersBucket" + } + } + ] + }, + "_types.aggregations:FiltersBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:AdjacencyMatrixAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseAdjacencyMatrixBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseAdjacencyMatrixBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsAdjacencyMatrixBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsAdjacencyMatrixBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AdjacencyMatrixBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:AdjacencyMatrixBucket" + } + } + ] + }, + "_types.aggregations:AdjacencyMatrixBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:SignificantLongTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsAggregateBaseSignificantLongTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SignificantTermsAggregateBaseSignificantLongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseSignificantLongTermsBucket" + }, + { + "type": "object", + "properties": { + "bg_count": { + "type": "number" + }, + "doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseSignificantLongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsSignificantLongTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsSignificantLongTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:SignificantLongTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:SignificantLongTermsBucket" + } + } + ] + }, + "_types.aggregations:SignificantLongTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "number" + }, + "key_as_string": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:SignificantTermsBucketBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "bg_count": { + "type": "number" + } + }, + "required": [ + "score", + "bg_count" + ] + } + ] + }, + "_types.aggregations:SignificantStringTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsAggregateBaseSignificantStringTermsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SignificantTermsAggregateBaseSignificantStringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseSignificantStringTermsBucket" + }, + { + "type": "object", + "properties": { + "bg_count": { + "type": "number" + }, + "doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseSignificantStringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsSignificantStringTermsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsSignificantStringTermsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:SignificantStringTermsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:SignificantStringTermsBucket" + } + } + ] + }, + "_types.aggregations:SignificantStringTermsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "string" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:UnmappedSignificantTermsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsAggregateBaseVoid" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SignificantTermsAggregateBaseVoid": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseVoid" + }, + { + "type": "object", + "properties": { + "bg_count": { + "type": "number" + }, + "doc_count": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:CompositeAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseCompositeBucket" + }, + { + "type": "object", + "properties": { + "after_key": { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregateKey" + } + } + } + ] + }, + "_types.aggregations:CompositeAggregateKey": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:FieldValue" + } + }, + "_types.aggregations:MultiBucketAggregateBaseCompositeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsCompositeBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsCompositeBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:CompositeBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:CompositeBucket" + } + } + ] + }, + "_types.aggregations:CompositeBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregateKey" + } + }, + "required": [ + "key" + ] + } + ] + }, + "_types.aggregations:FrequentItemSetsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketAggregateBaseFrequentItemSetsBucket" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MultiBucketAggregateBaseFrequentItemSetsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "$ref": "#/components/schemas/_types.aggregations:BucketsFrequentItemSetsBucket" + } + }, + "required": [ + "buckets" + ] + } + ] + }, + "_types.aggregations:BucketsFrequentItemSetsBucket": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:FrequentItemSetsBucket" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:FrequentItemSetsBucket" + } + } + ] + }, + "_types.aggregations:FrequentItemSetsBucket": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MultiBucketBase" + }, + { + "type": "object", + "properties": { + "key": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "support": { + "type": "number" + } + }, + "required": [ + "key", + "support" + ] + } + ] + }, + "_types.aggregations:ScriptedMetricAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "object" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:TopHitsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "hits": { + "$ref": "#/components/schemas/_global.search._types:HitsMetadata" + } + }, + "required": [ + "hits" + ] + } + ] + }, + "_global.search._types:HitsMetadata": { + "type": "object", + "properties": { + "total": { + "description": "Total hit count information, present only if `track_total_hits` wasn't `false` in the search request.", + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:TotalHits" + }, + { + "type": "number" + } + ] + }, + "hits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Hit" + } + }, + "max_score": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + } + }, + "required": [ + "hits" + ] + }, + "_global.search._types:TotalHits": { + "type": "object", + "properties": { + "relation": { + "$ref": "#/components/schemas/_global.search._types:TotalHitsRelation" + }, + "value": { + "type": "number" + } + }, + "required": [ + "relation", + "value" + ] + }, + "_global.search._types:TotalHitsRelation": { + "type": "string", + "enum": [ + "eq", + "gte" + ] + }, + "_global.search._types:Hit": { + "type": "object", + "properties": { + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_score": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "_explanation": { + "$ref": "#/components/schemas/_global.explain:Explanation" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "inner_hits": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.search._types:InnerHitsResult" + } + }, + "matched_queries": { + "type": "array", + "items": { + "type": "string" + } + }, + "_nested": { + "$ref": "#/components/schemas/_global.search._types:NestedIdentity" + }, + "_ignored": { + "type": "array", + "items": { + "type": "string" + } + }, + "ignored_field_values": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "_shard": { + "type": "string" + }, + "_node": { + "type": "string" + }, + "_routing": { + "type": "string" + }, + "_source": { + "type": "object" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_primary_term": { + "type": "number" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "sort": { + "$ref": "#/components/schemas/_types:SortResults" + } + }, + "required": [ + "_index", + "_id" + ] + }, + "_types:IndexName": { + "type": "string" + }, + "_global.explain:Explanation": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.explain:ExplanationDetail" + } + }, + "value": { + "type": "number" + } + }, + "required": [ + "description", + "details", + "value" + ] + }, + "_global.explain:ExplanationDetail": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.explain:ExplanationDetail" + } + }, + "value": { + "type": "number" + } + }, + "required": [ + "description", + "value" + ] + }, + "_global.search._types:InnerHitsResult": { + "type": "object", + "properties": { + "hits": { + "$ref": "#/components/schemas/_global.search._types:HitsMetadata" + } + }, + "required": [ + "hits" + ] + }, + "_global.search._types:NestedIdentity": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "offset": { + "type": "number" + }, + "_nested": { + "$ref": "#/components/schemas/_global.search._types:NestedIdentity" + } + }, + "required": [ + "field", + "offset" + ] + }, + "_types:Field": { + "description": "Path to field or array of paths. Some API's support wildcards in the path to select multiple fields.", + "type": "string" + }, + "_types:SequenceNumber": { + "type": "number" + }, + "_types:VersionNumber": { + "type": "number" + }, + "_types:SortResults": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:FieldValue" + } + }, + "_types.aggregations:InferenceAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "$ref": "#/components/schemas/_types:FieldValue" + }, + "feature_importance": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:InferenceFeatureImportance" + } + }, + "top_classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:InferenceTopClassEntry" + } + }, + "warning": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:InferenceFeatureImportance": { + "type": "object", + "properties": { + "feature_name": { + "type": "string" + }, + "importance": { + "type": "number" + }, + "classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:InferenceClassImportance" + } + } + }, + "required": [ + "feature_name" + ] + }, + "_types.aggregations:InferenceClassImportance": { + "type": "object", + "properties": { + "class_name": { + "type": "string" + }, + "importance": { + "type": "number" + } + }, + "required": [ + "class_name", + "importance" + ] + }, + "_types.aggregations:InferenceTopClassEntry": { + "type": "object", + "properties": { + "class_name": { + "$ref": "#/components/schemas/_types:FieldValue" + }, + "class_probability": { + "type": "number" + }, + "class_score": { + "type": "number" + } + }, + "required": [ + "class_name", + "class_probability", + "class_score" + ] + }, + "_types.aggregations:StringStatsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "min_length": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "max_length": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "avg_length": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "entropy": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "distribution": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "min_length_as_string": { + "type": "string" + }, + "max_length_as_string": { + "type": "string" + }, + "avg_length_as_string": { + "type": "string" + } + }, + "required": [ + "count", + "min_length", + "max_length", + "avg_length", + "entropy" + ] + } + ] + }, + "_types.aggregations:BoxPlotAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "min": { + "type": "number" + }, + "max": { + "type": "number" + }, + "q1": { + "type": "number" + }, + "q2": { + "type": "number" + }, + "q3": { + "type": "number" + }, + "lower": { + "type": "number" + }, + "upper": { + "type": "number" + }, + "min_as_string": { + "type": "string" + }, + "max_as_string": { + "type": "string" + }, + "q1_as_string": { + "type": "string" + }, + "q2_as_string": { + "type": "string" + }, + "q3_as_string": { + "type": "string" + }, + "lower_as_string": { + "type": "string" + }, + "upper_as_string": { + "type": "string" + } + }, + "required": [ + "min", + "max", + "q1", + "q2", + "q3", + "lower", + "upper" + ] + } + ] + }, + "_types.aggregations:TopMetricsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "top": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:TopMetrics" + } + } + }, + "required": [ + "top" + ] + } + ] + }, + "_types.aggregations:TopMetrics": { + "type": "object", + "properties": { + "sort": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:FieldValue" + }, + { + "nullable": true, + "type": "string" + } + ] + } + }, + "metrics": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:FieldValue" + }, + { + "nullable": true, + "type": "string" + } + ] + } + } + }, + "required": [ + "sort", + "metrics" + ] + }, + "_types.aggregations:TTestAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "value_as_string": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:RateAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "value_as_string": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:CumulativeCardinalityAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "value_as_string": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:MatrixStatsAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "doc_count": { + "type": "number" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:MatrixStatsFields" + } + } + }, + "required": [ + "doc_count" + ] + } + ] + }, + "_types.aggregations:MatrixStatsFields": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Field" + }, + "count": { + "type": "number" + }, + "mean": { + "type": "number" + }, + "variance": { + "type": "number" + }, + "skewness": { + "type": "number" + }, + "kurtosis": { + "type": "number" + }, + "covariance": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "correlation": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "required": [ + "name", + "count", + "mean", + "variance", + "skewness", + "kurtosis", + "covariance", + "correlation" + ] + }, + "_types.aggregations:GeoLineAggregate": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:AggregateBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "geometry": { + "$ref": "#/components/schemas/_types:GeoLine" + }, + "properties": { + "type": "object" + } + }, + "required": [ + "type", + "geometry", + "properties" + ] + } + ] + }, + "_types:GeoLine": { + "type": "object", + "properties": { + "type": { + "description": "Always `\"LineString\"`", + "type": "string" + }, + "coordinates": { + "description": "Array of `[lon, lat]` coordinates", + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number" + } + } + } + }, + "required": [ + "type", + "coordinates" + ] + }, + "_types:ClusterStatistics": { + "type": "object", + "properties": { + "skipped": { + "type": "number" + }, + "successful": { + "type": "number" + }, + "total": { + "type": "number" + }, + "running": { + "type": "number" + }, + "partial": { + "type": "number" + }, + "failed": { + "type": "number" + }, + "details": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ClusterDetails" + } + } + }, + "required": [ + "skipped", + "successful", + "total", + "running", + "partial", + "failed" + ] + }, + "_types:ClusterDetails": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/_types:ClusterSearchStatus" + }, + "indices": { + "type": "string" + }, + "took": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "timed_out": { + "type": "boolean" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ShardFailure" + } + } + }, + "required": [ + "status", + "indices", + "timed_out" + ] + }, + "_types:ClusterSearchStatus": { + "type": "string", + "enum": [ + "running", + "successful", + "partial", + "skipped", + "failed" + ] + }, + "_types:DurationValueUnitMillis": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitMillis" + } + ] + }, + "_types:ShardStatistics": { + "type": "object", + "properties": { + "failed": { + "$ref": "#/components/schemas/_types:uint" + }, + "successful": { + "$ref": "#/components/schemas/_types:uint" + }, + "total": { + "$ref": "#/components/schemas/_types:uint" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ShardFailure" + } + }, + "skipped": { + "$ref": "#/components/schemas/_types:uint" + } + }, + "required": [ + "failed", + "successful", + "total" + ] + }, + "_types:uint": { + "type": "number" + }, + "_types:ShardFailure": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "node": { + "type": "string" + }, + "reason": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "shard": { + "type": "number" + }, + "status": { + "type": "string" + } + }, + "required": [ + "reason", + "shard" + ] + }, + "_types:ErrorCause": { + "type": "object", + "properties": { + "type": { + "description": "The type of error", + "type": "string" + }, + "reason": { + "description": "A human-readable explanation of the error, in english", + "type": "string" + }, + "stack_trace": { + "description": "The server stack trace. Present only if the `error_trace=true` parameter was sent with the request.", + "type": "string" + }, + "caused_by": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "root_cause": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ErrorCause" + } + }, + "suppressed": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ErrorCause" + } + } + }, + "required": [ + "type" + ] + }, + "_global.search._types:Profile": { + "type": "object", + "properties": { + "shards": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:ShardProfile" + } + } + }, + "required": [ + "shards" + ] + }, + "_global.search._types:ShardProfile": { + "type": "object", + "properties": { + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:AggregationProfile" + } + }, + "id": { + "type": "string" + }, + "searches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:SearchProfile" + } + }, + "fetch": { + "$ref": "#/components/schemas/_global.search._types:FetchProfile" + } + }, + "required": [ + "aggregations", + "id", + "searches" + ] + }, + "_global.search._types:AggregationProfile": { + "type": "object", + "properties": { + "breakdown": { + "$ref": "#/components/schemas/_global.search._types:AggregationBreakdown" + }, + "description": { + "type": "string" + }, + "time_in_nanos": { + "$ref": "#/components/schemas/_types:DurationValueUnitNanos" + }, + "type": { + "type": "string" + }, + "debug": { + "$ref": "#/components/schemas/_global.search._types:AggregationProfileDebug" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:AggregationProfile" + } + } + }, + "required": [ + "breakdown", + "description", + "time_in_nanos", + "type" + ] + }, + "_global.search._types:AggregationBreakdown": { + "type": "object", + "properties": { + "build_aggregation": { + "type": "number" + }, + "build_aggregation_count": { + "type": "number" + }, + "build_leaf_collector": { + "type": "number" + }, + "build_leaf_collector_count": { + "type": "number" + }, + "collect": { + "type": "number" + }, + "collect_count": { + "type": "number" + }, + "initialize": { + "type": "number" + }, + "initialize_count": { + "type": "number" + }, + "post_collection": { + "type": "number" + }, + "post_collection_count": { + "type": "number" + }, + "reduce": { + "type": "number" + }, + "reduce_count": { + "type": "number" + } + }, + "required": [ + "build_aggregation", + "build_aggregation_count", + "build_leaf_collector", + "build_leaf_collector_count", + "collect", + "collect_count", + "initialize", + "initialize_count", + "reduce", + "reduce_count" + ] + }, + "_types:DurationValueUnitNanos": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitNanos" + } + ] + }, + "_types:UnitNanos": { + "description": "Time unit for nanoseconds", + "type": "number" + }, + "_global.search._types:AggregationProfileDebug": { + "type": "object", + "properties": { + "segments_with_multi_valued_ords": { + "type": "number" + }, + "collection_strategy": { + "type": "string" + }, + "segments_with_single_valued_ords": { + "type": "number" + }, + "total_buckets": { + "type": "number" + }, + "built_buckets": { + "type": "number" + }, + "result_strategy": { + "type": "string" + }, + "has_filter": { + "type": "boolean" + }, + "delegate": { + "type": "string" + }, + "delegate_debug": { + "$ref": "#/components/schemas/_global.search._types:AggregationProfileDebug" + }, + "chars_fetched": { + "type": "number" + }, + "extract_count": { + "type": "number" + }, + "extract_ns": { + "type": "number" + }, + "values_fetched": { + "type": "number" + }, + "collect_analyzed_ns": { + "type": "number" + }, + "collect_analyzed_count": { + "type": "number" + }, + "surviving_buckets": { + "type": "number" + }, + "ordinals_collectors_used": { + "type": "number" + }, + "ordinals_collectors_overhead_too_high": { + "type": "number" + }, + "string_hashing_collectors_used": { + "type": "number" + }, + "numeric_collectors_used": { + "type": "number" + }, + "empty_collectors_used": { + "type": "number" + }, + "deferred_aggregators": { + "type": "array", + "items": { + "type": "string" + } + }, + "segments_with_doc_count_field": { + "type": "number" + }, + "segments_with_deleted_docs": { + "type": "number" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:AggregationProfileDelegateDebugFilter" + } + }, + "segments_counted": { + "type": "number" + }, + "segments_collected": { + "type": "number" + }, + "map_reducer": { + "type": "string" + } + } + }, + "_global.search._types:AggregationProfileDelegateDebugFilter": { + "type": "object", + "properties": { + "results_from_metadata": { + "type": "number" + }, + "query": { + "type": "string" + }, + "specialized_for": { + "type": "string" + }, + "segments_counted_in_constant_time": { + "type": "number" + } + } + }, + "_global.search._types:SearchProfile": { + "type": "object", + "properties": { + "collector": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Collector" + } + }, + "query": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:QueryProfile" + } + }, + "rewrite_time": { + "type": "number" + } + }, + "required": [ + "collector", + "query", + "rewrite_time" + ] + }, + "_global.search._types:Collector": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "time_in_nanos": { + "$ref": "#/components/schemas/_types:DurationValueUnitNanos" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Collector" + } + } + }, + "required": [ + "name", + "reason", + "time_in_nanos" + ] + }, + "_global.search._types:QueryProfile": { + "type": "object", + "properties": { + "breakdown": { + "$ref": "#/components/schemas/_global.search._types:QueryBreakdown" + }, + "description": { + "type": "string" + }, + "time_in_nanos": { + "$ref": "#/components/schemas/_types:DurationValueUnitNanos" + }, + "type": { + "type": "string" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:QueryProfile" + } + } + }, + "required": [ + "breakdown", + "description", + "time_in_nanos", + "type" + ] + }, + "_global.search._types:QueryBreakdown": { + "type": "object", + "properties": { + "advance": { + "type": "number" + }, + "advance_count": { + "type": "number" + }, + "build_scorer": { + "type": "number" + }, + "build_scorer_count": { + "type": "number" + }, + "create_weight": { + "type": "number" + }, + "create_weight_count": { + "type": "number" + }, + "match": { + "type": "number" + }, + "match_count": { + "type": "number" + }, + "shallow_advance": { + "type": "number" + }, + "shallow_advance_count": { + "type": "number" + }, + "next_doc": { + "type": "number" + }, + "next_doc_count": { + "type": "number" + }, + "score": { + "type": "number" + }, + "score_count": { + "type": "number" + }, + "compute_max_score": { + "type": "number" + }, + "compute_max_score_count": { + "type": "number" + }, + "set_min_competitive_score": { + "type": "number" + }, + "set_min_competitive_score_count": { + "type": "number" + } + }, + "required": [ + "advance", + "advance_count", + "build_scorer", + "build_scorer_count", + "create_weight", + "create_weight_count", + "match", + "match_count", + "shallow_advance", + "shallow_advance_count", + "next_doc", + "next_doc_count", + "score", + "score_count", + "compute_max_score", + "compute_max_score_count", + "set_min_competitive_score", + "set_min_competitive_score_count" + ] + }, + "_global.search._types:FetchProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "description": { + "type": "string" + }, + "time_in_nanos": { + "$ref": "#/components/schemas/_types:DurationValueUnitNanos" + }, + "breakdown": { + "$ref": "#/components/schemas/_global.search._types:FetchProfileBreakdown" + }, + "debug": { + "$ref": "#/components/schemas/_global.search._types:FetchProfileDebug" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:FetchProfile" + } + } + }, + "required": [ + "type", + "description", + "time_in_nanos", + "breakdown" + ] + }, + "_global.search._types:FetchProfileBreakdown": { + "type": "object", + "properties": { + "load_source": { + "type": "number" + }, + "load_source_count": { + "type": "number" + }, + "load_stored_fields": { + "type": "number" + }, + "load_stored_fields_count": { + "type": "number" + }, + "next_reader": { + "type": "number" + }, + "next_reader_count": { + "type": "number" + }, + "process_count": { + "type": "number" + }, + "process": { + "type": "number" + } + } + }, + "_global.search._types:FetchProfileDebug": { + "type": "object", + "properties": { + "stored_fields": { + "type": "array", + "items": { + "type": "string" + } + }, + "fast_path": { + "type": "number" + } + } + }, + "_types:ScrollId": { + "type": "string" + }, + "_global.search._types:Suggest": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:CompletionSuggest" + }, + { + "$ref": "#/components/schemas/_global.search._types:PhraseSuggest" + }, + { + "$ref": "#/components/schemas/_global.search._types:TermSuggest" + } + ] + }, + "_global.search._types:CompletionSuggest": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search._types:SuggestBase" + }, + { + "type": "object", + "properties": { + "options": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:CompletionSuggestOption" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:CompletionSuggestOption" + } + } + ] + } + }, + "required": [ + "options" + ] + } + ] + }, + "_global.search._types:CompletionSuggestOption": { + "type": "object", + "properties": { + "collate_match": { + "type": "boolean" + }, + "contexts": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Context" + } + } + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "_id": { + "type": "string" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "_score": { + "type": "number" + }, + "_source": { + "type": "object" + }, + "text": { + "type": "string" + }, + "score": { + "type": "number" + } + }, + "required": [ + "text" + ] + }, + "_global.search._types:Context": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html#_document_input_parameters" + }, + "description": "Text or location that we want similar documents for or a lookup to a document's field for the text.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types:GeoLocation" + } + ] + }, + "_types:Routing": { + "type": "string" + }, + "_global.search._types:SuggestBase": { + "type": "object", + "properties": { + "length": { + "type": "number" + }, + "offset": { + "type": "number" + }, + "text": { + "type": "string" + } + }, + "required": [ + "length", + "offset", + "text" + ] + }, + "_global.search._types:PhraseSuggest": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search._types:SuggestBase" + }, + { + "type": "object", + "properties": { + "options": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:PhraseSuggestOption" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:PhraseSuggestOption" + } + } + ] + } + }, + "required": [ + "options" + ] + } + ] + }, + "_global.search._types:PhraseSuggestOption": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "score": { + "type": "number" + }, + "highlighted": { + "type": "string" + }, + "collate_match": { + "type": "boolean" + } + }, + "required": [ + "text", + "score" + ] + }, + "_global.search._types:TermSuggest": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search._types:SuggestBase" + }, + { + "type": "object", + "properties": { + "options": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:TermSuggestOption" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:TermSuggestOption" + } + } + ] + } + }, + "required": [ + "options" + ] + } + ] + }, + "_global.search._types:TermSuggestOption": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "score": { + "type": "number" + }, + "freq": { + "type": "number" + }, + "highlighted": { + "type": "string" + }, + "collate_match": { + "type": "boolean" + } + }, + "required": [ + "text", + "score", + "freq" + ] + }, + "async_search._types:AsyncSearchResponseBase": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "is_partial": { + "description": "When the query is no longer running, this property indicates whether the search failed or was successfully completed on all shards.\nWhile the query is running, `is_partial` is always set to `true`.", + "type": "boolean" + }, + "is_running": { + "description": "Indicates whether the search is still running or has completed.\nNOTE: If the search failed after some shards returned their results or the node that is coordinating the async search dies, results may be partial even though `is_running` is `false`.", + "type": "boolean" + }, + "expiration_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "expiration_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "start_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "start_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "completion_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "completion_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + }, + "required": [ + "is_partial", + "is_running", + "expiration_time_in_millis", + "start_time_in_millis" + ] + }, + "_types:DateTime": { + "description": "A date and time, either as a string whose format can depend on the context (defaulting to ISO 8601), or a\nnumber of milliseconds since the Epoch. Elasticsearch accepts both as input, but will generally output a string\nrepresentation.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + ] + }, + "async_search.status:StatusResponseBase": { + "allOf": [ + { + "$ref": "#/components/schemas/async_search._types:AsyncSearchResponseBase" + }, + { + "type": "object", + "properties": { + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "_clusters": { + "$ref": "#/components/schemas/_types:ClusterStatistics" + }, + "completion_status": { + "description": "If the async search completed, this field shows the status code of the search.\nFor example, 200 indicates that the async search was successfully completed.\n503 indicates that the async search was completed with an error.", + "type": "number" + } + }, + "required": [ + "_shards" + ] + } + ] + }, + "_types:Indices": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:IndexName" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexName" + } + } + ] + }, + "_types.query_dsl:Operator": { + "type": "string", + "enum": [ + "and", + "or" + ] + }, + "_types:Fields": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:Field" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + } + ] + }, + "_types:ExpandWildcards": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:ExpandWildcard" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ExpandWildcard" + } + } + ] + }, + "_types:ExpandWildcard": { + "type": "string", + "enum": [ + "all", + "open", + "closed", + "hidden", + "none" + ] + }, + "_types:VersionString": { + "type": "string" + }, + "_types:SearchType": { + "type": "string", + "enum": [ + "query_then_fetch", + "dfs_query_then_fetch" + ] + }, + "_types:SuggestMode": { + "type": "string", + "enum": [ + "missing", + "popular", + "always" + ] + }, + "_global.search._types:TrackHits": { + "description": "Number of hits matching the query to count accurately. If true, the exact\nnumber of hits is returned at the cost of some performance. If false, the\nresponse does not include the total number of hits matching the query.\nDefaults to 10,000 hits.", + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "_global.search._types:SourceConfigParam": { + "description": "Defines how to fetch a source. Fetching can be disabled entirely, or the source can be filtered.\nUsed as a query parameter along with the `_source_includes` and `_source_excludes` parameters.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/components/schemas/_types:Fields" + } + ] + }, + "_types.aggregations:AggregationContainer": { + "allOf": [ + { + "type": "object", + "properties": { + "aggregations": { + "description": "Sub-aggregations for this aggregation.\nOnly applies to bucket aggregations.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + } + }, + { + "type": "object", + "properties": { + "adjacency_matrix": { + "$ref": "#/components/schemas/_types.aggregations:AdjacencyMatrixAggregation" + }, + "auto_date_histogram": { + "$ref": "#/components/schemas/_types.aggregations:AutoDateHistogramAggregation" + }, + "avg": { + "$ref": "#/components/schemas/_types.aggregations:AverageAggregation" + }, + "avg_bucket": { + "$ref": "#/components/schemas/_types.aggregations:AverageBucketAggregation" + }, + "boxplot": { + "$ref": "#/components/schemas/_types.aggregations:BoxplotAggregation" + }, + "bucket_script": { + "$ref": "#/components/schemas/_types.aggregations:BucketScriptAggregation" + }, + "bucket_selector": { + "$ref": "#/components/schemas/_types.aggregations:BucketSelectorAggregation" + }, + "bucket_sort": { + "$ref": "#/components/schemas/_types.aggregations:BucketSortAggregation" + }, + "bucket_count_ks_test": { + "$ref": "#/components/schemas/_types.aggregations:BucketKsAggregation" + }, + "bucket_correlation": { + "$ref": "#/components/schemas/_types.aggregations:BucketCorrelationAggregation" + }, + "cardinality": { + "$ref": "#/components/schemas/_types.aggregations:CardinalityAggregation" + }, + "categorize_text": { + "$ref": "#/components/schemas/_types.aggregations:CategorizeTextAggregation" + }, + "children": { + "$ref": "#/components/schemas/_types.aggregations:ChildrenAggregation" + }, + "composite": { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregation" + }, + "cumulative_cardinality": { + "$ref": "#/components/schemas/_types.aggregations:CumulativeCardinalityAggregation" + }, + "cumulative_sum": { + "$ref": "#/components/schemas/_types.aggregations:CumulativeSumAggregation" + }, + "date_histogram": { + "$ref": "#/components/schemas/_types.aggregations:DateHistogramAggregation" + }, + "date_range": { + "$ref": "#/components/schemas/_types.aggregations:DateRangeAggregation" + }, + "derivative": { + "$ref": "#/components/schemas/_types.aggregations:DerivativeAggregation" + }, + "diversified_sampler": { + "$ref": "#/components/schemas/_types.aggregations:DiversifiedSamplerAggregation" + }, + "extended_stats": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedStatsAggregation" + }, + "extended_stats_bucket": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedStatsBucketAggregation" + }, + "frequent_item_sets": { + "$ref": "#/components/schemas/_types.aggregations:FrequentItemSetsAggregation" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "filters": { + "$ref": "#/components/schemas/_types.aggregations:FiltersAggregation" + }, + "geo_bounds": { + "$ref": "#/components/schemas/_types.aggregations:GeoBoundsAggregation" + }, + "geo_centroid": { + "$ref": "#/components/schemas/_types.aggregations:GeoCentroidAggregation" + }, + "geo_distance": { + "$ref": "#/components/schemas/_types.aggregations:GeoDistanceAggregation" + }, + "geohash_grid": { + "$ref": "#/components/schemas/_types.aggregations:GeoHashGridAggregation" + }, + "geo_line": { + "$ref": "#/components/schemas/_types.aggregations:GeoLineAggregation" + }, + "geotile_grid": { + "$ref": "#/components/schemas/_types.aggregations:GeoTileGridAggregation" + }, + "geohex_grid": { + "$ref": "#/components/schemas/_types.aggregations:GeohexGridAggregation" + }, + "global": { + "$ref": "#/components/schemas/_types.aggregations:GlobalAggregation" + }, + "histogram": { + "$ref": "#/components/schemas/_types.aggregations:HistogramAggregation" + }, + "ip_range": { + "$ref": "#/components/schemas/_types.aggregations:IpRangeAggregation" + }, + "ip_prefix": { + "$ref": "#/components/schemas/_types.aggregations:IpPrefixAggregation" + }, + "inference": { + "$ref": "#/components/schemas/_types.aggregations:InferenceAggregation" + }, + "line": { + "$ref": "#/components/schemas/_types.aggregations:GeoLineAggregation" + }, + "matrix_stats": { + "$ref": "#/components/schemas/_types.aggregations:MatrixStatsAggregation" + }, + "max": { + "$ref": "#/components/schemas/_types.aggregations:MaxAggregation" + }, + "max_bucket": { + "$ref": "#/components/schemas/_types.aggregations:MaxBucketAggregation" + }, + "median_absolute_deviation": { + "$ref": "#/components/schemas/_types.aggregations:MedianAbsoluteDeviationAggregation" + }, + "min": { + "$ref": "#/components/schemas/_types.aggregations:MinAggregation" + }, + "min_bucket": { + "$ref": "#/components/schemas/_types.aggregations:MinBucketAggregation" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:MissingAggregation" + }, + "moving_avg": { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregation" + }, + "moving_percentiles": { + "$ref": "#/components/schemas/_types.aggregations:MovingPercentilesAggregation" + }, + "moving_fn": { + "$ref": "#/components/schemas/_types.aggregations:MovingFunctionAggregation" + }, + "multi_terms": { + "$ref": "#/components/schemas/_types.aggregations:MultiTermsAggregation" + }, + "nested": { + "$ref": "#/components/schemas/_types.aggregations:NestedAggregation" + }, + "normalize": { + "$ref": "#/components/schemas/_types.aggregations:NormalizeAggregation" + }, + "parent": { + "$ref": "#/components/schemas/_types.aggregations:ParentAggregation" + }, + "percentile_ranks": { + "$ref": "#/components/schemas/_types.aggregations:PercentileRanksAggregation" + }, + "percentiles": { + "$ref": "#/components/schemas/_types.aggregations:PercentilesAggregation" + }, + "percentiles_bucket": { + "$ref": "#/components/schemas/_types.aggregations:PercentilesBucketAggregation" + }, + "range": { + "$ref": "#/components/schemas/_types.aggregations:RangeAggregation" + }, + "rare_terms": { + "$ref": "#/components/schemas/_types.aggregations:RareTermsAggregation" + }, + "rate": { + "$ref": "#/components/schemas/_types.aggregations:RateAggregation" + }, + "reverse_nested": { + "$ref": "#/components/schemas/_types.aggregations:ReverseNestedAggregation" + }, + "sampler": { + "$ref": "#/components/schemas/_types.aggregations:SamplerAggregation" + }, + "scripted_metric": { + "$ref": "#/components/schemas/_types.aggregations:ScriptedMetricAggregation" + }, + "serial_diff": { + "$ref": "#/components/schemas/_types.aggregations:SerialDifferencingAggregation" + }, + "significant_terms": { + "$ref": "#/components/schemas/_types.aggregations:SignificantTermsAggregation" + }, + "significant_text": { + "$ref": "#/components/schemas/_types.aggregations:SignificantTextAggregation" + }, + "stats": { + "$ref": "#/components/schemas/_types.aggregations:StatsAggregation" + }, + "stats_bucket": { + "$ref": "#/components/schemas/_types.aggregations:StatsBucketAggregation" + }, + "string_stats": { + "$ref": "#/components/schemas/_types.aggregations:StringStatsAggregation" + }, + "sum": { + "$ref": "#/components/schemas/_types.aggregations:SumAggregation" + }, + "sum_bucket": { + "$ref": "#/components/schemas/_types.aggregations:SumBucketAggregation" + }, + "terms": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregation" + }, + "top_hits": { + "$ref": "#/components/schemas/_types.aggregations:TopHitsAggregation" + }, + "t_test": { + "$ref": "#/components/schemas/_types.aggregations:TTestAggregation" + }, + "top_metrics": { + "$ref": "#/components/schemas/_types.aggregations:TopMetricsAggregation" + }, + "value_count": { + "$ref": "#/components/schemas/_types.aggregations:ValueCountAggregation" + }, + "weighted_avg": { + "$ref": "#/components/schemas/_types.aggregations:WeightedAverageAggregation" + }, + "variable_width_histogram": { + "$ref": "#/components/schemas/_types.aggregations:VariableWidthHistogramAggregation" + } + }, + "minProperties": 1, + "maxProperties": 1 + } + ] + }, + "_types.aggregations:AdjacencyMatrixAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "filters": { + "description": "Filters used to create buckets.\nAt least one filter is required.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + } + } + ] + }, + "_types.query_dsl:QueryContainer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html" + }, + "type": "object", + "properties": { + "bool": { + "$ref": "#/components/schemas/_types.query_dsl:BoolQuery" + }, + "boosting": { + "$ref": "#/components/schemas/_types.query_dsl:BoostingQuery" + }, + "common": { + "deprecated": true, + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:CommonTermsQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "combined_fields": { + "$ref": "#/components/schemas/_types.query_dsl:CombinedFieldsQuery" + }, + "constant_score": { + "$ref": "#/components/schemas/_types.query_dsl:ConstantScoreQuery" + }, + "dis_max": { + "$ref": "#/components/schemas/_types.query_dsl:DisMaxQuery" + }, + "distance_feature": { + "$ref": "#/components/schemas/_types.query_dsl:DistanceFeatureQuery" + }, + "exists": { + "$ref": "#/components/schemas/_types.query_dsl:ExistsQuery" + }, + "function_score": { + "$ref": "#/components/schemas/_types.query_dsl:FunctionScoreQuery" + }, + "fuzzy": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html" + }, + "description": "Returns documents that contain terms similar to the search term, as measured by a Levenshtein edit distance.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:FuzzyQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "geo_bounding_box": { + "$ref": "#/components/schemas/_types.query_dsl:GeoBoundingBoxQuery" + }, + "geo_distance": { + "$ref": "#/components/schemas/_types.query_dsl:GeoDistanceQuery" + }, + "geo_polygon": { + "$ref": "#/components/schemas/_types.query_dsl:GeoPolygonQuery" + }, + "geo_shape": { + "$ref": "#/components/schemas/_types.query_dsl:GeoShapeQuery" + }, + "has_child": { + "$ref": "#/components/schemas/_types.query_dsl:HasChildQuery" + }, + "has_parent": { + "$ref": "#/components/schemas/_types.query_dsl:HasParentQuery" + }, + "ids": { + "$ref": "#/components/schemas/_types.query_dsl:IdsQuery" + }, + "intervals": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-intervals-query.html" + }, + "description": "Returns documents based on the order and proximity of matching terms.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "match": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html" + }, + "description": "Returns documents that match a provided text, number, date or boolean value.\nThe provided text is analyzed before matching.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:MatchQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "match_all": { + "$ref": "#/components/schemas/_types.query_dsl:MatchAllQuery" + }, + "match_bool_prefix": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-bool-prefix-query.html" + }, + "description": "Analyzes its input and constructs a `bool` query from the terms.\nEach term except the last is used in a `term` query.\nThe last term is used in a prefix query.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:MatchBoolPrefixQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "match_none": { + "$ref": "#/components/schemas/_types.query_dsl:MatchNoneQuery" + }, + "match_phrase": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html" + }, + "description": "Analyzes the text and creates a phrase query out of the analyzed text.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:MatchPhraseQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "match_phrase_prefix": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html" + }, + "description": "Returns documents that contain the words of a provided text, in the same order as provided.\nThe last term of the provided text is treated as a prefix, matching any words that begin with that term.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:MatchPhrasePrefixQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "more_like_this": { + "$ref": "#/components/schemas/_types.query_dsl:MoreLikeThisQuery" + }, + "multi_match": { + "$ref": "#/components/schemas/_types.query_dsl:MultiMatchQuery" + }, + "nested": { + "$ref": "#/components/schemas/_types.query_dsl:NestedQuery" + }, + "parent_id": { + "$ref": "#/components/schemas/_types.query_dsl:ParentIdQuery" + }, + "percolate": { + "$ref": "#/components/schemas/_types.query_dsl:PercolateQuery" + }, + "pinned": { + "$ref": "#/components/schemas/_types.query_dsl:PinnedQuery" + }, + "prefix": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html" + }, + "description": "Returns documents that contain a specific prefix in a provided field.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:PrefixQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "query_string": { + "$ref": "#/components/schemas/_types.query_dsl:QueryStringQuery" + }, + "range": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html" + }, + "description": "Returns documents that contain terms within a provided range.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:RangeQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "rank_feature": { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureQuery" + }, + "regexp": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html" + }, + "description": "Returns documents that contain terms matching a regular expression.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:RegexpQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "rule_query": { + "$ref": "#/components/schemas/_types.query_dsl:RuleQuery" + }, + "script": { + "$ref": "#/components/schemas/_types.query_dsl:ScriptQuery" + }, + "script_score": { + "$ref": "#/components/schemas/_types.query_dsl:ScriptScoreQuery" + }, + "shape": { + "$ref": "#/components/schemas/_types.query_dsl:ShapeQuery" + }, + "simple_query_string": { + "$ref": "#/components/schemas/_types.query_dsl:SimpleQueryStringQuery" + }, + "span_containing": { + "$ref": "#/components/schemas/_types.query_dsl:SpanContainingQuery" + }, + "field_masking_span": { + "$ref": "#/components/schemas/_types.query_dsl:SpanFieldMaskingQuery" + }, + "span_first": { + "$ref": "#/components/schemas/_types.query_dsl:SpanFirstQuery" + }, + "span_multi": { + "$ref": "#/components/schemas/_types.query_dsl:SpanMultiTermQuery" + }, + "span_near": { + "$ref": "#/components/schemas/_types.query_dsl:SpanNearQuery" + }, + "span_not": { + "$ref": "#/components/schemas/_types.query_dsl:SpanNotQuery" + }, + "span_or": { + "$ref": "#/components/schemas/_types.query_dsl:SpanOrQuery" + }, + "span_term": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-term-query.html" + }, + "description": "Matches spans containing a term.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:SpanTermQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "span_within": { + "$ref": "#/components/schemas/_types.query_dsl:SpanWithinQuery" + }, + "term": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html" + }, + "description": "Returns documents that contain an exact term in a provided field.\nTo return a document, the query term must exactly match the queried field's value, including whitespace and capitalization.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:TermQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "terms": { + "$ref": "#/components/schemas/_types.query_dsl:TermsQuery" + }, + "terms_set": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-set-query.html" + }, + "description": "Returns documents that contain a minimum number of exact terms in a provided field.\nTo return a document, a required number of terms must exactly match the field values, including whitespace and capitalization.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:TermsSetQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "text_expansion": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-text-expansion-query.html" + }, + "description": "Uses a natural language processing model to convert the query text into a list of token-weight pairs which are then used in a query against a sparse vector or rank features field.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:TextExpansionQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "wildcard": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html" + }, + "description": "Returns documents that contain terms matching a wildcard pattern.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:WildcardQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "wrapper": { + "$ref": "#/components/schemas/_types.query_dsl:WrapperQuery" + }, + "type": { + "$ref": "#/components/schemas/_types.query_dsl:TypeQuery" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types.query_dsl:BoolQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "filter": { + "description": "The clause (query) must appear in matching documents.\nHowever, unlike `must`, the score of the query will be ignored.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "must": { + "description": "The clause (query) must appear in matching documents and will contribute to the score.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "must_not": { + "description": "The clause (query) must not appear in the matching documents.\nBecause scoring is ignored, a score of `0` is returned for all documents.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "should": { + "description": "The clause (query) should appear in the matching document.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + } + } + } + ] + }, + "_types:MinimumShouldMatch": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html" + }, + "description": "The minimum number of terms that should match as integer, percentage or range", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "_types.query_dsl:QueryBase": { + "type": "object", + "properties": { + "boost": { + "description": "Floating point number used to decrease or increase the relevance scores of the query.\nBoost values are relative to the default value of 1.0.\nA boost value between 0 and 1.0 decreases the relevance score.\nA value greater than 1.0 increases the relevance score.", + "type": "number" + }, + "_name": { + "type": "string" + } + } + }, + "_types.query_dsl:BoostingQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "negative_boost": { + "description": "Floating point number between 0 and 1.0 used to decrease the relevance scores of documents matching the `negative` query.", + "type": "number" + }, + "negative": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "positive": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "negative_boost", + "negative", + "positive" + ] + } + ] + }, + "_types.query_dsl:CommonTermsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "cutoff_frequency": { + "type": "number" + }, + "high_freq_operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "low_freq_operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "query": { + "type": "string" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:CombinedFieldsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "fields": { + "description": "List of fields to search. Field wildcard patterns are allowed. Only `text` fields are supported, and they must all have the same search `analyzer`.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "query": { + "description": "Text to search for in the provided `fields`.\nThe `combined_fields` query analyzes the provided text before performing a search.", + "type": "string" + }, + "auto_generate_synonyms_phrase_query": { + "description": "If true, match phrase queries are automatically created for multi-term synonyms.", + "type": "boolean" + }, + "operator": { + "$ref": "#/components/schemas/_types.query_dsl:CombinedFieldsOperator" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "zero_terms_query": { + "$ref": "#/components/schemas/_types.query_dsl:CombinedFieldsZeroTerms" + } + }, + "required": [ + "fields", + "query" + ] + } + ] + }, + "_types.query_dsl:CombinedFieldsOperator": { + "type": "string", + "enum": [ + "or", + "and" + ] + }, + "_types.query_dsl:CombinedFieldsZeroTerms": { + "type": "string", + "enum": [ + "none", + "all" + ] + }, + "_types.query_dsl:ConstantScoreQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "filter" + ] + } + ] + }, + "_types.query_dsl:DisMaxQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "queries": { + "description": "One or more query clauses.\nReturned documents must match one or more of these queries.\nIf a document matches multiple queries, Elasticsearch uses the highest relevance score.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "tie_breaker": { + "description": "Floating point number between 0 and 1.0 used to increase the relevance scores of documents matching multiple query clauses.", + "type": "number" + } + }, + "required": [ + "queries" + ] + } + ] + }, + "_types.query_dsl:DistanceFeatureQuery": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:GeoDistanceFeatureQuery" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:DateDistanceFeatureQuery" + } + ] + }, + "_types.query_dsl:GeoDistanceFeatureQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DistanceFeatureQueryBaseGeoLocationDistance" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:DistanceFeatureQueryBaseGeoLocationDistance": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "origin": { + "$ref": "#/components/schemas/_types:GeoLocation" + }, + "pivot": { + "$ref": "#/components/schemas/_types:Distance" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "origin", + "pivot", + "field" + ] + } + ] + }, + "_types:Distance": { + "type": "string" + }, + "_types.query_dsl:DateDistanceFeatureQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DistanceFeatureQueryBaseDateMathDuration" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:DistanceFeatureQueryBaseDateMathDuration": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "origin": { + "$ref": "#/components/schemas/_types:DateMath" + }, + "pivot": { + "$ref": "#/components/schemas/_types:Duration" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "origin", + "pivot", + "field" + ] + } + ] + }, + "_types:DateMath": { + "type": "string" + }, + "_types.query_dsl:ExistsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "_types.query_dsl:FunctionScoreQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "boost_mode": { + "$ref": "#/components/schemas/_types.query_dsl:FunctionBoostMode" + }, + "functions": { + "description": "One or more functions that compute a new score for each document returned by the query.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FunctionScoreContainer" + } + }, + "max_boost": { + "description": "Restricts the new score to not exceed the provided limit.", + "type": "number" + }, + "min_score": { + "description": "Excludes documents that do not meet the provided score threshold.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "score_mode": { + "$ref": "#/components/schemas/_types.query_dsl:FunctionScoreMode" + } + } + } + ] + }, + "_types.query_dsl:FunctionBoostMode": { + "type": "string", + "enum": [ + "multiply", + "replace", + "sum", + "avg", + "max", + "min" + ] + }, + "_types.query_dsl:FunctionScoreContainer": { + "allOf": [ + { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "weight": { + "type": "number" + } + } + }, + { + "type": "object", + "properties": { + "exp": { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunction" + }, + "gauss": { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunction" + }, + "linear": { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunction" + }, + "field_value_factor": { + "$ref": "#/components/schemas/_types.query_dsl:FieldValueFactorScoreFunction" + }, + "random_score": { + "$ref": "#/components/schemas/_types.query_dsl:RandomScoreFunction" + }, + "script_score": { + "$ref": "#/components/schemas/_types.query_dsl:ScriptScoreFunction" + } + }, + "minProperties": 1, + "maxProperties": 1 + } + ] + }, + "_types.query_dsl:DecayFunction": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DateDecayFunction" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:NumericDecayFunction" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:GeoDecayFunction" + } + ] + }, + "_types.query_dsl:DateDecayFunction": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunctionBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:DecayFunctionBase": { + "type": "object", + "properties": { + "multi_value_mode": { + "$ref": "#/components/schemas/_types.query_dsl:MultiValueMode" + } + } + }, + "_types.query_dsl:MultiValueMode": { + "type": "string", + "enum": [ + "min", + "max", + "avg", + "sum" + ] + }, + "_types.query_dsl:NumericDecayFunction": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunctionBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:GeoDecayFunction": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DecayFunctionBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:FieldValueFactorScoreFunction": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "factor": { + "description": "Optional factor to multiply the field value with.", + "type": "number" + }, + "missing": { + "description": "Value used if the document doesn’t have that field.\nThe modifier and factor are still applied to it as though it were read from the document.", + "type": "number" + }, + "modifier": { + "$ref": "#/components/schemas/_types.query_dsl:FieldValueFactorModifier" + } + }, + "required": [ + "field" + ] + }, + "_types.query_dsl:FieldValueFactorModifier": { + "type": "string", + "enum": [ + "none", + "log", + "log1p", + "log2p", + "ln", + "ln1p", + "ln2p", + "square", + "sqrt", + "reciprocal" + ] + }, + "_types.query_dsl:RandomScoreFunction": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "seed": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + } + } + }, + "_types.query_dsl:ScriptScoreFunction": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "script" + ] + }, + "_types:Script": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:InlineScript" + }, + { + "$ref": "#/components/schemas/_types:StoredScriptId" + } + ] + }, + "_types:InlineScript": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:ScriptBase" + }, + { + "type": "object", + "properties": { + "lang": { + "$ref": "#/components/schemas/_types:ScriptLanguage" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "source": { + "description": "The script source.", + "type": "string" + } + }, + "required": [ + "source" + ] + } + ] + }, + "_types:ScriptLanguage": { + "type": "string", + "enum": [ + "painless", + "expression", + "mustache", + "java" + ] + }, + "_types:ScriptBase": { + "type": "object", + "properties": { + "params": { + "description": "Specifies any named parameters that are passed into the script as variables.\nUse parameters instead of hard-coded values to decrease compile time.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "_types:StoredScriptId": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:ScriptBase" + }, + { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "required": [ + "id" + ] + } + ] + }, + "_types.query_dsl:FunctionScoreMode": { + "type": "string", + "enum": [ + "multiply", + "sum", + "avg", + "first", + "max", + "min" + ] + }, + "_types.query_dsl:FuzzyQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "max_expansions": { + "description": "Maximum number of variations created.", + "type": "number" + }, + "prefix_length": { + "description": "Number of beginning characters left unchanged when creating expansions.", + "type": "number" + }, + "rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "transpositions": { + "description": "Indicates whether edits include transpositions of two adjacent characters (for example `ab` to `ba`).", + "type": "boolean" + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "value": { + "description": "Term you wish to find in the provided field.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types:MultiTermQueryRewrite": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-term-rewrite.html" + }, + "type": "string" + }, + "_types:Fuzziness": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#fuzziness" + }, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "_types.query_dsl:GeoBoundingBoxQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/_types.query_dsl:GeoExecution" + }, + "validation_method": { + "$ref": "#/components/schemas/_types.query_dsl:GeoValidationMethod" + }, + "ignore_unmapped": { + "description": "Set to `true` to ignore an unmapped field and not match any documents for this query.\nSet to `false` to throw an exception if the field is not mapped.", + "type": "boolean" + } + } + } + ] + }, + "_types.query_dsl:GeoExecution": { + "type": "string", + "enum": [ + "memory", + "indexed" + ] + }, + "_types.query_dsl:GeoValidationMethod": { + "type": "string", + "enum": [ + "coerce", + "ignore_malformed", + "strict" + ] + }, + "_types.query_dsl:GeoDistanceQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "distance": { + "$ref": "#/components/schemas/_types:Distance" + }, + "distance_type": { + "$ref": "#/components/schemas/_types:GeoDistanceType" + }, + "validation_method": { + "$ref": "#/components/schemas/_types.query_dsl:GeoValidationMethod" + } + }, + "required": [ + "distance" + ] + } + ] + }, + "_types:GeoDistanceType": { + "type": "string", + "enum": [ + "arc", + "plane" + ] + }, + "_types.query_dsl:GeoPolygonQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "validation_method": { + "$ref": "#/components/schemas/_types.query_dsl:GeoValidationMethod" + }, + "ignore_unmapped": { + "type": "boolean" + } + } + } + ] + }, + "_types.query_dsl:GeoShapeQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "ignore_unmapped": { + "description": "Set to `true` to ignore an unmapped field and not match any documents for this query.\nSet to `false` to throw an exception if the field is not mapped.", + "type": "boolean" + } + } + } + ] + }, + "_types.query_dsl:HasChildQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "ignore_unmapped": { + "description": "Indicates whether to ignore an unmapped `type` and not return any documents instead of an error.", + "type": "boolean" + }, + "inner_hits": { + "$ref": "#/components/schemas/_global.search._types:InnerHits" + }, + "max_children": { + "description": "Maximum number of child documents that match the query allowed for a returned parent document.\nIf the parent document exceeds this limit, it is excluded from the search results.", + "type": "number" + }, + "min_children": { + "description": "Minimum number of child documents that match the query required to match the query for a returned parent document.\nIf the parent document does not meet this limit, it is excluded from the search results.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "score_mode": { + "$ref": "#/components/schemas/_types.query_dsl:ChildScoreMode" + }, + "type": { + "$ref": "#/components/schemas/_types:RelationName" + } + }, + "required": [ + "query", + "type" + ] + } + ] + }, + "_global.search._types:InnerHits": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "size": { + "description": "The maximum number of hits to return per `inner_hits`.", + "type": "number" + }, + "from": { + "description": "Inner hit starting document offset.", + "type": "number" + }, + "collapse": { + "$ref": "#/components/schemas/_global.search._types:FieldCollapse" + }, + "docvalue_fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "explain": { + "type": "boolean" + }, + "highlight": { + "$ref": "#/components/schemas/_global.search._types:Highlight" + }, + "ignore_unmapped": { + "type": "boolean" + }, + "script_fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "seq_no_primary_term": { + "type": "boolean" + }, + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "stored_field": { + "$ref": "#/components/schemas/_types:Fields" + }, + "track_scores": { + "type": "boolean" + }, + "version": { + "type": "boolean" + } + } + }, + "_types:Name": { + "type": "string" + }, + "_global.search._types:FieldCollapse": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "inner_hits": { + "description": "The number of inner hits and their sort order", + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:InnerHits" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:InnerHits" + } + } + ] + }, + "max_concurrent_group_searches": { + "description": "The number of concurrent requests allowed to retrieve the inner_hits per group", + "type": "number" + }, + "collapse": { + "$ref": "#/components/schemas/_global.search._types:FieldCollapse" + } + }, + "required": [ + "field" + ] + }, + "_types.query_dsl:FieldAndFormat": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "format": { + "description": "Format in which the values are returned.", + "type": "string" + }, + "include_unmapped": { + "type": "boolean" + } + }, + "required": [ + "field" + ] + }, + "_global.search._types:Highlight": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search._types:HighlightBase" + }, + { + "type": "object", + "properties": { + "encoder": { + "$ref": "#/components/schemas/_global.search._types:HighlighterEncoder" + }, + "fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.search._types:HighlightField" + } + } + }, + "required": [ + "fields" + ] + } + ] + }, + "_global.search._types:HighlighterEncoder": { + "type": "string", + "enum": [ + "default", + "html" + ] + }, + "_global.search._types:HighlightField": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search._types:HighlightBase" + }, + { + "type": "object", + "properties": { + "fragment_offset": { + "type": "number" + }, + "matched_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "analyzer": { + "$ref": "#/components/schemas/_types.analysis:Analyzer" + } + } + } + ] + }, + "_types.analysis:Analyzer": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CustomAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:FingerprintAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:KeywordAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:LanguageAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:NoriAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:PatternAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:SimpleAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:StandardAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:StopAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:WhitespaceAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:SnowballAnalyzer" + }, + { + "$ref": "#/components/schemas/_types.analysis:DutchAnalyzer" + } + ] + }, + "_types.analysis:CustomAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + }, + "char_filter": { + "type": "array", + "items": { + "type": "string" + } + }, + "filter": { + "type": "array", + "items": { + "type": "string" + } + }, + "position_increment_gap": { + "type": "number" + }, + "position_offset_gap": { + "type": "number" + }, + "tokenizer": { + "type": "string" + } + }, + "required": [ + "type", + "tokenizer" + ] + }, + "_types.analysis:FingerprintAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "fingerprint" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "max_output_size": { + "type": "number" + }, + "preserve_original": { + "type": "boolean" + }, + "separator": { + "type": "string" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + }, + "stopwords_path": { + "type": "string" + } + }, + "required": [ + "type", + "max_output_size", + "preserve_original", + "separator" + ] + }, + "_types.analysis:StopWords": { + "description": "Language value, such as _arabic_ or _thai_. Defaults to _english_.\nEach language value corresponds to a predefined list of stop words in Lucene. See Stop words by language for supported language values and their stop words.\nAlso accepts an array of stop words.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "_types.analysis:KeywordAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "keyword" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:LanguageAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "language" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "language": { + "$ref": "#/components/schemas/_types.analysis:Language" + }, + "stem_exclusion": { + "type": "array", + "items": { + "type": "string" + } + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + }, + "stopwords_path": { + "type": "string" + } + }, + "required": [ + "type", + "language", + "stem_exclusion" + ] + }, + "_types.analysis:Language": { + "type": "string", + "enum": [ + "Arabic", + "Armenian", + "Basque", + "Brazilian", + "Bulgarian", + "Catalan", + "Chinese", + "Cjk", + "Czech", + "Danish", + "Dutch", + "English", + "Estonian", + "Finnish", + "French", + "Galician", + "German", + "Greek", + "Hindi", + "Hungarian", + "Indonesian", + "Irish", + "Italian", + "Latvian", + "Norwegian", + "Persian", + "Portuguese", + "Romanian", + "Russian", + "Sorani", + "Spanish", + "Swedish", + "Turkish", + "Thai" + ] + }, + "_types.analysis:NoriAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "nori" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "decompound_mode": { + "$ref": "#/components/schemas/_types.analysis:NoriDecompoundMode" + }, + "stoptags": { + "type": "array", + "items": { + "type": "string" + } + }, + "user_dictionary": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:NoriDecompoundMode": { + "type": "string", + "enum": [ + "discard", + "none", + "mixed" + ] + }, + "_types.analysis:PatternAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pattern" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "flags": { + "type": "string" + }, + "lowercase": { + "type": "boolean" + }, + "pattern": { + "type": "string" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + } + }, + "required": [ + "type", + "pattern" + ] + }, + "_types.analysis:SimpleAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "simple" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:StandardAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "standard" + ] + }, + "max_token_length": { + "type": "number" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:StopAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stop" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + }, + "stopwords_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:WhitespaceAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "whitespace" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:IcuAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_analyzer" + ] + }, + "method": { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationType" + }, + "mode": { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationMode" + } + }, + "required": [ + "type", + "method", + "mode" + ] + }, + "_types.analysis:IcuNormalizationType": { + "type": "string", + "enum": [ + "nfc", + "nfkc", + "nfkc_cf" + ] + }, + "_types.analysis:IcuNormalizationMode": { + "type": "string", + "enum": [ + "decompose", + "compose" + ] + }, + "_types.analysis:KuromojiAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji" + ] + }, + "mode": { + "$ref": "#/components/schemas/_types.analysis:KuromojiTokenizationMode" + }, + "user_dictionary": { + "type": "string" + } + }, + "required": [ + "type", + "mode" + ] + }, + "_types.analysis:KuromojiTokenizationMode": { + "type": "string", + "enum": [ + "normal", + "search", + "extended" + ] + }, + "_types.analysis:SnowballAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "snowball" + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "language": { + "$ref": "#/components/schemas/_types.analysis:SnowballLanguage" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + } + }, + "required": [ + "type", + "language" + ] + }, + "_types.analysis:SnowballLanguage": { + "type": "string", + "enum": [ + "Armenian", + "Basque", + "Catalan", + "Danish", + "Dutch", + "English", + "Finnish", + "French", + "German", + "German2", + "Hungarian", + "Italian", + "Kp", + "Lovins", + "Norwegian", + "Porter", + "Portuguese", + "Romanian", + "Russian", + "Spanish", + "Swedish", + "Turkish" + ] + }, + "_types.analysis:DutchAnalyzer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "dutch" + ] + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + } + }, + "required": [ + "type" + ] + }, + "_global.search._types:HighlightBase": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/_global.search._types:HighlighterType" + }, + "boundary_chars": { + "description": "A string that contains each boundary character.", + "type": "string" + }, + "boundary_max_scan": { + "description": "How far to scan for boundary characters.", + "type": "number" + }, + "boundary_scanner": { + "$ref": "#/components/schemas/_global.search._types:BoundaryScanner" + }, + "boundary_scanner_locale": { + "description": "Controls which locale is used to search for sentence and word boundaries.\nThis parameter takes a form of a language tag, for example: `\"en-US\"`, `\"fr-FR\"`, `\"ja-JP\"`.", + "type": "string" + }, + "force_source": { + "deprecated": true, + "type": "boolean" + }, + "fragmenter": { + "$ref": "#/components/schemas/_global.search._types:HighlighterFragmenter" + }, + "fragment_size": { + "description": "The size of the highlighted fragment in characters.", + "type": "number" + }, + "highlight_filter": { + "type": "boolean" + }, + "highlight_query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "max_fragment_length": { + "type": "number" + }, + "max_analyzed_offset": { + "description": "If set to a non-negative value, highlighting stops at this defined maximum limit.\nThe rest of the text is not processed, thus not highlighted and no error is returned\nThe `max_analyzed_offset` query setting does not override the `index.highlight.max_analyzed_offset` setting, which prevails when it’s set to lower value than the query setting.", + "type": "number" + }, + "no_match_size": { + "description": "The amount of text you want to return from the beginning of the field if there are no matching fragments to highlight.", + "type": "number" + }, + "number_of_fragments": { + "description": "The maximum number of fragments to return.\nIf the number of fragments is set to `0`, no fragments are returned.\nInstead, the entire field contents are highlighted and returned.\nThis can be handy when you need to highlight short texts such as a title or address, but fragmentation is not required.\nIf `number_of_fragments` is `0`, `fragment_size` is ignored.", + "type": "number" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "order": { + "$ref": "#/components/schemas/_global.search._types:HighlighterOrder" + }, + "phrase_limit": { + "description": "Controls the number of matching phrases in a document that are considered.\nPrevents the `fvh` highlighter from analyzing too many phrases and consuming too much memory.\nWhen using `matched_fields`, `phrase_limit` phrases per matched field are considered. Raising the limit increases query time and consumes more memory.\nOnly supported by the `fvh` highlighter.", + "type": "number" + }, + "post_tags": { + "description": "Use in conjunction with `pre_tags` to define the HTML tags to use for the highlighted text.\nBy default, highlighted text is wrapped in `` and `` tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "pre_tags": { + "description": "Use in conjunction with `post_tags` to define the HTML tags to use for the highlighted text.\nBy default, highlighted text is wrapped in `` and `` tags.", + "type": "array", + "items": { + "type": "string" + } + }, + "require_field_match": { + "description": "By default, only fields that contains a query match are highlighted.\nSet to `false` to highlight all fields.", + "type": "boolean" + }, + "tags_schema": { + "$ref": "#/components/schemas/_global.search._types:HighlighterTagsSchema" + } + } + }, + "_global.search._types:HighlighterType": { + "type": "string", + "enum": [ + "plain", + "fvh", + "unified" + ] + }, + "_global.search._types:BoundaryScanner": { + "type": "string", + "enum": [ + "chars", + "sentence", + "word" + ] + }, + "_global.search._types:HighlighterFragmenter": { + "type": "string", + "enum": [ + "simple", + "span" + ] + }, + "_global.search._types:HighlighterOrder": { + "type": "string", + "enum": [ + "score" + ] + }, + "_global.search._types:HighlighterTagsSchema": { + "type": "string", + "enum": [ + "styled" + ] + }, + "_types:ScriptField": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "ignore_failure": { + "type": "boolean" + } + }, + "required": [ + "script" + ] + }, + "_types:Sort": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:SortCombinations" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:SortCombinations" + } + } + ] + }, + "_types:SortCombinations": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:Field" + }, + { + "$ref": "#/components/schemas/_types:SortOptions" + } + ] + }, + "_types:SortOptions": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/sort-search-results.html" + }, + "type": "object", + "properties": { + "_score": { + "$ref": "#/components/schemas/_types:ScoreSort" + }, + "_doc": { + "$ref": "#/components/schemas/_types:ScoreSort" + }, + "_geo_distance": { + "$ref": "#/components/schemas/_types:GeoDistanceSort" + }, + "_script": { + "$ref": "#/components/schemas/_types:ScriptSort" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types:ScoreSort": { + "type": "object", + "properties": { + "order": { + "$ref": "#/components/schemas/_types:SortOrder" + } + } + }, + "_types:SortOrder": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "_types:GeoDistanceSort": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/_types:SortMode" + }, + "distance_type": { + "$ref": "#/components/schemas/_types:GeoDistanceType" + }, + "ignore_unmapped": { + "type": "boolean" + }, + "order": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "unit": { + "$ref": "#/components/schemas/_types:DistanceUnit" + } + } + }, + "_types:SortMode": { + "type": "string", + "enum": [ + "min", + "max", + "sum", + "avg", + "median" + ] + }, + "_types:DistanceUnit": { + "type": "string", + "enum": [ + "in", + "ft", + "yd", + "mi", + "nmi", + "km", + "m", + "cm", + "mm" + ] + }, + "_types:ScriptSort": { + "type": "object", + "properties": { + "order": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "type": { + "$ref": "#/components/schemas/_types:ScriptSortType" + }, + "mode": { + "$ref": "#/components/schemas/_types:SortMode" + }, + "nested": { + "$ref": "#/components/schemas/_types:NestedSortValue" + } + }, + "required": [ + "script" + ] + }, + "_types:ScriptSortType": { + "type": "string", + "enum": [ + "string", + "number", + "version" + ] + }, + "_types:NestedSortValue": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "max_children": { + "type": "number" + }, + "nested": { + "$ref": "#/components/schemas/_types:NestedSortValue" + }, + "path": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "path" + ] + }, + "_global.search._types:SourceConfig": { + "description": "Defines how to fetch a source. Fetching can be disabled entirely, or the source can be filtered.", + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/components/schemas/_global.search._types:SourceFilter" + } + ] + }, + "_global.search._types:SourceFilter": { + "type": "object", + "properties": { + "excludes": { + "$ref": "#/components/schemas/_types:Fields" + }, + "includes": { + "$ref": "#/components/schemas/_types:Fields" + } + } + }, + "_types.query_dsl:ChildScoreMode": { + "type": "string", + "enum": [ + "none", + "avg", + "sum", + "max", + "min" + ] + }, + "_types:RelationName": { + "type": "string" + }, + "_types.query_dsl:HasParentQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "ignore_unmapped": { + "description": "Indicates whether to ignore an unmapped `parent_type` and not return any documents instead of an error.\nYou can use this parameter to query multiple indices that may not contain the `parent_type`.", + "type": "boolean" + }, + "inner_hits": { + "$ref": "#/components/schemas/_global.search._types:InnerHits" + }, + "parent_type": { + "$ref": "#/components/schemas/_types:RelationName" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "score": { + "description": "Indicates whether the relevance score of a matching parent document is aggregated into its child documents.", + "type": "boolean" + } + }, + "required": [ + "parent_type", + "query" + ] + } + ] + }, + "_types.query_dsl:IdsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "values": { + "$ref": "#/components/schemas/_types:Ids" + } + } + } + ] + }, + "_types:Ids": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:Id" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + } + ] + }, + "_types.query_dsl:IntervalsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "all_of": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsAllOf" + }, + "any_of": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsAnyOf" + }, + "fuzzy": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsFuzzy" + }, + "match": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsMatch" + }, + "prefix": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsPrefix" + }, + "wildcard": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsWildcard" + } + }, + "minProperties": 1, + "maxProperties": 1 + } + ] + }, + "_types.query_dsl:IntervalsAllOf": { + "type": "object", + "properties": { + "intervals": { + "description": "An array of rules to combine. All rules must produce a match in a document for the overall source to match.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + } + }, + "max_gaps": { + "description": "Maximum number of positions between the matching terms.\nIntervals produced by the rules further apart than this are not considered matches.", + "type": "number" + }, + "ordered": { + "description": "If `true`, intervals produced by the rules should appear in the order in which they are specified.", + "type": "boolean" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsFilter" + } + }, + "required": [ + "intervals" + ] + }, + "_types.query_dsl:IntervalsContainer": { + "type": "object", + "properties": { + "all_of": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsAllOf" + }, + "any_of": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsAnyOf" + }, + "fuzzy": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsFuzzy" + }, + "match": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsMatch" + }, + "prefix": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsPrefix" + }, + "wildcard": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsWildcard" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types.query_dsl:IntervalsAnyOf": { + "type": "object", + "properties": { + "intervals": { + "description": "An array of rules to match.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + } + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsFilter" + } + }, + "required": [ + "intervals" + ] + }, + "_types.query_dsl:IntervalsFilter": { + "type": "object", + "properties": { + "after": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "before": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "contained_by": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "containing": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "not_contained_by": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "not_containing": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "not_overlapping": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "overlapping": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsContainer" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types.query_dsl:IntervalsFuzzy": { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to normalize the term.", + "type": "string" + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "prefix_length": { + "description": "Number of beginning characters left unchanged when creating expansions.", + "type": "number" + }, + "term": { + "description": "The term to match.", + "type": "string" + }, + "transpositions": { + "description": "Indicates whether edits include transpositions of two adjacent characters (for example, `ab` to `ba`).", + "type": "boolean" + }, + "use_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "term" + ] + }, + "_types.query_dsl:IntervalsMatch": { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to analyze terms in the query.", + "type": "string" + }, + "max_gaps": { + "description": "Maximum number of positions between the matching terms.\nTerms further apart than this are not considered matches.", + "type": "number" + }, + "ordered": { + "description": "If `true`, matching terms must appear in their specified order.", + "type": "boolean" + }, + "query": { + "description": "Text you wish to find in the provided field.", + "type": "string" + }, + "use_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:IntervalsFilter" + } + }, + "required": [ + "query" + ] + }, + "_types.query_dsl:IntervalsPrefix": { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to analyze the `prefix`.", + "type": "string" + }, + "prefix": { + "description": "Beginning characters of terms you wish to find in the top-level field.", + "type": "string" + }, + "use_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "prefix" + ] + }, + "_types.query_dsl:IntervalsWildcard": { + "type": "object", + "properties": { + "analyzer": { + "description": "Analyzer used to analyze the `pattern`.\nDefaults to the top-level field's analyzer.", + "type": "string" + }, + "pattern": { + "description": "Wildcard pattern used to find matching terms.", + "type": "string" + }, + "use_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "pattern" + ] + }, + "_types.query_dsl:MatchQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert the text in the query value into tokens.", + "type": "string" + }, + "auto_generate_synonyms_phrase_query": { + "description": "If `true`, match phrase queries are automatically created for multi-term synonyms.", + "type": "boolean" + }, + "cutoff_frequency": { + "deprecated": true, + "type": "number" + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "fuzzy_rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "fuzzy_transpositions": { + "description": "If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`).", + "type": "boolean" + }, + "lenient": { + "description": "If `true`, format-based errors, such as providing a text query value for a numeric field, are ignored.", + "type": "boolean" + }, + "max_expansions": { + "description": "Maximum number of terms to which the query will expand.", + "type": "number" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "prefix_length": { + "description": "Number of beginning characters left unchanged for fuzzy matching.", + "type": "number" + }, + "query": { + "description": "Text, number, boolean value or date you wish to find in the provided field.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + }, + "zero_terms_query": { + "$ref": "#/components/schemas/_types.query_dsl:ZeroTermsQuery" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:ZeroTermsQuery": { + "type": "string", + "enum": [ + "all", + "none" + ] + }, + "_types.query_dsl:MatchAllQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:MatchBoolPrefixQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert the text in the query value into tokens.", + "type": "string" + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "fuzzy_rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "fuzzy_transpositions": { + "description": "If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`).\nCan be applied to the term subqueries constructed for all terms but the final term.", + "type": "boolean" + }, + "max_expansions": { + "description": "Maximum number of terms to which the query will expand.\nCan be applied to the term subqueries constructed for all terms but the final term.", + "type": "number" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "prefix_length": { + "description": "Number of beginning characters left unchanged for fuzzy matching.\nCan be applied to the term subqueries constructed for all terms but the final term.", + "type": "number" + }, + "query": { + "description": "Terms you wish to find in the provided field.\nThe last term is used in a prefix query.", + "type": "string" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:MatchNoneQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:MatchPhraseQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert the text in the query value into tokens.", + "type": "string" + }, + "query": { + "description": "Query terms that are analyzed and turned into a phrase query.", + "type": "string" + }, + "slop": { + "description": "Maximum number of positions allowed between matching tokens.", + "type": "number" + }, + "zero_terms_query": { + "$ref": "#/components/schemas/_types.query_dsl:ZeroTermsQuery" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:MatchPhrasePrefixQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert text in the query value into tokens.", + "type": "string" + }, + "max_expansions": { + "description": "Maximum number of terms to which the last provided term of the query value will expand.", + "type": "number" + }, + "query": { + "description": "Text you wish to find in the provided field.", + "type": "string" + }, + "slop": { + "description": "Maximum number of positions allowed between matching tokens.", + "type": "number" + }, + "zero_terms_query": { + "$ref": "#/components/schemas/_types.query_dsl:ZeroTermsQuery" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:MoreLikeThisQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "The analyzer that is used to analyze the free form text.\nDefaults to the analyzer associated with the first field in fields.", + "type": "string" + }, + "boost_terms": { + "description": "Each term in the formed query could be further boosted by their tf-idf score.\nThis sets the boost factor to use when using this feature.\nDefaults to deactivated (0).", + "type": "number" + }, + "fail_on_unsupported_field": { + "description": "Controls whether the query should fail (throw an exception) if any of the specified fields are not of the supported types (`text` or `keyword`).", + "type": "boolean" + }, + "fields": { + "description": "A list of fields to fetch and analyze the text from.\nDefaults to the `index.query.default_field` index setting, which has a default value of `*`.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "include": { + "description": "Specifies whether the input documents should also be included in the search results returned.", + "type": "boolean" + }, + "like": { + "description": "Specifies free form text and/or a single or multiple documents for which you want to find similar documents.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:Like" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:Like" + } + } + ] + }, + "max_doc_freq": { + "description": "The maximum document frequency above which the terms are ignored from the input document.", + "type": "number" + }, + "max_query_terms": { + "description": "The maximum number of query terms that can be selected.", + "type": "number" + }, + "max_word_length": { + "description": "The maximum word length above which the terms are ignored.\nDefaults to unbounded (`0`).", + "type": "number" + }, + "min_doc_freq": { + "description": "The minimum document frequency below which the terms are ignored from the input document.", + "type": "number" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "min_term_freq": { + "description": "The minimum term frequency below which the terms are ignored from the input document.", + "type": "number" + }, + "min_word_length": { + "description": "The minimum word length below which the terms are ignored.", + "type": "number" + }, + "per_field_analyzer": { + "description": "Overrides the default analyzer.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "stop_words": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + }, + "unlike": { + "description": "Used in combination with `like` to exclude documents that match a set of terms.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:Like" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:Like" + } + } + ] + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + }, + "required": [ + "like" + ] + } + ] + }, + "_types.query_dsl:Like": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html#_document_input_parameters" + }, + "description": "Text that we want similar documents for or a lookup to a document's field for the text.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:LikeDocument" + } + ] + }, + "_types.query_dsl:LikeDocument": { + "type": "object", + "properties": { + "doc": { + "description": "A document not present in the index.", + "type": "object" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "per_field_analyzer": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + } + }, + "_types:VersionType": { + "type": "string", + "enum": [ + "internal", + "external", + "external_gte", + "force" + ] + }, + "_types.query_dsl:MultiMatchQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert the text in the query value into tokens.", + "type": "string" + }, + "auto_generate_synonyms_phrase_query": { + "description": "If `true`, match phrase queries are automatically created for multi-term synonyms.", + "type": "boolean" + }, + "cutoff_frequency": { + "deprecated": true, + "type": "number" + }, + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "fuzzy_rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "fuzzy_transpositions": { + "description": "If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`).\nCan be applied to the term subqueries constructed for all terms but the final term.", + "type": "boolean" + }, + "lenient": { + "description": "If `true`, format-based errors, such as providing a text query value for a numeric field, are ignored.", + "type": "boolean" + }, + "max_expansions": { + "description": "Maximum number of terms to which the query will expand.", + "type": "number" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "prefix_length": { + "description": "Number of beginning characters left unchanged for fuzzy matching.", + "type": "number" + }, + "query": { + "description": "Text, number, boolean value or date you wish to find in the provided field.", + "type": "string" + }, + "slop": { + "description": "Maximum number of positions allowed between matching tokens.", + "type": "number" + }, + "tie_breaker": { + "description": "Determines how scores for each per-term blended query and scores across groups are combined.", + "type": "number" + }, + "type": { + "$ref": "#/components/schemas/_types.query_dsl:TextQueryType" + }, + "zero_terms_query": { + "$ref": "#/components/schemas/_types.query_dsl:ZeroTermsQuery" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:TextQueryType": { + "type": "string", + "enum": [ + "best_fields", + "most_fields", + "cross_fields", + "phrase", + "phrase_prefix", + "bool_prefix" + ] + }, + "_types.query_dsl:NestedQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "ignore_unmapped": { + "description": "Indicates whether to ignore an unmapped path and not return any documents instead of an error.", + "type": "boolean" + }, + "inner_hits": { + "$ref": "#/components/schemas/_global.search._types:InnerHits" + }, + "path": { + "$ref": "#/components/schemas/_types:Field" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "score_mode": { + "$ref": "#/components/schemas/_types.query_dsl:ChildScoreMode" + } + }, + "required": [ + "path", + "query" + ] + } + ] + }, + "_types.query_dsl:ParentIdQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "ignore_unmapped": { + "description": "Indicates whether to ignore an unmapped `type` and not return any documents instead of an error.", + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/_types:RelationName" + } + } + } + ] + }, + "_types.query_dsl:PercolateQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "document": { + "description": "The source of the document being percolated.", + "type": "object" + }, + "documents": { + "description": "An array of sources of the documents being percolated.", + "type": "array", + "items": { + "type": "object" + } + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "name": { + "description": "The suffix used for the `_percolator_document_slot` field when multiple `percolate` queries are specified.", + "type": "string" + }, + "preference": { + "description": "Preference used to fetch document to percolate.", + "type": "string" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + }, + "required": [ + "field" + ] + } + ] + }, + "_types.query_dsl:PinnedQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "allOf": [ + { + "type": "object", + "properties": { + "organic": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "organic" + ] + }, + { + "type": "object", + "properties": { + "ids": { + "description": "Document IDs listed in the order they are to appear in results.\nRequired if `docs` is not specified.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "docs": { + "description": "Documents listed in the order they are to appear in results.\nRequired if `ids` is not specified.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:PinnedDoc" + } + } + }, + "minProperties": 1, + "maxProperties": 1 + } + ] + } + ] + }, + "_types.query_dsl:PinnedDoc": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "_id", + "_index" + ] + }, + "_types.query_dsl:PrefixQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "value": { + "description": "Beginning characters of terms you wish to find in the provided field.", + "type": "string" + }, + "case_insensitive": { + "description": "Allows ASCII case insensitive matching of the value with the indexed field values when set to `true`.\nDefault is `false` which means the case sensitivity of matching depends on the underlying field’s mapping.", + "type": "boolean" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.query_dsl:QueryStringQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "allow_leading_wildcard": { + "description": "If `true`, the wildcard characters `*` and `?` are allowed as the first character of the query string.", + "type": "boolean" + }, + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert text in the query string into tokens.", + "type": "string" + }, + "analyze_wildcard": { + "description": "If `true`, the query attempts to analyze wildcard terms in the query string.", + "type": "boolean" + }, + "auto_generate_synonyms_phrase_query": { + "description": "If `true`, match phrase queries are automatically created for multi-term synonyms.", + "type": "boolean" + }, + "default_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "default_operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "enable_position_increments": { + "description": "If `true`, enable position increments in queries constructed from a `query_string` search.", + "type": "boolean" + }, + "escape": { + "type": "boolean" + }, + "fields": { + "description": "Array of fields to search. Supports wildcards (`*`).", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "fuzziness": { + "$ref": "#/components/schemas/_types:Fuzziness" + }, + "fuzzy_max_expansions": { + "description": "Maximum number of terms to which the query expands for fuzzy matching.", + "type": "number" + }, + "fuzzy_prefix_length": { + "description": "Number of beginning characters left unchanged for fuzzy matching.", + "type": "number" + }, + "fuzzy_rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "fuzzy_transpositions": { + "description": "If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`).", + "type": "boolean" + }, + "lenient": { + "description": "If `true`, format-based errors, such as providing a text value for a numeric field, are ignored.", + "type": "boolean" + }, + "max_determinized_states": { + "description": "Maximum number of automaton states required for the query.", + "type": "number" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "phrase_slop": { + "description": "Maximum number of positions allowed between matching tokens for phrases.", + "type": "number" + }, + "query": { + "description": "Query string you wish to parse and use for search.", + "type": "string" + }, + "quote_analyzer": { + "description": "Analyzer used to convert quoted text in the query string into tokens.\nFor quoted text, this parameter overrides the analyzer specified in the `analyzer` parameter.", + "type": "string" + }, + "quote_field_suffix": { + "description": "Suffix appended to quoted text in the query string.\nYou can use this suffix to use a different analysis method for exact matches.", + "type": "string" + }, + "rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "tie_breaker": { + "description": "How to combine the queries generated from the individual search terms in the resulting `dis_max` query.", + "type": "number" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + }, + "type": { + "$ref": "#/components/schemas/_types.query_dsl:TextQueryType" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types:TimeZone": { + "type": "string" + }, + "_types.query_dsl:RangeQuery": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:DateRangeQuery" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:NumberRangeQuery" + } + ] + }, + "_types.query_dsl:DateRangeQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RangeQueryBase" + }, + { + "type": "object", + "properties": { + "gt": { + "$ref": "#/components/schemas/_types:DateMath" + }, + "gte": { + "$ref": "#/components/schemas/_types:DateMath" + }, + "lt": { + "$ref": "#/components/schemas/_types:DateMath" + }, + "lte": { + "$ref": "#/components/schemas/_types:DateMath" + }, + "from": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:DateMath" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "to": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:DateMath" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "format": { + "$ref": "#/components/schemas/_types:DateFormat" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + } + } + } + ] + }, + "_types:DateFormat": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html" + }, + "type": "string" + }, + "_types.query_dsl:RangeQueryBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "relation": { + "$ref": "#/components/schemas/_types.query_dsl:RangeRelation" + } + } + } + ] + }, + "_types.query_dsl:RangeRelation": { + "type": "string", + "enum": [ + "within", + "contains", + "intersects" + ] + }, + "_types.query_dsl:NumberRangeQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RangeQueryBase" + }, + { + "type": "object", + "properties": { + "gt": { + "description": "Greater than.", + "type": "number" + }, + "gte": { + "description": "Greater than or equal to.", + "type": "number" + }, + "lt": { + "description": "Less than.", + "type": "number" + }, + "lte": { + "description": "Less than or equal to.", + "type": "number" + }, + "from": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "to": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + } + } + } + ] + }, + "_types.query_dsl:RankFeatureQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "saturation": { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunctionSaturation" + }, + "log": { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunctionLogarithm" + }, + "linear": { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunctionLinear" + }, + "sigmoid": { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunctionSigmoid" + } + }, + "required": [ + "field" + ] + } + ] + }, + "_types.query_dsl:RankFeatureFunctionSaturation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunction" + }, + { + "type": "object", + "properties": { + "pivot": { + "description": "Configurable pivot value so that the result will be less than 0.5.", + "type": "number" + } + } + } + ] + }, + "_types.query_dsl:RankFeatureFunction": { + "type": "object" + }, + "_types.query_dsl:RankFeatureFunctionLogarithm": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunction" + }, + { + "type": "object", + "properties": { + "scaling_factor": { + "description": "Configurable scaling factor.", + "type": "number" + } + }, + "required": [ + "scaling_factor" + ] + } + ] + }, + "_types.query_dsl:RankFeatureFunctionLinear": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunction" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:RankFeatureFunctionSigmoid": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:RankFeatureFunction" + }, + { + "type": "object", + "properties": { + "pivot": { + "description": "Configurable pivot value so that the result will be less than 0.5.", + "type": "number" + }, + "exponent": { + "description": "Configurable Exponent.", + "type": "number" + } + }, + "required": [ + "pivot", + "exponent" + ] + } + ] + }, + "_types.query_dsl:RegexpQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "case_insensitive": { + "description": "Allows case insensitive matching of the regular expression value with the indexed field values when set to `true`.\nWhen `false`, case sensitivity of matching depends on the underlying field’s mapping.", + "type": "boolean" + }, + "flags": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/regexp-syntax.html" + }, + "description": "Enables optional operators for the regular expression.", + "type": "string" + }, + "max_determinized_states": { + "description": "Maximum number of automaton states required for the query.", + "type": "number" + }, + "rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "value": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/regexp-syntax.html" + }, + "description": "Regular expression for terms you wish to find in the provided field.", + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.query_dsl:RuleQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "organic": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "ruleset_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "match_criteria": { + "type": "object" + } + }, + "required": [ + "organic", + "ruleset_id", + "match_criteria" + ] + } + ] + }, + "_types.query_dsl:ScriptQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "script" + ] + } + ] + }, + "_types.query_dsl:ScriptScoreQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "min_score": { + "description": "Documents with a score lower than this floating point number are excluded from the search results.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "query", + "script" + ] + } + ] + }, + "_types.query_dsl:ShapeQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "ignore_unmapped": { + "description": "When set to `true` the query ignores an unmapped field and will not match any documents.", + "type": "boolean" + } + } + } + ] + }, + "_types.query_dsl:SimpleQueryStringQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html" + }, + "description": "Analyzer used to convert text in the query string into tokens.", + "type": "string" + }, + "analyze_wildcard": { + "description": "If `true`, the query attempts to analyze wildcard terms in the query string.", + "type": "boolean" + }, + "auto_generate_synonyms_phrase_query": { + "description": "If `true`, the parser creates a match_phrase query for each multi-position token.", + "type": "boolean" + }, + "default_operator": { + "$ref": "#/components/schemas/_types.query_dsl:Operator" + }, + "fields": { + "description": "Array of fields you wish to search.\nAccepts wildcard expressions.\nYou also can boost relevance scores for matches to particular fields using a caret (`^`) notation.\nDefaults to the `index.query.default_field index` setting, which has a default value of `*`.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "flags": { + "$ref": "#/components/schemas/_types.query_dsl:SimpleQueryStringFlags" + }, + "fuzzy_max_expansions": { + "description": "Maximum number of terms to which the query expands for fuzzy matching.", + "type": "number" + }, + "fuzzy_prefix_length": { + "description": "Number of beginning characters left unchanged for fuzzy matching.", + "type": "number" + }, + "fuzzy_transpositions": { + "description": "If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`).", + "type": "boolean" + }, + "lenient": { + "description": "If `true`, format-based errors, such as providing a text value for a numeric field, are ignored.", + "type": "boolean" + }, + "minimum_should_match": { + "$ref": "#/components/schemas/_types:MinimumShouldMatch" + }, + "query": { + "description": "Query string in the simple query string syntax you wish to parse and use for search.", + "type": "string" + }, + "quote_field_suffix": { + "description": "Suffix appended to quoted text in the query string.", + "type": "string" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:SimpleQueryStringFlags": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html#supported-flags" + }, + "description": "Query flags can be either a single flag or a combination of flags, e.g. `OR|AND|PREFIX`", + "allOf": [ + { + "$ref": "#/components/schemas/_spec_utils:PipeSeparatedFlagsSimpleQueryStringFlag" + } + ] + }, + "_spec_utils:PipeSeparatedFlagsSimpleQueryStringFlag": { + "description": "A set of flags that can be represented as a single enum value or a set of values that are encoded\nas a pipe-separated string\n\nDepending on the target language, code generators can use this hint to generate language specific\nflags enum constructs and the corresponding (de-)serialization code.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:SimpleQueryStringFlag" + }, + { + "type": "string" + } + ] + }, + "_types.query_dsl:SimpleQueryStringFlag": { + "type": "string", + "enum": [ + "NONE", + "AND", + "NOT", + "OR", + "PREFIX", + "PHRASE", + "PRECEDENCE", + "ESCAPE", + "WHITESPACE", + "FUZZY", + "NEAR", + "SLOP", + "ALL" + ] + }, + "_types.query_dsl:SpanContainingQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "big": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + }, + "little": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + }, + "required": [ + "big", + "little" + ] + } + ] + }, + "_types.query_dsl:SpanQuery": { + "type": "object", + "properties": { + "span_containing": { + "$ref": "#/components/schemas/_types.query_dsl:SpanContainingQuery" + }, + "field_masking_span": { + "$ref": "#/components/schemas/_types.query_dsl:SpanFieldMaskingQuery" + }, + "span_first": { + "$ref": "#/components/schemas/_types.query_dsl:SpanFirstQuery" + }, + "span_gap": { + "$ref": "#/components/schemas/_types.query_dsl:SpanGapQuery" + }, + "span_multi": { + "$ref": "#/components/schemas/_types.query_dsl:SpanMultiTermQuery" + }, + "span_near": { + "$ref": "#/components/schemas/_types.query_dsl:SpanNearQuery" + }, + "span_not": { + "$ref": "#/components/schemas/_types.query_dsl:SpanNotQuery" + }, + "span_or": { + "$ref": "#/components/schemas/_types.query_dsl:SpanOrQuery" + }, + "span_term": { + "description": "The equivalent of the `term` query but for use with other span queries.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:SpanTermQuery" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "span_within": { + "$ref": "#/components/schemas/_types.query_dsl:SpanWithinQuery" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types.query_dsl:SpanFieldMaskingQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + }, + "required": [ + "field", + "query" + ] + } + ] + }, + "_types.query_dsl:SpanFirstQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "end": { + "description": "Controls the maximum end position permitted in a match.", + "type": "number" + }, + "match": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + }, + "required": [ + "end", + "match" + ] + } + ] + }, + "_types.query_dsl:SpanGapQuery": { + "description": "Can only be used as a clause in a span_near query.", + "type": "object", + "additionalProperties": { + "type": "number" + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types.query_dsl:SpanMultiTermQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "match": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "match" + ] + } + ] + }, + "_types.query_dsl:SpanNearQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "clauses": { + "description": "Array of one or more other span type queries.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + }, + "in_order": { + "description": "Controls whether matches are required to be in-order.", + "type": "boolean" + }, + "slop": { + "description": "Controls the maximum number of intervening unmatched positions permitted.", + "type": "number" + } + }, + "required": [ + "clauses" + ] + } + ] + }, + "_types.query_dsl:SpanNotQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "dist": { + "description": "The number of tokens from within the include span that can’t have overlap with the exclude span.\nEquivalent to setting both `pre` and `post`.", + "type": "number" + }, + "exclude": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + }, + "include": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + }, + "post": { + "description": "The number of tokens after the include span that can’t have overlap with the exclude span.", + "type": "number" + }, + "pre": { + "description": "The number of tokens before the include span that can’t have overlap with the exclude span.", + "type": "number" + } + }, + "required": [ + "exclude", + "include" + ] + } + ] + }, + "_types.query_dsl:SpanOrQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "clauses": { + "description": "Array of one or more other span type queries.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + } + }, + "required": [ + "clauses" + ] + } + ] + }, + "_types.query_dsl:SpanTermQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.query_dsl:SpanWithinQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "big": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + }, + "little": { + "$ref": "#/components/schemas/_types.query_dsl:SpanQuery" + } + }, + "required": [ + "big", + "little" + ] + } + ] + }, + "_types.query_dsl:TermQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "value": { + "$ref": "#/components/schemas/_types:FieldValue" + }, + "case_insensitive": { + "description": "Allows ASCII case insensitive matching of the value with the indexed field values when set to `true`.\nWhen `false`, the case sensitivity of matching depends on the underlying field’s mapping.", + "type": "boolean" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.query_dsl:TermsQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object" + } + ] + }, + "_types.query_dsl:TermsSetQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "minimum_should_match_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "minimum_should_match_script": { + "$ref": "#/components/schemas/_types:Script" + }, + "terms": { + "description": "Array of terms you wish to find in the provided field.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "terms" + ] + } + ] + }, + "_types.query_dsl:TextExpansionQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "model_id": { + "description": "The text expansion NLP model to use", + "type": "string" + }, + "model_text": { + "description": "The query text", + "type": "string" + } + }, + "required": [ + "model_id", + "model_text" + ] + } + ] + }, + "_types.query_dsl:WildcardQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "case_insensitive": { + "description": "Allows case insensitive matching of the pattern with the indexed field values when set to true. Default is false which means the case sensitivity of matching depends on the underlying field’s mapping.", + "type": "boolean" + }, + "rewrite": { + "$ref": "#/components/schemas/_types:MultiTermQueryRewrite" + }, + "value": { + "description": "Wildcard pattern for terms you wish to find in the provided field. Required, when wildcard is not set.", + "type": "string" + }, + "wildcard": { + "description": "Wildcard pattern for terms you wish to find in the provided field. Required, when value is not set.", + "type": "string" + } + } + } + ] + }, + "_types.query_dsl:WrapperQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "query": { + "description": "A base64 encoded query.\nThe binary data format can be any of JSON, YAML, CBOR or SMILE encodings", + "type": "string" + } + }, + "required": [ + "query" + ] + } + ] + }, + "_types.query_dsl:TypeQuery": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + } + ] + }, + "_types.aggregations:BucketAggregationBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:Aggregation": { + "type": "object", + "properties": { + "meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "name": { + "type": "string" + } + } + }, + "_types.aggregations:AutoDateHistogramAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "buckets": { + "description": "The target number of buckets.", + "type": "number" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "format": { + "description": "The date format used to format `key_as_string` in the response.\nIf no `format` is specified, the first date format specified in the field mapping is used.", + "type": "string" + }, + "minimum_interval": { + "$ref": "#/components/schemas/_types.aggregations:MinimumInterval" + }, + "missing": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "offset": { + "description": "Time zone specified as a ISO 8601 UTC offset.", + "type": "string" + }, + "params": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + } + } + } + ] + }, + "_types.aggregations:MinimumInterval": { + "type": "string", + "enum": [ + "second", + "minute", + "hour", + "day", + "month", + "year" + ] + }, + "_types.aggregations:AverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:FormatMetricAggregationBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "format": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:MetricAggregationBase": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + } + }, + "_types.aggregations:Missing": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + }, + "_types.aggregations:AverageBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:PipelineAggregationBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketPathAggregation" + }, + { + "type": "object", + "properties": { + "format": { + "description": "`DecimalFormat` pattern for the output value.\nIf specified, the formatted value is returned in the aggregation’s `value_as_string` property.", + "type": "string" + }, + "gap_policy": { + "$ref": "#/components/schemas/_types.aggregations:GapPolicy" + } + } + } + ] + }, + "_types.aggregations:GapPolicy": { + "type": "string", + "enum": [ + "skip", + "insert_zeros", + "keep_values" + ] + }, + "_types.aggregations:BucketPathAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "buckets_path": { + "$ref": "#/components/schemas/_types.aggregations:BucketsPath" + } + } + } + ] + }, + "_types.aggregations:BucketsPath": { + "description": "Buckets path can be expressed in different ways, and an aggregation may accept some or all of these\nforms depending on its type. Please refer to each aggregation's documentation to know what buckets\npath forms they accept.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + ] + }, + "_types.aggregations:BoxplotAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "compression": { + "description": "Limits the maximum number of nodes used by the underlying TDigest algorithm to `20 * compression`, enabling control of memory usage and approximation error.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:BucketScriptAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + } + } + } + ] + }, + "_types.aggregations:BucketSelectorAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + } + } + } + ] + }, + "_types.aggregations:BucketSortAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "from": { + "description": "Buckets in positions prior to `from` will be truncated.", + "type": "number" + }, + "gap_policy": { + "$ref": "#/components/schemas/_types.aggregations:GapPolicy" + }, + "size": { + "description": "The number of buckets to return.\nDefaults to all buckets of the parent aggregation.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + } + } + } + ] + }, + "_types.aggregations:BucketKsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketPathAggregation" + }, + { + "type": "object", + "properties": { + "alternative": { + "description": "A list of string values indicating which K-S test alternative to calculate. The valid values\nare: \"greater\", \"less\", \"two_sided\". This parameter is key for determining the K-S statistic used\nwhen calculating the K-S test. Default value is all possible alternative hypotheses.", + "type": "array", + "items": { + "type": "string" + } + }, + "fractions": { + "description": "A list of doubles indicating the distribution of the samples with which to compare to the `buckets_path` results.\nIn typical usage this is the overall proportion of documents in each bucket, which is compared with the actual\ndocument proportions in each bucket from the sibling aggregation counts. The default is to assume that overall\ndocuments are uniformly distributed on these buckets, which they would be if one used equal percentiles of a\nmetric to define the bucket end points.", + "type": "array", + "items": { + "type": "number" + } + }, + "sampling_method": { + "description": "Indicates the sampling methodology when calculating the K-S test. Note, this is sampling of the returned values.\nThis determines the cumulative distribution function (CDF) points used comparing the two samples. Default is\n`upper_tail`, which emphasizes the upper end of the CDF points. Valid options are: `upper_tail`, `uniform`,\nand `lower_tail`.", + "type": "string" + } + } + } + ] + }, + "_types.aggregations:BucketCorrelationAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketPathAggregation" + }, + { + "type": "object", + "properties": { + "function": { + "$ref": "#/components/schemas/_types.aggregations:BucketCorrelationFunction" + } + }, + "required": [ + "function" + ] + } + ] + }, + "_types.aggregations:BucketCorrelationFunction": { + "type": "object", + "properties": { + "count_correlation": { + "$ref": "#/components/schemas/_types.aggregations:BucketCorrelationFunctionCountCorrelation" + } + }, + "required": [ + "count_correlation" + ] + }, + "_types.aggregations:BucketCorrelationFunctionCountCorrelation": { + "type": "object", + "properties": { + "indicator": { + "$ref": "#/components/schemas/_types.aggregations:BucketCorrelationFunctionCountCorrelationIndicator" + } + }, + "required": [ + "indicator" + ] + }, + "_types.aggregations:BucketCorrelationFunctionCountCorrelationIndicator": { + "type": "object", + "properties": { + "doc_count": { + "description": "The total number of documents that initially created the expectations. It’s required to be greater\nthan or equal to the sum of all values in the buckets_path as this is the originating superset of data\nto which the term values are correlated.", + "type": "number" + }, + "expectations": { + "description": "An array of numbers with which to correlate the configured `bucket_path` values.\nThe length of this value must always equal the number of buckets returned by the `bucket_path`.", + "type": "array", + "items": { + "type": "number" + } + }, + "fractions": { + "description": "An array of fractions to use when averaging and calculating variance. This should be used if\nthe pre-calculated data and the buckets_path have known gaps. The length of fractions, if provided,\nmust equal expectations.", + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "doc_count", + "expectations" + ] + }, + "_types.aggregations:CardinalityAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "precision_threshold": { + "description": "A unique count below which counts are expected to be close to accurate.\nThis allows to trade memory for accuracy.", + "type": "number" + }, + "rehash": { + "type": "boolean" + }, + "execution_hint": { + "$ref": "#/components/schemas/_types.aggregations:CardinalityExecutionMode" + } + } + } + ] + }, + "_types.aggregations:CardinalityExecutionMode": { + "type": "string", + "enum": [ + "global_ordinals", + "segment_ordinals", + "direct", + "save_memory_heuristic", + "save_time_heuristic" + ] + }, + "_types.aggregations:CategorizeTextAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "max_unique_tokens": { + "description": "The maximum number of unique tokens at any position up to max_matched_tokens. Must be larger than 1.\nSmaller values use less memory and create fewer categories. Larger values will use more memory and\ncreate narrower categories. Max allowed value is 100.", + "type": "number" + }, + "max_matched_tokens": { + "description": "The maximum number of token positions to match on before attempting to merge categories. Larger\nvalues will use more memory and create narrower categories. Max allowed value is 100.", + "type": "number" + }, + "similarity_threshold": { + "description": "The minimum percentage of tokens that must match for text to be added to the category bucket. Must\nbe between 1 and 100. The larger the value the narrower the categories. Larger values will increase memory\nusage and create narrower categories.", + "type": "number" + }, + "categorization_filters": { + "description": "This property expects an array of regular expressions. The expressions are used to filter out matching\nsequences from the categorization field values. You can use this functionality to fine tune the categorization\nby excluding sequences from consideration when categories are defined. For example, you can exclude SQL\nstatements that appear in your log files. This property cannot be used at the same time as categorization_analyzer.\nIf you only want to define simple regular expression filters that are applied prior to tokenization, setting\nthis property is the easiest method. If you also want to customize the tokenizer or post-tokenization filtering,\nuse the categorization_analyzer property instead and include the filters as pattern_replace character filters.", + "type": "array", + "items": { + "type": "string" + } + }, + "categorization_analyzer": { + "$ref": "#/components/schemas/_types.aggregations:CategorizeTextAnalyzer" + }, + "shard_size": { + "description": "The number of categorization buckets to return from each shard before merging all the results.", + "type": "number" + }, + "size": { + "description": "The number of buckets to return.", + "type": "number" + }, + "min_doc_count": { + "description": "The minimum number of documents in a bucket to be returned to the results.", + "type": "number" + }, + "shard_min_doc_count": { + "description": "The minimum number of documents in a bucket to be returned from the shard before merging.", + "type": "number" + } + }, + "required": [ + "field" + ] + } + ] + }, + "_types.aggregations:CategorizeTextAnalyzer": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.aggregations:CustomCategorizeTextAnalyzer" + } + ] + }, + "_types.aggregations:CustomCategorizeTextAnalyzer": { + "type": "object", + "properties": { + "char_filter": { + "type": "array", + "items": { + "type": "string" + } + }, + "tokenizer": { + "type": "string" + }, + "filter": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "_types.aggregations:ChildrenAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/_types:RelationName" + } + } + } + ] + }, + "_types.aggregations:CompositeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "after": { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregateKey" + }, + "size": { + "description": "The number of composite buckets that should be returned.", + "type": "number" + }, + "sources": { + "description": "The value sources used to build composite buckets.\nKeys are returned in the order of the `sources` definition.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregationSource" + } + } + } + } + } + ] + }, + "_types.aggregations:CompositeAggregationSource": { + "type": "object", + "properties": { + "terms": { + "$ref": "#/components/schemas/_types.aggregations:CompositeTermsAggregation" + }, + "histogram": { + "$ref": "#/components/schemas/_types.aggregations:CompositeHistogramAggregation" + }, + "date_histogram": { + "$ref": "#/components/schemas/_types.aggregations:CompositeDateHistogramAggregation" + }, + "geotile_grid": { + "$ref": "#/components/schemas/_types.aggregations:CompositeGeoTileGridAggregation" + } + } + }, + "_types.aggregations:CompositeTermsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:CompositeAggregationBase": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing_bucket": { + "type": "boolean" + }, + "missing_order": { + "$ref": "#/components/schemas/_types.aggregations:MissingOrder" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "value_type": { + "$ref": "#/components/schemas/_types.aggregations:ValueType" + }, + "order": { + "$ref": "#/components/schemas/_types:SortOrder" + } + } + }, + "_types.aggregations:MissingOrder": { + "type": "string", + "enum": [ + "first", + "last", + "default" + ] + }, + "_types.aggregations:ValueType": { + "type": "string", + "enum": [ + "string", + "long", + "double", + "number", + "date", + "date_nanos", + "ip", + "numeric", + "geo_point", + "boolean" + ] + }, + "_types.aggregations:CompositeHistogramAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregationBase" + }, + { + "type": "object", + "properties": { + "interval": { + "type": "number" + } + }, + "required": [ + "interval" + ] + } + ] + }, + "_types.aggregations:CompositeDateHistogramAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregationBase" + }, + { + "type": "object", + "properties": { + "format": { + "type": "string" + }, + "calendar_interval": { + "$ref": "#/components/schemas/_types:DurationLarge" + }, + "fixed_interval": { + "$ref": "#/components/schemas/_types:DurationLarge" + }, + "offset": { + "$ref": "#/components/schemas/_types:Duration" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + } + } + } + ] + }, + "_types.aggregations:CompositeGeoTileGridAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:CompositeAggregationBase" + }, + { + "type": "object", + "properties": { + "precision": { + "type": "number" + }, + "bounds": { + "$ref": "#/components/schemas/_types:GeoBounds" + } + } + } + ] + }, + "_types.aggregations:CumulativeCardinalityAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:CumulativeSumAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:DateHistogramAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "calendar_interval": { + "$ref": "#/components/schemas/_types.aggregations:CalendarInterval" + }, + "extended_bounds": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedBoundsFieldDateMath" + }, + "hard_bounds": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedBoundsFieldDateMath" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "fixed_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "format": { + "description": "The date format used to format `key_as_string` in the response.\nIf no `format` is specified, the first date format specified in the field mapping is used.", + "type": "string" + }, + "interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "min_doc_count": { + "description": "Only returns buckets that have `min_doc_count` number of documents.\nBy default, all buckets between the first bucket that matches documents and the last one are returned.", + "type": "number" + }, + "missing": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "offset": { + "$ref": "#/components/schemas/_types:Duration" + }, + "order": { + "$ref": "#/components/schemas/_types.aggregations:AggregateOrder" + }, + "params": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + }, + "keyed": { + "description": "Set to `true` to associate a unique string key with each bucket and return the ranges as a hash rather than an array.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:CalendarInterval": { + "type": "string", + "enum": [ + "second", + "minute", + "hour", + "day", + "week", + "month", + "quarter", + "year" + ] + }, + "_types.aggregations:ExtendedBoundsFieldDateMath": { + "type": "object", + "properties": { + "max": { + "$ref": "#/components/schemas/_types.aggregations:FieldDateMath" + }, + "min": { + "$ref": "#/components/schemas/_types.aggregations:FieldDateMath" + } + }, + "required": [ + "max", + "min" + ] + }, + "_types.aggregations:FieldDateMath": { + "description": "A date range limit, represented either as a DateMath expression or a number expressed\naccording to the target field's precision.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:DateMath" + }, + { + "type": "number" + } + ] + }, + "_types.aggregations:AggregateOrder": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "minProperties": 1, + "maxProperties": 1 + }, + { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "minProperties": 1, + "maxProperties": 1 + } + } + ] + }, + "_types.aggregations:DateRangeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "format": { + "description": "The date format used to format `from` and `to` in the response.", + "type": "string" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + }, + "ranges": { + "description": "Array of date ranges.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:DateRangeExpression" + } + }, + "time_zone": { + "$ref": "#/components/schemas/_types:TimeZone" + }, + "keyed": { + "description": "Set to `true` to associate a unique string key with each bucket and returns the ranges as a hash rather than an array.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:DateRangeExpression": { + "type": "object", + "properties": { + "from": { + "$ref": "#/components/schemas/_types.aggregations:FieldDateMath" + }, + "key": { + "description": "Custom key to return the range with.", + "type": "string" + }, + "to": { + "$ref": "#/components/schemas/_types.aggregations:FieldDateMath" + } + } + }, + "_types.aggregations:DerivativeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:DiversifiedSamplerAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "execution_hint": { + "$ref": "#/components/schemas/_types.aggregations:SamplerAggregationExecutionHint" + }, + "max_docs_per_value": { + "description": "Limits how many documents are permitted per choice of de-duplicating value.", + "type": "number" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "shard_size": { + "description": "Limits how many top-scoring documents are collected in the sample processed on each shard.", + "type": "number" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + } + } + } + ] + }, + "_types.aggregations:SamplerAggregationExecutionHint": { + "type": "string", + "enum": [ + "map", + "global_ordinals", + "bytes_hash" + ] + }, + "_types.aggregations:ExtendedStatsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object", + "properties": { + "sigma": { + "description": "The number of standard deviations above/below the mean to display.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:ExtendedStatsBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "sigma": { + "description": "The number of standard deviations above/below the mean to display.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:FrequentItemSetsAggregation": { + "type": "object", + "properties": { + "fields": { + "description": "Fields to analyze.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:FrequentItemSetsField" + } + }, + "minimum_set_size": { + "description": "The minimum size of one item set.", + "type": "number" + }, + "minimum_support": { + "description": "The minimum support of one item set.", + "type": "number" + }, + "size": { + "description": "The number of top item sets to return.", + "type": "number" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "fields" + ] + }, + "_types.aggregations:FrequentItemSetsField": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "exclude": { + "$ref": "#/components/schemas/_types.aggregations:TermsExclude" + }, + "include": { + "$ref": "#/components/schemas/_types.aggregations:TermsInclude" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:TermsExclude": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "_types.aggregations:TermsInclude": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/_types.aggregations:TermsPartition" + } + ] + }, + "_types.aggregations:TermsPartition": { + "type": "object", + "properties": { + "num_partitions": { + "description": "The number of partitions.", + "type": "number" + }, + "partition": { + "description": "The partition number for this request.", + "type": "number" + } + }, + "required": [ + "num_partitions", + "partition" + ] + }, + "_types.aggregations:FiltersAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "filters": { + "$ref": "#/components/schemas/_types.aggregations:BucketsQueryContainer" + }, + "other_bucket": { + "description": "Set to `true` to add a bucket to the response which will contain all documents that do not match any of the given filters.", + "type": "boolean" + }, + "other_bucket_key": { + "description": "The key with which the other bucket is returned.", + "type": "string" + }, + "keyed": { + "description": "By default, the named filters aggregation returns the buckets as an object.\nSet to `false` to return the buckets as an array of objects.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:BucketsQueryContainer": { + "description": "Aggregation buckets. By default they are returned as an array, but if the aggregation has keys configured for\nthe different buckets, the result is a dictionary.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "_types.aggregations:GeoBoundsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "wrap_longitude": { + "description": "Specifies whether the bounding box should be allowed to overlap the international date line.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:GeoCentroidAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "count": { + "type": "number" + }, + "location": { + "$ref": "#/components/schemas/_types:GeoLocation" + } + } + } + ] + }, + "_types.aggregations:GeoDistanceAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "distance_type": { + "$ref": "#/components/schemas/_types:GeoDistanceType" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "origin": { + "$ref": "#/components/schemas/_types:GeoLocation" + }, + "ranges": { + "description": "An array of ranges used to bucket documents.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:AggregationRange" + } + }, + "unit": { + "$ref": "#/components/schemas/_types:DistanceUnit" + } + } + } + ] + }, + "_types.aggregations:AggregationRange": { + "type": "object", + "properties": { + "from": { + "description": "Start of the range (inclusive).", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "key": { + "description": "Custom key to return the range with.", + "type": "string" + }, + "to": { + "description": "End of the range (exclusive).", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + } + } + }, + "_types.aggregations:GeoHashGridAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "bounds": { + "$ref": "#/components/schemas/_types:GeoBounds" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "precision": { + "$ref": "#/components/schemas/_types:GeoHashPrecision" + }, + "shard_size": { + "description": "Allows for more accurate counting of the top cells returned in the final result the aggregation.\nDefaults to returning `max(10,(size x number-of-shards))` buckets from each shard.", + "type": "number" + }, + "size": { + "description": "The maximum number of geohash buckets to return.", + "type": "number" + } + } + } + ] + }, + "_types:GeoHashPrecision": { + "description": "A precision that can be expressed as a geohash length between 1 and 12, or a distance measure like \"1km\", \"10m\".", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "_types.aggregations:GeoLineAggregation": { + "type": "object", + "properties": { + "point": { + "$ref": "#/components/schemas/_types.aggregations:GeoLinePoint" + }, + "sort": { + "$ref": "#/components/schemas/_types.aggregations:GeoLineSort" + }, + "include_sort": { + "description": "When `true`, returns an additional array of the sort values in the feature properties.", + "type": "boolean" + }, + "sort_order": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "size": { + "description": "The maximum length of the line represented in the aggregation.\nValid sizes are between 1 and 10000.", + "type": "number" + } + }, + "required": [ + "point", + "sort" + ] + }, + "_types.aggregations:GeoLinePoint": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:GeoLineSort": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:GeoTileGridAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "precision": { + "$ref": "#/components/schemas/_types:GeoTilePrecision" + }, + "shard_size": { + "description": "Allows for more accurate counting of the top cells returned in the final result the aggregation.\nDefaults to returning `max(10,(size x number-of-shards))` buckets from each shard.", + "type": "number" + }, + "size": { + "description": "The maximum number of buckets to return.", + "type": "number" + }, + "bounds": { + "$ref": "#/components/schemas/_types:GeoBounds" + } + } + } + ] + }, + "_types:GeoTilePrecision": { + "type": "number" + }, + "_types.aggregations:GeohexGridAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "precision": { + "description": "Integer zoom of the key used to defined cells or buckets\nin the results. Value should be between 0-15.", + "type": "number" + }, + "bounds": { + "$ref": "#/components/schemas/_types:GeoBounds" + }, + "size": { + "description": "Maximum number of buckets to return.", + "type": "number" + }, + "shard_size": { + "description": "Number of buckets returned from each shard.", + "type": "number" + } + }, + "required": [ + "field" + ] + } + ] + }, + "_types.aggregations:GlobalAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:HistogramAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "extended_bounds": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedBoundsdouble" + }, + "hard_bounds": { + "$ref": "#/components/schemas/_types.aggregations:ExtendedBoundsdouble" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "interval": { + "description": "The interval for the buckets.\nMust be a positive decimal.", + "type": "number" + }, + "min_doc_count": { + "description": "Only returns buckets that have `min_doc_count` number of documents.\nBy default, the response will fill gaps in the histogram with empty buckets.", + "type": "number" + }, + "missing": { + "description": "The value to apply to documents that do not have a value.\nBy default, documents without a value are ignored.", + "type": "number" + }, + "offset": { + "description": "By default, the bucket keys start with 0 and then continue in even spaced steps of `interval`.\nThe bucket boundaries can be shifted by using the `offset` option.", + "type": "number" + }, + "order": { + "$ref": "#/components/schemas/_types.aggregations:AggregateOrder" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "format": { + "type": "string" + }, + "keyed": { + "description": "If `true`, returns buckets as a hash instead of an array, keyed by the bucket keys.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:ExtendedBoundsdouble": { + "type": "object", + "properties": { + "max": { + "description": "Maximum value for the bound.", + "type": "number" + }, + "min": { + "description": "Minimum value for the bound.", + "type": "number" + } + }, + "required": [ + "max", + "min" + ] + }, + "_types.aggregations:IpRangeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ranges": { + "description": "Array of IP ranges.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:IpRangeAggregationRange" + } + } + } + } + ] + }, + "_types.aggregations:IpRangeAggregationRange": { + "type": "object", + "properties": { + "from": { + "description": "Start of the range.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "mask": { + "description": "IP range defined as a CIDR mask.", + "type": "string" + }, + "to": { + "description": "End of the range.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + } + } + }, + "_types.aggregations:IpPrefixAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "prefix_length": { + "description": "Length of the network prefix. For IPv4 addresses the accepted range is [0, 32].\nFor IPv6 addresses the accepted range is [0, 128].", + "type": "number" + }, + "is_ipv6": { + "description": "Defines whether the prefix applies to IPv6 addresses.", + "type": "boolean" + }, + "append_prefix_length": { + "description": "Defines whether the prefix length is appended to IP address keys in the response.", + "type": "boolean" + }, + "keyed": { + "description": "Defines whether buckets are returned as a hash rather than an array in the response.", + "type": "boolean" + }, + "min_doc_count": { + "description": "Minimum number of documents in a bucket for it to be included in the response.", + "type": "number" + } + }, + "required": [ + "field", + "prefix_length" + ] + } + ] + }, + "_types.aggregations:InferenceAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "model_id": { + "$ref": "#/components/schemas/_types:Name" + }, + "inference_config": { + "$ref": "#/components/schemas/_types.aggregations:InferenceConfigContainer" + } + }, + "required": [ + "model_id" + ] + } + ] + }, + "_types.aggregations:InferenceConfigContainer": { + "type": "object", + "properties": { + "regression": { + "$ref": "#/components/schemas/ml._types:RegressionInferenceOptions" + }, + "classification": { + "$ref": "#/components/schemas/ml._types:ClassificationInferenceOptions" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:RegressionInferenceOptions": { + "type": "object", + "properties": { + "results_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "num_top_feature_importance_values": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/ml-feature-importance.html" + }, + "description": "Specifies the maximum number of feature importance values per document.", + "type": "number" + } + } + }, + "ml._types:ClassificationInferenceOptions": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "num_top_feature_importance_values": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/ml-feature-importance.html" + }, + "description": "Specifies the maximum number of feature importance values per document.", + "type": "number" + }, + "prediction_field_type": { + "description": "Specifies the type of the predicted field to write. Acceptable values are: string, number, boolean. When boolean is provided 1.0 is transformed to true and 0.0 to false.", + "type": "string" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "top_classes_results_field": { + "description": "Specifies the field to which the top classes are written. Defaults to top_classes.", + "type": "string" + } + } + }, + "_types.aggregations:MatrixStatsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MatrixAggregation" + }, + { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/_types:SortMode" + } + } + } + ] + }, + "_types.aggregations:MatrixAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "missing": { + "description": "The value to apply to documents that do not have a value.\nBy default, documents without a value are ignored.", + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + ] + }, + "_types.aggregations:MaxAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MaxBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MedianAbsoluteDeviationAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object", + "properties": { + "compression": { + "description": "Limits the maximum number of nodes used by the underlying TDigest algorithm to `20 * compression`, enabling control of memory usage and approximation error.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MinAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MinBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:MissingAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + } + } + } + ] + }, + "_types.aggregations:MovingAverageAggregation": { + "discriminator": { + "propertyName": "model" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:LinearMovingAverageAggregation" + }, + { + "$ref": "#/components/schemas/_types.aggregations:SimpleMovingAverageAggregation" + }, + { + "$ref": "#/components/schemas/_types.aggregations:EwmaMovingAverageAggregation" + }, + { + "$ref": "#/components/schemas/_types.aggregations:HoltMovingAverageAggregation" + }, + { + "$ref": "#/components/schemas/_types.aggregations:HoltWintersMovingAverageAggregation" + } + ] + }, + "_types.aggregations:LinearMovingAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregationBase" + }, + { + "type": "object", + "properties": { + "model": { + "type": "string", + "enum": [ + "linear" + ] + }, + "settings": { + "$ref": "#/components/schemas/_types:EmptyObject" + } + }, + "required": [ + "model", + "settings" + ] + } + ] + }, + "_types:EmptyObject": { + "type": "object" + }, + "_types.aggregations:MovingAverageAggregationBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "minimize": { + "type": "boolean" + }, + "predict": { + "type": "number" + }, + "window": { + "type": "number" + } + } + } + ] + }, + "_types.aggregations:SimpleMovingAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregationBase" + }, + { + "type": "object", + "properties": { + "model": { + "type": "string", + "enum": [ + "simple" + ] + }, + "settings": { + "$ref": "#/components/schemas/_types:EmptyObject" + } + }, + "required": [ + "model", + "settings" + ] + } + ] + }, + "_types.aggregations:EwmaMovingAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregationBase" + }, + { + "type": "object", + "properties": { + "model": { + "type": "string", + "enum": [ + "ewma" + ] + }, + "settings": { + "$ref": "#/components/schemas/_types.aggregations:EwmaModelSettings" + } + }, + "required": [ + "model", + "settings" + ] + } + ] + }, + "_types.aggregations:EwmaModelSettings": { + "type": "object", + "properties": { + "alpha": { + "type": "number" + } + } + }, + "_types.aggregations:HoltMovingAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregationBase" + }, + { + "type": "object", + "properties": { + "model": { + "type": "string", + "enum": [ + "holt" + ] + }, + "settings": { + "$ref": "#/components/schemas/_types.aggregations:HoltLinearModelSettings" + } + }, + "required": [ + "model", + "settings" + ] + } + ] + }, + "_types.aggregations:HoltLinearModelSettings": { + "type": "object", + "properties": { + "alpha": { + "type": "number" + }, + "beta": { + "type": "number" + } + } + }, + "_types.aggregations:HoltWintersMovingAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MovingAverageAggregationBase" + }, + { + "type": "object", + "properties": { + "model": { + "type": "string", + "enum": [ + "holt_winters" + ] + }, + "settings": { + "$ref": "#/components/schemas/_types.aggregations:HoltWintersModelSettings" + } + }, + "required": [ + "model", + "settings" + ] + } + ] + }, + "_types.aggregations:HoltWintersModelSettings": { + "type": "object", + "properties": { + "alpha": { + "type": "number" + }, + "beta": { + "type": "number" + }, + "gamma": { + "type": "number" + }, + "pad": { + "type": "boolean" + }, + "period": { + "type": "number" + }, + "type": { + "$ref": "#/components/schemas/_types.aggregations:HoltWintersType" + } + } + }, + "_types.aggregations:HoltWintersType": { + "type": "string", + "enum": [ + "add", + "mult" + ] + }, + "_types.aggregations:MovingPercentilesAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "window": { + "description": "The size of window to \"slide\" across the histogram.", + "type": "number" + }, + "shift": { + "description": "By default, the window consists of the last n values excluding the current bucket.\nIncreasing `shift` by 1, moves the starting window position by 1 to the right.", + "type": "number" + }, + "keyed": { + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:MovingFunctionAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "script": { + "description": "The script that should be executed on each window of data.", + "type": "string" + }, + "shift": { + "description": "By default, the window consists of the last n values excluding the current bucket.\nIncreasing `shift` by 1, moves the starting window position by 1 to the right.", + "type": "number" + }, + "window": { + "description": "The size of window to \"slide\" across the histogram.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:MultiTermsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "collect_mode": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregationCollectMode" + }, + "order": { + "$ref": "#/components/schemas/_types.aggregations:AggregateOrder" + }, + "min_doc_count": { + "description": "The minimum number of documents in a bucket for it to be returned.", + "type": "number" + }, + "shard_min_doc_count": { + "description": "The minimum number of documents in a bucket on each shard for it to be returned.", + "type": "number" + }, + "shard_size": { + "description": "The number of candidate terms produced by each shard.\nBy default, `shard_size` will be automatically estimated based on the number of shards and the `size` parameter.", + "type": "number" + }, + "show_term_doc_count_error": { + "description": "Calculates the doc count error on per term basis.", + "type": "boolean" + }, + "size": { + "description": "The number of term buckets should be returned out of the overall terms list.", + "type": "number" + }, + "terms": { + "description": "The field from which to generate sets of terms.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:MultiTermLookup" + } + } + }, + "required": [ + "terms" + ] + } + ] + }, + "_types.aggregations:TermsAggregationCollectMode": { + "type": "string", + "enum": [ + "depth_first", + "breadth_first" + ] + }, + "_types.aggregations:MultiTermLookup": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:NestedAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "path": { + "$ref": "#/components/schemas/_types:Field" + } + } + } + ] + }, + "_types.aggregations:NormalizeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "method": { + "$ref": "#/components/schemas/_types.aggregations:NormalizeMethod" + } + } + } + ] + }, + "_types.aggregations:NormalizeMethod": { + "type": "string", + "enum": [ + "rescale_0_1", + "rescale_0_100", + "percent_of_sum", + "mean", + "z-score", + "softmax" + ] + }, + "_types.aggregations:ParentAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/_types:RelationName" + } + } + } + ] + }, + "_types.aggregations:PercentileRanksAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object", + "properties": { + "keyed": { + "description": "By default, the aggregation associates a unique string key with each bucket and returns the ranges as a hash rather than an array.\nSet to `false` to disable this behavior.", + "type": "boolean" + }, + "values": { + "description": "An array of values for which to calculate the percentile ranks.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "hdr": { + "$ref": "#/components/schemas/_types.aggregations:HdrMethod" + }, + "tdigest": { + "$ref": "#/components/schemas/_types.aggregations:TDigest" + } + } + } + ] + }, + "_types.aggregations:HdrMethod": { + "type": "object", + "properties": { + "number_of_significant_value_digits": { + "description": "Specifies the resolution of values for the histogram in number of significant digits.", + "type": "number" + } + } + }, + "_types.aggregations:TDigest": { + "type": "object", + "properties": { + "compression": { + "description": "Limits the maximum number of nodes used by the underlying TDigest algorithm to `20 * compression`, enabling control of memory usage and approximation error.", + "type": "number" + } + } + }, + "_types.aggregations:PercentilesAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object", + "properties": { + "keyed": { + "description": "By default, the aggregation associates a unique string key with each bucket and returns the ranges as a hash rather than an array.\nSet to `false` to disable this behavior.", + "type": "boolean" + }, + "percents": { + "description": "The percentiles to calculate.", + "type": "array", + "items": { + "type": "number" + } + }, + "hdr": { + "$ref": "#/components/schemas/_types.aggregations:HdrMethod" + }, + "tdigest": { + "$ref": "#/components/schemas/_types.aggregations:TDigest" + } + } + } + ] + }, + "_types.aggregations:PercentilesBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "percents": { + "description": "The list of percentiles to calculate.", + "type": "array", + "items": { + "type": "number" + } + } + } + } + ] + }, + "_types.aggregations:RangeAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing": { + "description": "The value to apply to documents that do not have a value.\nBy default, documents without a value are ignored.", + "type": "number" + }, + "ranges": { + "description": "An array of ranges used to bucket documents.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:AggregationRange" + } + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "keyed": { + "description": "Set to `true` to associate a unique string key with each bucket and return the ranges as a hash rather than an array.", + "type": "boolean" + }, + "format": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:RareTermsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "exclude": { + "$ref": "#/components/schemas/_types.aggregations:TermsExclude" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "include": { + "$ref": "#/components/schemas/_types.aggregations:TermsInclude" + }, + "max_doc_count": { + "description": "The maximum number of documents a term should appear in.", + "type": "number" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + }, + "precision": { + "description": "The precision of the internal CuckooFilters.\nSmaller precision leads to better approximation, but higher memory usage.", + "type": "number" + }, + "value_type": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:RateAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object", + "properties": { + "unit": { + "$ref": "#/components/schemas/_types.aggregations:CalendarInterval" + }, + "mode": { + "$ref": "#/components/schemas/_types.aggregations:RateMode" + } + } + } + ] + }, + "_types.aggregations:RateMode": { + "type": "string", + "enum": [ + "sum", + "value_count" + ] + }, + "_types.aggregations:ReverseNestedAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "path": { + "$ref": "#/components/schemas/_types:Field" + } + } + } + ] + }, + "_types.aggregations:SamplerAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "shard_size": { + "description": "Limits how many top-scoring documents are collected in the sample processed on each shard.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:ScriptedMetricAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "combine_script": { + "$ref": "#/components/schemas/_types:Script" + }, + "init_script": { + "$ref": "#/components/schemas/_types:Script" + }, + "map_script": { + "$ref": "#/components/schemas/_types:Script" + }, + "params": { + "description": "A global object with script parameters for `init`, `map` and `combine` scripts.\nIt is shared between the scripts.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "reduce_script": { + "$ref": "#/components/schemas/_types:Script" + } + } + } + ] + }, + "_types.aggregations:SerialDifferencingAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object", + "properties": { + "lag": { + "description": "The historical bucket to subtract from the current value.\nMust be a positive, non-zero integer.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:SignificantTermsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "background_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "chi_square": { + "$ref": "#/components/schemas/_types.aggregations:ChiSquareHeuristic" + }, + "exclude": { + "$ref": "#/components/schemas/_types.aggregations:TermsExclude" + }, + "execution_hint": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregationExecutionHint" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "gnd": { + "$ref": "#/components/schemas/_types.aggregations:GoogleNormalizedDistanceHeuristic" + }, + "include": { + "$ref": "#/components/schemas/_types.aggregations:TermsInclude" + }, + "jlh": { + "$ref": "#/components/schemas/_types:EmptyObject" + }, + "min_doc_count": { + "description": "Only return terms that are found in more than `min_doc_count` hits.", + "type": "number" + }, + "mutual_information": { + "$ref": "#/components/schemas/_types.aggregations:MutualInformationHeuristic" + }, + "percentage": { + "$ref": "#/components/schemas/_types.aggregations:PercentageScoreHeuristic" + }, + "script_heuristic": { + "$ref": "#/components/schemas/_types.aggregations:ScriptedHeuristic" + }, + "shard_min_doc_count": { + "description": "Regulates the certainty a shard has if the term should actually be added to the candidate list or not with respect to the `min_doc_count`.\nTerms will only be considered if their local shard frequency within the set is higher than the `shard_min_doc_count`.", + "type": "number" + }, + "shard_size": { + "description": "Can be used to control the volumes of candidate terms produced by each shard.\nBy default, `shard_size` will be automatically estimated based on the number of shards and the `size` parameter.", + "type": "number" + }, + "size": { + "description": "The number of buckets returned out of the overall terms list.", + "type": "number" + } + } + } + ] + }, + "_types.aggregations:ChiSquareHeuristic": { + "type": "object", + "properties": { + "background_is_superset": { + "description": "Set to `false` if you defined a custom background filter that represents a different set of documents that you want to compare to.", + "type": "boolean" + }, + "include_negatives": { + "description": "Set to `false` to filter out the terms that appear less often in the subset than in documents outside the subset.", + "type": "boolean" + } + }, + "required": [ + "background_is_superset", + "include_negatives" + ] + }, + "_types.aggregations:TermsAggregationExecutionHint": { + "type": "string", + "enum": [ + "map", + "global_ordinals", + "global_ordinals_hash", + "global_ordinals_low_cardinality" + ] + }, + "_types.aggregations:GoogleNormalizedDistanceHeuristic": { + "type": "object", + "properties": { + "background_is_superset": { + "description": "Set to `false` if you defined a custom background filter that represents a different set of documents that you want to compare to.", + "type": "boolean" + } + } + }, + "_types.aggregations:MutualInformationHeuristic": { + "type": "object", + "properties": { + "background_is_superset": { + "description": "Set to `false` if you defined a custom background filter that represents a different set of documents that you want to compare to.", + "type": "boolean" + }, + "include_negatives": { + "description": "Set to `false` to filter out the terms that appear less often in the subset than in documents outside the subset.", + "type": "boolean" + } + } + }, + "_types.aggregations:PercentageScoreHeuristic": { + "type": "object" + }, + "_types.aggregations:ScriptedHeuristic": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "script" + ] + }, + "_types.aggregations:SignificantTextAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "background_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "chi_square": { + "$ref": "#/components/schemas/_types.aggregations:ChiSquareHeuristic" + }, + "exclude": { + "$ref": "#/components/schemas/_types.aggregations:TermsExclude" + }, + "execution_hint": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregationExecutionHint" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "filter_duplicate_text": { + "description": "Whether to out duplicate text to deal with noisy data.", + "type": "boolean" + }, + "gnd": { + "$ref": "#/components/schemas/_types.aggregations:GoogleNormalizedDistanceHeuristic" + }, + "include": { + "$ref": "#/components/schemas/_types.aggregations:TermsInclude" + }, + "jlh": { + "$ref": "#/components/schemas/_types:EmptyObject" + }, + "min_doc_count": { + "description": "Only return values that are found in more than `min_doc_count` hits.", + "type": "number" + }, + "mutual_information": { + "$ref": "#/components/schemas/_types.aggregations:MutualInformationHeuristic" + }, + "percentage": { + "$ref": "#/components/schemas/_types.aggregations:PercentageScoreHeuristic" + }, + "script_heuristic": { + "$ref": "#/components/schemas/_types.aggregations:ScriptedHeuristic" + }, + "shard_min_doc_count": { + "description": "Regulates the certainty a shard has if the values should actually be added to the candidate list or not with respect to the min_doc_count.\nValues will only be considered if their local shard frequency within the set is higher than the `shard_min_doc_count`.", + "type": "number" + }, + "shard_size": { + "description": "The number of candidate terms produced by each shard.\nBy default, `shard_size` will be automatically estimated based on the number of shards and the `size` parameter.", + "type": "number" + }, + "size": { + "description": "The number of buckets returned out of the overall terms list.", + "type": "number" + }, + "source_fields": { + "$ref": "#/components/schemas/_types:Fields" + } + } + } + ] + }, + "_types.aggregations:StatsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:StatsBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:StringStatsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "show_distribution": { + "description": "Shows the probability distribution for all characters.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:SumAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormatMetricAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:SumBucketAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:PipelineAggregationBase" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:TermsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:BucketAggregationBase" + }, + { + "type": "object", + "properties": { + "collect_mode": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregationCollectMode" + }, + "exclude": { + "$ref": "#/components/schemas/_types.aggregations:TermsExclude" + }, + "execution_hint": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregationExecutionHint" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "include": { + "$ref": "#/components/schemas/_types.aggregations:TermsInclude" + }, + "min_doc_count": { + "description": "Only return values that are found in more than `min_doc_count` hits.", + "type": "number" + }, + "missing": { + "$ref": "#/components/schemas/_types.aggregations:Missing" + }, + "missing_order": { + "$ref": "#/components/schemas/_types.aggregations:MissingOrder" + }, + "missing_bucket": { + "type": "boolean" + }, + "value_type": { + "description": "Coerced unmapped fields into the specified type.", + "type": "string" + }, + "order": { + "$ref": "#/components/schemas/_types.aggregations:AggregateOrder" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "shard_size": { + "description": "The number of candidate terms produced by each shard.\nBy default, `shard_size` will be automatically estimated based on the number of shards and the `size` parameter.", + "type": "number" + }, + "show_term_doc_count_error": { + "description": "Set to `true` to return the `doc_count_error_upper_bound`, which is an upper bound to the error on the `doc_count` returned by each shard.", + "type": "boolean" + }, + "size": { + "description": "The number of buckets returned out of the overall terms list.", + "type": "number" + }, + "format": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:TopHitsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "docvalue_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "explain": { + "description": "If `true`, returns detailed information about score computation as part of a hit.", + "type": "boolean" + }, + "from": { + "description": "Starting document offset.", + "type": "number" + }, + "highlight": { + "$ref": "#/components/schemas/_global.search._types:Highlight" + }, + "script_fields": { + "description": "Returns the result of one or more script evaluations for each hit.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "size": { + "description": "The maximum number of top matching hits to return per bucket.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "stored_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "track_scores": { + "description": "If `true`, calculates and returns document scores, even if the scores are not used for sorting.", + "type": "boolean" + }, + "version": { + "description": "If `true`, returns document version as part of a hit.", + "type": "boolean" + }, + "seq_no_primary_term": { + "description": "If `true`, returns sequence number and primary term of the last modification of each hit.", + "type": "boolean" + } + } + } + ] + }, + "_types.aggregations:TTestAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "a": { + "$ref": "#/components/schemas/_types.aggregations:TestPopulation" + }, + "b": { + "$ref": "#/components/schemas/_types.aggregations:TestPopulation" + }, + "type": { + "$ref": "#/components/schemas/_types.aggregations:TTestType" + } + } + } + ] + }, + "_types.aggregations:TestPopulation": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:TTestType": { + "type": "string", + "enum": [ + "paired", + "homoscedastic", + "heteroscedastic" + ] + }, + "_types.aggregations:TopMetricsAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "metrics": { + "description": "The fields of the top document to return.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:TopMetricsValue" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.aggregations:TopMetricsValue" + } + } + ] + }, + "size": { + "description": "The number of top documents from which to return metrics.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + } + } + } + ] + }, + "_types.aggregations:TopMetricsValue": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + }, + "_types.aggregations:ValueCountAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:FormattableMetricAggregation" + }, + { + "type": "object" + } + ] + }, + "_types.aggregations:FormattableMetricAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:MetricAggregationBase" + }, + { + "type": "object", + "properties": { + "format": { + "type": "string" + } + } + } + ] + }, + "_types.aggregations:WeightedAverageAggregation": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.aggregations:Aggregation" + }, + { + "type": "object", + "properties": { + "format": { + "description": "A numeric response formatter.", + "type": "string" + }, + "value": { + "$ref": "#/components/schemas/_types.aggregations:WeightedAverageValue" + }, + "value_type": { + "$ref": "#/components/schemas/_types.aggregations:ValueType" + }, + "weight": { + "$ref": "#/components/schemas/_types.aggregations:WeightedAverageValue" + } + } + } + ] + }, + "_types.aggregations:WeightedAverageValue": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "missing": { + "description": "A value or weight to use if the field is missing.", + "type": "number" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + } + }, + "_types.aggregations:VariableWidthHistogramAggregation": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "buckets": { + "description": "The target number of buckets.", + "type": "number" + }, + "shard_size": { + "description": "The number of buckets that the coordinating node will request from each shard.\nDefaults to `buckets * 50`.", + "type": "number" + }, + "initial_buffer": { + "description": "Specifies the number of individual documents that will be stored in memory on a shard before the initial bucketing algorithm is run.\nDefaults to `min(10 * shard_size, 50000)`.", + "type": "number" + } + } + }, + "_types:KnnQuery": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "query_vector": { + "$ref": "#/components/schemas/_types:QueryVector" + }, + "query_vector_builder": { + "$ref": "#/components/schemas/_types:QueryVectorBuilder" + }, + "k": { + "description": "The final number of nearest neighbors to return as top hits", + "type": "number" + }, + "num_candidates": { + "description": "The number of nearest neighbor candidates to consider per shard", + "type": "number" + }, + "boost": { + "description": "Boost value to apply to kNN scores", + "type": "number" + }, + "filter": { + "description": "Filters for the kNN search query", + "oneOf": [ + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + } + ] + }, + "similarity": { + "description": "The minimum similarity for a vector to be considered a match", + "type": "number" + } + }, + "required": [ + "field", + "k", + "num_candidates" + ] + }, + "_types:QueryVector": { + "type": "array", + "items": { + "type": "number" + } + }, + "_types:QueryVectorBuilder": { + "type": "object", + "properties": { + "text_embedding": { + "$ref": "#/components/schemas/_types:TextEmbedding" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types:TextEmbedding": { + "type": "object", + "properties": { + "model_id": { + "type": "string" + }, + "model_text": { + "type": "string" + } + }, + "required": [ + "model_id", + "model_text" + ] + }, + "_global.search._types:Rescore": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_global.search._types:RescoreQuery" + }, + "window_size": { + "type": "number" + } + }, + "required": [ + "query" + ] + }, + "_global.search._types:RescoreQuery": { + "type": "object", + "properties": { + "rescore_query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_weight": { + "description": "Relative importance of the original query versus the rescore query.", + "type": "number" + }, + "rescore_query_weight": { + "description": "Relative importance of the rescore query versus the original query.", + "type": "number" + }, + "score_mode": { + "$ref": "#/components/schemas/_global.search._types:ScoreMode" + } + }, + "required": [ + "rescore_query" + ] + }, + "_global.search._types:ScoreMode": { + "type": "string", + "enum": [ + "avg", + "max", + "min", + "multiply", + "total" + ] + }, + "_types:SlicedScroll": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max": { + "type": "number" + } + }, + "required": [ + "id", + "max" + ] + }, + "_global.search._types:Suggester": { + "type": "object", + "properties": { + "text": { + "description": "Global suggest text, to avoid repetition when the same text is used in several suggesters", + "type": "string" + } + } + }, + "_global.search._types:PointInTimeReference": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "keep_alive": { + "$ref": "#/components/schemas/_types:Duration" + } + }, + "required": [ + "id" + ] + }, + "_types.mapping:RuntimeFields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:RuntimeField" + } + }, + "_types.mapping:RuntimeField": { + "type": "object", + "properties": { + "fetch_fields": { + "description": "For type `lookup`", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFieldFetchFields" + } + }, + "format": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html" + }, + "description": "A custom format for `date` type runtime fields.", + "type": "string" + }, + "input_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "target_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "type": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFieldType" + } + }, + "required": [ + "type" + ] + }, + "_types.mapping:RuntimeFieldFetchFields": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "format": { + "type": "string" + } + }, + "required": [ + "field" + ] + }, + "_types.mapping:RuntimeFieldType": { + "type": "string", + "enum": [ + "boolean", + "date", + "double", + "geo_point", + "ip", + "keyword", + "long", + "lookup" + ] + }, + "_types:Refresh": { + "type": "string", + "enum": [ + "true", + "false", + "wait_for" + ] + }, + "_types:WaitForActiveShards": { + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/components/schemas/_types:WaitForActiveShardOptions" + } + ] + }, + "_types:WaitForActiveShardOptions": { + "type": "string", + "enum": [ + "all", + "index-setting" + ] + }, + "_global.bulk:OperationContainer": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_global.bulk:IndexOperation" + }, + "create": { + "$ref": "#/components/schemas/_global.bulk:CreateOperation" + }, + "update": { + "$ref": "#/components/schemas/_global.bulk:UpdateOperation" + }, + "delete": { + "$ref": "#/components/schemas/_global.bulk:DeleteOperation" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_global.bulk:IndexOperation": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.bulk:WriteOperation" + }, + { + "type": "object" + } + ] + }, + "_global.bulk:WriteOperation": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.bulk:OperationBase" + }, + { + "type": "object", + "properties": { + "dynamic_templates": { + "description": "A map from the full name of fields to the name of dynamic templates.\nDefaults to an empty map.\nIf a name matches a dynamic template, then that template will be applied regardless of other match predicates defined in the template.\nIf a field is already defined in the mapping, then this parameter won’t be used.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "pipeline": { + "description": "ID of the pipeline to use to preprocess incoming documents.\nIf the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request.\nIf a final pipeline is configured it will always run, regardless of the value of this parameter.", + "type": "string" + }, + "require_alias": { + "description": "If `true`, the request’s actions must target an index alias.", + "type": "boolean" + } + } + } + ] + }, + "_global.bulk:OperationBase": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "if_primary_term": { + "type": "number" + }, + "if_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + } + }, + "_global.bulk:CreateOperation": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.bulk:WriteOperation" + }, + { + "type": "object" + } + ] + }, + "_global.bulk:UpdateOperation": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.bulk:OperationBase" + }, + { + "type": "object", + "properties": { + "require_alias": { + "description": "If `true`, the request’s actions must target an index alias.", + "type": "boolean" + }, + "retry_on_conflict": { + "type": "number" + } + } + } + ] + }, + "_global.bulk:DeleteOperation": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.bulk:OperationBase" + }, + { + "type": "object" + } + ] + }, + "_global.bulk:UpdateAction": { + "type": "object", + "properties": { + "detect_noop": { + "description": "Set to false to disable setting 'result' in the response\nto 'noop' if no change to the document occurred.", + "type": "boolean" + }, + "doc": { + "description": "A partial update to an existing document.", + "type": "object" + }, + "doc_as_upsert": { + "description": "Set to true to use the contents of 'doc' as the value of 'upsert'", + "type": "boolean" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "scripted_upsert": { + "description": "Set to true to execute the script whether or not the document exists.", + "type": "boolean" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "upsert": { + "description": "If the document does not already exist, the contents of 'upsert' are inserted as a\nnew document. If the document exists, the 'script' is executed.", + "type": "object" + } + } + }, + "_global.bulk:ResponseItem": { + "type": "object", + "properties": { + "_id": { + "description": "The document ID associated with the operation.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "_index": { + "description": "Name of the index associated with the operation.\nIf the operation targeted a data stream, this is the backing index into which the document was written.", + "type": "string" + }, + "status": { + "description": "HTTP status code returned for the operation.", + "type": "number" + }, + "error": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "_primary_term": { + "description": "The primary term assigned to the document for the operation.", + "type": "number" + }, + "result": { + "description": "Result of the operation.\nSuccessful values are `created`, `deleted`, and `updated`.", + "type": "string" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "forced_refresh": { + "type": "boolean" + }, + "get": { + "$ref": "#/components/schemas/_types:InlineGetDictUserDefined" + } + }, + "required": [ + "_index", + "status" + ] + }, + "_types:InlineGetDictUserDefined": { + "type": "object", + "properties": { + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "found": { + "type": "boolean" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_primary_term": { + "type": "number" + }, + "_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "_source": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "required": [ + "found", + "_source" + ] + }, + "_types:Names": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:Name" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Name" + } + } + ] + }, + "cat.aliases:AliasesRecord": { + "type": "object", + "properties": { + "alias": { + "description": "alias name", + "type": "string" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "filter": { + "description": "filter", + "type": "string" + }, + "routing.index": { + "description": "index routing", + "type": "string" + }, + "routing.search": { + "description": "search routing", + "type": "string" + }, + "is_write_index": { + "description": "write index", + "type": "string" + } + } + }, + "cat.component_templates:ComponentTemplate": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "alias_count": { + "type": "string" + }, + "mapping_count": { + "type": "string" + }, + "settings_count": { + "type": "string" + }, + "metadata_count": { + "type": "string" + }, + "included_in": { + "type": "string" + } + }, + "required": [ + "name", + "version", + "alias_count", + "mapping_count", + "settings_count", + "metadata_count", + "included_in" + ] + }, + "cat.count:CountRecord": { + "type": "object", + "properties": { + "epoch": { + "$ref": "#/components/schemas/_spec_utils:StringifiedEpochTimeUnitSeconds" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:TimeOfDay" + }, + "count": { + "description": "the document count", + "type": "string" + } + } + }, + "_spec_utils:StringifiedEpochTimeUnitSeconds": { + "description": "Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior\nis used to capture this behavior while keeping the semantics of the field type.\n\nDepending on the target language, code generators can keep the union or remove it and leniently parse\nstrings to the target type.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:EpochTimeUnitSeconds" + }, + { + "type": "string" + } + ] + }, + "_types:EpochTimeUnitSeconds": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitSeconds" + } + ] + }, + "_types:UnitSeconds": { + "description": "Time unit for seconds", + "type": "number" + }, + "_types:TimeOfDay": { + "description": "Time of day, expressed as HH:MM:SS", + "type": "string" + }, + "cat.help:HelpRecord": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + } + }, + "required": [ + "endpoint" + ] + }, + "_types:Bytes": { + "type": "string", + "enum": [ + "b", + "kb", + "mb", + "gb", + "tb", + "pb" + ] + }, + "_types:HealthStatus": { + "type": "string", + "enum": [ + "green", + "yellow", + "red" + ] + }, + "_types:TimeUnit": { + "type": "string", + "enum": [ + "nanos", + "micros", + "ms", + "s", + "m", + "h", + "d" + ] + }, + "cat.indices:IndicesRecord": { + "type": "object", + "properties": { + "health": { + "description": "current health status", + "type": "string" + }, + "status": { + "description": "open/close status", + "type": "string" + }, + "index": { + "description": "index name", + "type": "string" + }, + "uuid": { + "description": "index uuid", + "type": "string" + }, + "pri": { + "description": "number of primary shards", + "type": "string" + }, + "rep": { + "description": "number of replica shards", + "type": "string" + }, + "docs.count": { + "description": "available docs", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "docs.deleted": { + "description": "deleted docs", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "creation.date": { + "description": "index creation date (millisecond value)", + "type": "string" + }, + "creation.date.string": { + "description": "index creation date (as string)", + "type": "string" + }, + "store.size": { + "description": "store size of primaries & replicas", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "pri.store.size": { + "description": "store size of primaries", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "completion.size": { + "description": "size of completion", + "type": "string" + }, + "pri.completion.size": { + "description": "size of completion", + "type": "string" + }, + "fielddata.memory_size": { + "description": "used fielddata cache", + "type": "string" + }, + "pri.fielddata.memory_size": { + "description": "used fielddata cache", + "type": "string" + }, + "fielddata.evictions": { + "description": "fielddata evictions", + "type": "string" + }, + "pri.fielddata.evictions": { + "description": "fielddata evictions", + "type": "string" + }, + "query_cache.memory_size": { + "description": "used query cache", + "type": "string" + }, + "pri.query_cache.memory_size": { + "description": "used query cache", + "type": "string" + }, + "query_cache.evictions": { + "description": "query cache evictions", + "type": "string" + }, + "pri.query_cache.evictions": { + "description": "query cache evictions", + "type": "string" + }, + "request_cache.memory_size": { + "description": "used request cache", + "type": "string" + }, + "pri.request_cache.memory_size": { + "description": "used request cache", + "type": "string" + }, + "request_cache.evictions": { + "description": "request cache evictions", + "type": "string" + }, + "pri.request_cache.evictions": { + "description": "request cache evictions", + "type": "string" + }, + "request_cache.hit_count": { + "description": "request cache hit count", + "type": "string" + }, + "pri.request_cache.hit_count": { + "description": "request cache hit count", + "type": "string" + }, + "request_cache.miss_count": { + "description": "request cache miss count", + "type": "string" + }, + "pri.request_cache.miss_count": { + "description": "request cache miss count", + "type": "string" + }, + "flush.total": { + "description": "number of flushes", + "type": "string" + }, + "pri.flush.total": { + "description": "number of flushes", + "type": "string" + }, + "flush.total_time": { + "description": "time spent in flush", + "type": "string" + }, + "pri.flush.total_time": { + "description": "time spent in flush", + "type": "string" + }, + "get.current": { + "description": "number of current get ops", + "type": "string" + }, + "pri.get.current": { + "description": "number of current get ops", + "type": "string" + }, + "get.time": { + "description": "time spent in get", + "type": "string" + }, + "pri.get.time": { + "description": "time spent in get", + "type": "string" + }, + "get.total": { + "description": "number of get ops", + "type": "string" + }, + "pri.get.total": { + "description": "number of get ops", + "type": "string" + }, + "get.exists_time": { + "description": "time spent in successful gets", + "type": "string" + }, + "pri.get.exists_time": { + "description": "time spent in successful gets", + "type": "string" + }, + "get.exists_total": { + "description": "number of successful gets", + "type": "string" + }, + "pri.get.exists_total": { + "description": "number of successful gets", + "type": "string" + }, + "get.missing_time": { + "description": "time spent in failed gets", + "type": "string" + }, + "pri.get.missing_time": { + "description": "time spent in failed gets", + "type": "string" + }, + "get.missing_total": { + "description": "number of failed gets", + "type": "string" + }, + "pri.get.missing_total": { + "description": "number of failed gets", + "type": "string" + }, + "indexing.delete_current": { + "description": "number of current deletions", + "type": "string" + }, + "pri.indexing.delete_current": { + "description": "number of current deletions", + "type": "string" + }, + "indexing.delete_time": { + "description": "time spent in deletions", + "type": "string" + }, + "pri.indexing.delete_time": { + "description": "time spent in deletions", + "type": "string" + }, + "indexing.delete_total": { + "description": "number of delete ops", + "type": "string" + }, + "pri.indexing.delete_total": { + "description": "number of delete ops", + "type": "string" + }, + "indexing.index_current": { + "description": "number of current indexing ops", + "type": "string" + }, + "pri.indexing.index_current": { + "description": "number of current indexing ops", + "type": "string" + }, + "indexing.index_time": { + "description": "time spent in indexing", + "type": "string" + }, + "pri.indexing.index_time": { + "description": "time spent in indexing", + "type": "string" + }, + "indexing.index_total": { + "description": "number of indexing ops", + "type": "string" + }, + "pri.indexing.index_total": { + "description": "number of indexing ops", + "type": "string" + }, + "indexing.index_failed": { + "description": "number of failed indexing ops", + "type": "string" + }, + "pri.indexing.index_failed": { + "description": "number of failed indexing ops", + "type": "string" + }, + "merges.current": { + "description": "number of current merges", + "type": "string" + }, + "pri.merges.current": { + "description": "number of current merges", + "type": "string" + }, + "merges.current_docs": { + "description": "number of current merging docs", + "type": "string" + }, + "pri.merges.current_docs": { + "description": "number of current merging docs", + "type": "string" + }, + "merges.current_size": { + "description": "size of current merges", + "type": "string" + }, + "pri.merges.current_size": { + "description": "size of current merges", + "type": "string" + }, + "merges.total": { + "description": "number of completed merge ops", + "type": "string" + }, + "pri.merges.total": { + "description": "number of completed merge ops", + "type": "string" + }, + "merges.total_docs": { + "description": "docs merged", + "type": "string" + }, + "pri.merges.total_docs": { + "description": "docs merged", + "type": "string" + }, + "merges.total_size": { + "description": "size merged", + "type": "string" + }, + "pri.merges.total_size": { + "description": "size merged", + "type": "string" + }, + "merges.total_time": { + "description": "time spent in merges", + "type": "string" + }, + "pri.merges.total_time": { + "description": "time spent in merges", + "type": "string" + }, + "refresh.total": { + "description": "total refreshes", + "type": "string" + }, + "pri.refresh.total": { + "description": "total refreshes", + "type": "string" + }, + "refresh.time": { + "description": "time spent in refreshes", + "type": "string" + }, + "pri.refresh.time": { + "description": "time spent in refreshes", + "type": "string" + }, + "refresh.external_total": { + "description": "total external refreshes", + "type": "string" + }, + "pri.refresh.external_total": { + "description": "total external refreshes", + "type": "string" + }, + "refresh.external_time": { + "description": "time spent in external refreshes", + "type": "string" + }, + "pri.refresh.external_time": { + "description": "time spent in external refreshes", + "type": "string" + }, + "refresh.listeners": { + "description": "number of pending refresh listeners", + "type": "string" + }, + "pri.refresh.listeners": { + "description": "number of pending refresh listeners", + "type": "string" + }, + "search.fetch_current": { + "description": "current fetch phase ops", + "type": "string" + }, + "pri.search.fetch_current": { + "description": "current fetch phase ops", + "type": "string" + }, + "search.fetch_time": { + "description": "time spent in fetch phase", + "type": "string" + }, + "pri.search.fetch_time": { + "description": "time spent in fetch phase", + "type": "string" + }, + "search.fetch_total": { + "description": "total fetch ops", + "type": "string" + }, + "pri.search.fetch_total": { + "description": "total fetch ops", + "type": "string" + }, + "search.open_contexts": { + "description": "open search contexts", + "type": "string" + }, + "pri.search.open_contexts": { + "description": "open search contexts", + "type": "string" + }, + "search.query_current": { + "description": "current query phase ops", + "type": "string" + }, + "pri.search.query_current": { + "description": "current query phase ops", + "type": "string" + }, + "search.query_time": { + "description": "time spent in query phase", + "type": "string" + }, + "pri.search.query_time": { + "description": "time spent in query phase", + "type": "string" + }, + "search.query_total": { + "description": "total query phase ops", + "type": "string" + }, + "pri.search.query_total": { + "description": "total query phase ops", + "type": "string" + }, + "search.scroll_current": { + "description": "open scroll contexts", + "type": "string" + }, + "pri.search.scroll_current": { + "description": "open scroll contexts", + "type": "string" + }, + "search.scroll_time": { + "description": "time scroll contexts held open", + "type": "string" + }, + "pri.search.scroll_time": { + "description": "time scroll contexts held open", + "type": "string" + }, + "search.scroll_total": { + "description": "completed scroll contexts", + "type": "string" + }, + "pri.search.scroll_total": { + "description": "completed scroll contexts", + "type": "string" + }, + "segments.count": { + "description": "number of segments", + "type": "string" + }, + "pri.segments.count": { + "description": "number of segments", + "type": "string" + }, + "segments.memory": { + "description": "memory used by segments", + "type": "string" + }, + "pri.segments.memory": { + "description": "memory used by segments", + "type": "string" + }, + "segments.index_writer_memory": { + "description": "memory used by index writer", + "type": "string" + }, + "pri.segments.index_writer_memory": { + "description": "memory used by index writer", + "type": "string" + }, + "segments.version_map_memory": { + "description": "memory used by version map", + "type": "string" + }, + "pri.segments.version_map_memory": { + "description": "memory used by version map", + "type": "string" + }, + "segments.fixed_bitset_memory": { + "description": "memory used by fixed bit sets for nested object field types and export type filters for types referred in _parent fields", + "type": "string" + }, + "pri.segments.fixed_bitset_memory": { + "description": "memory used by fixed bit sets for nested object field types and export type filters for types referred in _parent fields", + "type": "string" + }, + "warmer.current": { + "description": "current warmer ops", + "type": "string" + }, + "pri.warmer.current": { + "description": "current warmer ops", + "type": "string" + }, + "warmer.total": { + "description": "total warmer ops", + "type": "string" + }, + "pri.warmer.total": { + "description": "total warmer ops", + "type": "string" + }, + "warmer.total_time": { + "description": "time spent in warmers", + "type": "string" + }, + "pri.warmer.total_time": { + "description": "time spent in warmers", + "type": "string" + }, + "suggest.current": { + "description": "number of current suggest ops", + "type": "string" + }, + "pri.suggest.current": { + "description": "number of current suggest ops", + "type": "string" + }, + "suggest.time": { + "description": "time spend in suggest", + "type": "string" + }, + "pri.suggest.time": { + "description": "time spend in suggest", + "type": "string" + }, + "suggest.total": { + "description": "number of suggest ops", + "type": "string" + }, + "pri.suggest.total": { + "description": "number of suggest ops", + "type": "string" + }, + "memory.total": { + "description": "total used memory", + "type": "string" + }, + "pri.memory.total": { + "description": "total user memory", + "type": "string" + }, + "search.throttled": { + "description": "indicates if the index is search throttled", + "type": "string" + }, + "bulk.total_operations": { + "description": "number of bulk shard ops", + "type": "string" + }, + "pri.bulk.total_operations": { + "description": "number of bulk shard ops", + "type": "string" + }, + "bulk.total_time": { + "description": "time spend in shard bulk", + "type": "string" + }, + "pri.bulk.total_time": { + "description": "time spend in shard bulk", + "type": "string" + }, + "bulk.total_size_in_bytes": { + "description": "total size in bytes of shard bulk", + "type": "string" + }, + "pri.bulk.total_size_in_bytes": { + "description": "total size in bytes of shard bulk", + "type": "string" + }, + "bulk.avg_time": { + "description": "average time spend in shard bulk", + "type": "string" + }, + "pri.bulk.avg_time": { + "description": "average time spend in shard bulk", + "type": "string" + }, + "bulk.avg_size_in_bytes": { + "description": "average size in bytes of shard bulk", + "type": "string" + }, + "pri.bulk.avg_size_in_bytes": { + "description": "average size in bytes of shard bulk", + "type": "string" + } + } + }, + "cat._types:CatDfaColumns": { + "oneOf": [ + { + "$ref": "#/components/schemas/cat._types:CatDfaColumn" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat._types:CatDfaColumn" + } + } + ] + }, + "cat._types:CatDfaColumn": { + "type": "string", + "enum": [ + "assignment_explanation", + "create_time", + "description", + "dest_index", + "failure_reason", + "id", + "model_memory_limit", + "node.address", + "node.ephemeral_id", + "node.id", + "node.name", + "progress", + "source_index", + "state", + "type", + "version" + ] + }, + "cat.ml_data_frame_analytics:DataFrameAnalyticsRecord": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "type": { + "description": "The type of analysis that the job performs.", + "type": "string" + }, + "create_time": { + "description": "The time when the job was created.", + "type": "string" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "source_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "dest_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "model_memory_limit": { + "description": "The approximate maximum amount of memory resources that are permitted for the job.", + "type": "string" + }, + "state": { + "description": "The current status of the job.", + "type": "string" + }, + "failure_reason": { + "description": "Messages about the reason why the job failed.", + "type": "string" + }, + "progress": { + "description": "The progress report for the job by phase.", + "type": "string" + }, + "assignment_explanation": { + "description": "Messages related to the selection of a node.", + "type": "string" + }, + "node.id": { + "$ref": "#/components/schemas/_types:Id" + }, + "node.name": { + "$ref": "#/components/schemas/_types:Name" + }, + "node.ephemeral_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "node.address": { + "description": "The network address of the assigned node.", + "type": "string" + } + } + }, + "cat._types:CatDatafeedColumns": { + "oneOf": [ + { + "$ref": "#/components/schemas/cat._types:CatDatafeedColumn" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat._types:CatDatafeedColumn" + } + } + ] + }, + "cat._types:CatDatafeedColumn": { + "type": "string", + "enum": [ + "ae", + "bc", + "id", + "na", + "ne", + "ni", + "nn", + "sba", + "sc", + "seah", + "st", + "s" + ] + }, + "cat.ml_datafeeds:DatafeedsRecord": { + "type": "object", + "properties": { + "id": { + "description": "The datafeed identifier.", + "type": "string" + }, + "state": { + "$ref": "#/components/schemas/ml._types:DatafeedState" + }, + "assignment_explanation": { + "description": "For started datafeeds only, contains messages relating to the selection of a node.", + "type": "string" + }, + "buckets.count": { + "description": "The number of buckets processed.", + "type": "string" + }, + "search.count": { + "description": "The number of searches run by the datafeed.", + "type": "string" + }, + "search.time": { + "description": "The total time the datafeed spent searching, in milliseconds.", + "type": "string" + }, + "search.bucket_avg": { + "description": "The average search time per bucket, in milliseconds.", + "type": "string" + }, + "search.exp_avg_hour": { + "description": "The exponential average search time per hour, in milliseconds.", + "type": "string" + }, + "node.id": { + "description": "The unique identifier of the assigned node.\nFor started datafeeds only, this information pertains to the node upon which the datafeed is started.", + "type": "string" + }, + "node.name": { + "description": "The name of the assigned node.\nFor started datafeeds only, this information pertains to the node upon which the datafeed is started.", + "type": "string" + }, + "node.ephemeral_id": { + "description": "The ephemeral identifier of the assigned node.\nFor started datafeeds only, this information pertains to the node upon which the datafeed is started.", + "type": "string" + }, + "node.address": { + "description": "The network address of the assigned node.\nFor started datafeeds only, this information pertains to the node upon which the datafeed is started.", + "type": "string" + } + } + }, + "ml._types:DatafeedState": { + "type": "string", + "enum": [ + "started", + "stopped", + "starting", + "stopping" + ] + }, + "cat._types:CatAnonalyDetectorColumns": { + "oneOf": [ + { + "$ref": "#/components/schemas/cat._types:CatAnomalyDetectorColumn" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat._types:CatAnomalyDetectorColumn" + } + } + ] + }, + "cat._types:CatAnomalyDetectorColumn": { + "type": "string", + "enum": [ + "assignment_explanation", + "buckets.count", + "buckets.time.exp_avg", + "buckets.time.exp_avg_hour", + "buckets.time.max", + "buckets.time.min", + "buckets.time.total", + "data.buckets", + "data.earliest_record", + "data.empty_buckets", + "data.input_bytes", + "data.input_fields", + "data.input_records", + "data.invalid_dates", + "data.last", + "data.last_empty_bucket", + "data.last_sparse_bucket", + "data.latest_record", + "data.missing_fields", + "data.out_of_order_timestamps", + "data.processed_fields", + "data.processed_records", + "data.sparse_buckets", + "forecasts.memory.avg", + "forecasts.memory.max", + "forecasts.memory.min", + "forecasts.memory.total", + "forecasts.records.avg", + "forecasts.records.max", + "forecasts.records.min", + "forecasts.records.total", + "forecasts.time.avg", + "forecasts.time.max", + "forecasts.time.min", + "forecasts.time.total", + "forecasts.total", + "id", + "model.bucket_allocation_failures", + "model.by_fields", + "model.bytes", + "model.bytes_exceeded", + "model.categorization_status", + "model.categorized_doc_count", + "model.dead_category_count", + "model.failed_category_count", + "model.frequent_category_count", + "model.log_time", + "model.memory_limit", + "model.memory_status", + "model.over_fields", + "model.partition_fields", + "model.rare_category_count", + "model.timestamp", + "model.total_category_count", + "node.address", + "node.ephemeral_id", + "node.id", + "node.name", + "opened_time", + "state" + ] + }, + "cat.ml_jobs:JobsRecord": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "state": { + "$ref": "#/components/schemas/ml._types:JobState" + }, + "opened_time": { + "description": "For open jobs only, the amount of time the job has been opened.", + "type": "string" + }, + "assignment_explanation": { + "description": "For open anomaly detection jobs only, contains messages relating to the selection of a node to run the job.", + "type": "string" + }, + "data.processed_records": { + "description": "The number of input documents that have been processed by the anomaly detection job.\nThis value includes documents with missing fields, since they are nonetheless analyzed.\nIf you use datafeeds and have aggregations in your search query, the `processed_record_count` is the number of aggregation results processed, not the number of Elasticsearch documents.", + "type": "string" + }, + "data.processed_fields": { + "description": "The total number of fields in all the documents that have been processed by the anomaly detection job.\nOnly fields that are specified in the detector configuration object contribute to this count.\nThe timestamp is not included in this count.", + "type": "string" + }, + "data.input_bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "data.input_records": { + "description": "The number of input documents posted to the anomaly detection job.", + "type": "string" + }, + "data.input_fields": { + "description": "The total number of fields in input documents posted to the anomaly detection job.\nThis count includes fields that are not used in the analysis.\nHowever, be aware that if you are using a datafeed, it extracts only the required fields from the documents it retrieves before posting them to the job.", + "type": "string" + }, + "data.invalid_dates": { + "description": "The number of input documents with either a missing date field or a date that could not be parsed.", + "type": "string" + }, + "data.missing_fields": { + "description": "The number of input documents that are missing a field that the anomaly detection job is configured to analyze.\nInput documents with missing fields are still processed because it is possible that not all fields are missing.\nIf you are using datafeeds or posting data to the job in JSON format, a high `missing_field_count` is often not an indication of data issues.\nIt is not necessarily a cause for concern.", + "type": "string" + }, + "data.out_of_order_timestamps": { + "description": "The number of input documents that have a timestamp chronologically preceding the start of the current anomaly detection bucket offset by the latency window.\nThis information is applicable only when you provide data to the anomaly detection job by using the post data API.\nThese out of order documents are discarded, since jobs require time series data to be in ascending chronological order.", + "type": "string" + }, + "data.empty_buckets": { + "description": "The number of buckets which did not contain any data.\nIf your data contains many empty buckets, consider increasing your `bucket_span` or using functions that are tolerant to gaps in data such as mean, `non_null_sum` or `non_zero_count`.", + "type": "string" + }, + "data.sparse_buckets": { + "description": "The number of buckets that contained few data points compared to the expected number of data points.\nIf your data contains many sparse buckets, consider using a longer `bucket_span`.", + "type": "string" + }, + "data.buckets": { + "description": "The total number of buckets processed.", + "type": "string" + }, + "data.earliest_record": { + "description": "The timestamp of the earliest chronologically input document.", + "type": "string" + }, + "data.latest_record": { + "description": "The timestamp of the latest chronologically input document.", + "type": "string" + }, + "data.last": { + "description": "The timestamp at which data was last analyzed, according to server time.", + "type": "string" + }, + "data.last_empty_bucket": { + "description": "The timestamp of the last bucket that did not contain any data.", + "type": "string" + }, + "data.last_sparse_bucket": { + "description": "The timestamp of the last bucket that was considered sparse.", + "type": "string" + }, + "model.bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "model.memory_status": { + "$ref": "#/components/schemas/ml._types:MemoryStatus" + }, + "model.bytes_exceeded": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "model.memory_limit": { + "description": "The upper limit for model memory usage, checked on increasing values.", + "type": "string" + }, + "model.by_fields": { + "description": "The number of `by` field values that were analyzed by the models.\nThis value is cumulative for all detectors in the job.", + "type": "string" + }, + "model.over_fields": { + "description": "The number of `over` field values that were analyzed by the models.\nThis value is cumulative for all detectors in the job.", + "type": "string" + }, + "model.partition_fields": { + "description": "The number of `partition` field values that were analyzed by the models.\nThis value is cumulative for all detectors in the job.", + "type": "string" + }, + "model.bucket_allocation_failures": { + "description": "The number of buckets for which new entities in incoming data were not processed due to insufficient model memory.\nThis situation is also signified by a `hard_limit: memory_status` property value.", + "type": "string" + }, + "model.categorization_status": { + "$ref": "#/components/schemas/ml._types:CategorizationStatus" + }, + "model.categorized_doc_count": { + "description": "The number of documents that have had a field categorized.", + "type": "string" + }, + "model.total_category_count": { + "description": "The number of categories created by categorization.", + "type": "string" + }, + "model.frequent_category_count": { + "description": "The number of categories that match more than 1% of categorized documents.", + "type": "string" + }, + "model.rare_category_count": { + "description": "The number of categories that match just one categorized document.", + "type": "string" + }, + "model.dead_category_count": { + "description": "The number of categories created by categorization that will never be assigned again because another category’s definition makes it a superset of the dead category.\nDead categories are a side effect of the way categorization has no prior training.", + "type": "string" + }, + "model.failed_category_count": { + "description": "The number of times that categorization wanted to create a new category but couldn’t because the job had hit its `model_memory_limit`.\nThis count does not track which specific categories failed to be created.\nTherefore you cannot use this value to determine the number of unique categories that were missed.", + "type": "string" + }, + "model.log_time": { + "description": "The timestamp when the model stats were gathered, according to server time.", + "type": "string" + }, + "model.timestamp": { + "description": "The timestamp of the last record when the model stats were gathered.", + "type": "string" + }, + "forecasts.total": { + "description": "The number of individual forecasts currently available for the job.\nA value of one or more indicates that forecasts exist.", + "type": "string" + }, + "forecasts.memory.min": { + "description": "The minimum memory usage in bytes for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.memory.max": { + "description": "The maximum memory usage in bytes for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.memory.avg": { + "description": "The average memory usage in bytes for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.memory.total": { + "description": "The total memory usage in bytes for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.records.min": { + "description": "The minimum number of `model_forecast` documents written for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.records.max": { + "description": "The maximum number of `model_forecast` documents written for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.records.avg": { + "description": "The average number of `model_forecast` documents written for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.records.total": { + "description": "The total number of `model_forecast` documents written for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.time.min": { + "description": "The minimum runtime in milliseconds for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.time.max": { + "description": "The maximum runtime in milliseconds for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.time.avg": { + "description": "The average runtime in milliseconds for forecasts related to the anomaly detection job.", + "type": "string" + }, + "forecasts.time.total": { + "description": "The total runtime in milliseconds for forecasts related to the anomaly detection job.", + "type": "string" + }, + "node.id": { + "$ref": "#/components/schemas/_types:NodeId" + }, + "node.name": { + "description": "The name of the assigned node.", + "type": "string" + }, + "node.ephemeral_id": { + "$ref": "#/components/schemas/_types:NodeId" + }, + "node.address": { + "description": "The network address of the assigned node.", + "type": "string" + }, + "buckets.count": { + "description": "The number of bucket results produced by the job.", + "type": "string" + }, + "buckets.time.total": { + "description": "The sum of all bucket processing times, in milliseconds.", + "type": "string" + }, + "buckets.time.min": { + "description": "The minimum of all bucket processing times, in milliseconds.", + "type": "string" + }, + "buckets.time.max": { + "description": "The maximum of all bucket processing times, in milliseconds.", + "type": "string" + }, + "buckets.time.exp_avg": { + "description": "The exponential moving average of all bucket processing times, in milliseconds.", + "type": "string" + }, + "buckets.time.exp_avg_hour": { + "description": "The exponential moving average of bucket processing times calculated in a one hour time window, in milliseconds.", + "type": "string" + } + } + }, + "ml._types:JobState": { + "type": "string", + "enum": [ + "closing", + "closed", + "opened", + "failed", + "opening" + ] + }, + "_types:ByteSize": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/api-conventions.html#byte-units" + }, + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "ml._types:MemoryStatus": { + "type": "string", + "enum": [ + "ok", + "soft_limit", + "hard_limit" + ] + }, + "ml._types:CategorizationStatus": { + "type": "string", + "enum": [ + "ok", + "warn" + ] + }, + "_types:NodeId": { + "type": "string" + }, + "cat._types:CatTrainedModelsColumns": { + "oneOf": [ + { + "$ref": "#/components/schemas/cat._types:CatTrainedModelsColumn" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat._types:CatTrainedModelsColumn" + } + } + ] + }, + "cat._types:CatTrainedModelsColumn": { + "type": "string", + "enum": [ + "create_time", + "created_by", + "data_frame_analytics_id", + "description", + "heap_size", + "id", + "ingest.count", + "ingest.current", + "ingest.failed", + "ingest.pipelines", + "ingest.time", + "license", + "operations", + "version" + ] + }, + "cat.ml_trained_models:TrainedModelsRecord": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "created_by": { + "description": "Information about the creator of the model.", + "type": "string" + }, + "heap_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "operations": { + "description": "The estimated number of operations to use the model.\nThis number helps to measure the computational complexity of the model.", + "type": "string" + }, + "license": { + "description": "The license level of the model.", + "type": "string" + }, + "create_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "description": { + "description": "A description of the model.", + "type": "string" + }, + "ingest.pipelines": { + "description": "The number of pipelines that are referencing the model.", + "type": "string" + }, + "ingest.count": { + "description": "The total number of documents that are processed by the model.", + "type": "string" + }, + "ingest.time": { + "description": "The total time spent processing documents with thie model.", + "type": "string" + }, + "ingest.current": { + "description": "The total number of documents that are currently being handled by the model.", + "type": "string" + }, + "ingest.failed": { + "description": "The total number of failed ingest attempts with the model.", + "type": "string" + }, + "data_frame.id": { + "description": "The identifier for the data frame analytics job that created the model.\nOnly displayed if the job is still available.", + "type": "string" + }, + "data_frame.create_time": { + "description": "The time the data frame analytics job was created.", + "type": "string" + }, + "data_frame.source_index": { + "description": "The source index used to train in the data frame analysis.", + "type": "string" + }, + "data_frame.analysis": { + "description": "The analysis used by the data frame to build the model.", + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "cat._types:CatTransformColumns": { + "oneOf": [ + { + "$ref": "#/components/schemas/cat._types:CatTransformColumn" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/cat._types:CatTransformColumn" + } + } + ] + }, + "cat._types:CatTransformColumn": { + "type": "string", + "enum": [ + "changes_last_detection_time", + "checkpoint", + "checkpoint_duration_time_exp_avg", + "checkpoint_progress", + "create_time", + "delete_time", + "description", + "dest_index", + "documents_deleted", + "documents_indexed", + "docs_per_second", + "documents_processed", + "frequency", + "id", + "index_failure", + "index_time", + "index_total", + "indexed_documents_exp_avg", + "last_search_time", + "max_page_search_size", + "pages_processed", + "pipeline", + "processed_documents_exp_avg", + "processing_time", + "reason", + "search_failure", + "search_time", + "search_total", + "source_index", + "state", + "transform_type", + "trigger_count", + "version" + ] + }, + "cat.transforms:TransformsRecord": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "state": { + "description": "The status of the transform.\nReturned values include:\n`aborting`: The transform is aborting.\n`failed: The transform failed. For more information about the failure, check the `reason` field.\n`indexing`: The transform is actively processing data and creating new documents.\n`started`: The transform is running but not actively indexing data.\n`stopped`: The transform is stopped.\n`stopping`: The transform is stopping.", + "type": "string" + }, + "checkpoint": { + "description": "The sequence number for the checkpoint.", + "type": "string" + }, + "documents_processed": { + "description": "The number of documents that have been processed from the source index of the transform.", + "type": "string" + }, + "checkpoint_progress": { + "description": "The progress of the next checkpoint that is currently in progress.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "last_search_time": { + "description": "The timestamp of the last search in the source indices.\nThis field is shown only if the transform is running.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "changes_last_detection_time": { + "description": "The timestamp when changes were last detected in the source indices.", + "oneOf": [ + { + "type": "string" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "create_time": { + "description": "The time the transform was created.", + "type": "string" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "source_index": { + "description": "The source indices for the transform.", + "type": "string" + }, + "dest_index": { + "description": "The destination index for the transform.", + "type": "string" + }, + "pipeline": { + "description": "The unique identifier for the ingest pipeline.", + "type": "string" + }, + "description": { + "description": "The description of the transform.", + "type": "string" + }, + "transform_type": { + "description": "The type of transform: `batch` or `continuous`.", + "type": "string" + }, + "frequency": { + "description": "The interval between checks for changes in the source indices when the transform is running continuously.", + "type": "string" + }, + "max_page_search_size": { + "description": "The initial page size that is used for the composite aggregation for each checkpoint.", + "type": "string" + }, + "docs_per_second": { + "description": "The number of input documents per second.", + "type": "string" + }, + "reason": { + "description": "If a transform has a `failed` state, these details describe the reason for failure.", + "type": "string" + }, + "search_total": { + "description": "The total number of search operations on the source index for the transform.", + "type": "string" + }, + "search_failure": { + "description": "The total number of search failures.", + "type": "string" + }, + "search_time": { + "description": "The total amount of search time, in milliseconds.", + "type": "string" + }, + "index_total": { + "description": "The total number of index operations done by the transform.", + "type": "string" + }, + "index_failure": { + "description": "The total number of indexing failures.", + "type": "string" + }, + "index_time": { + "description": "The total time spent indexing documents, in milliseconds.", + "type": "string" + }, + "documents_indexed": { + "description": "The number of documents that have been indexed into the destination index for the transform.", + "type": "string" + }, + "delete_time": { + "description": "The total time spent deleting documents, in milliseconds.", + "type": "string" + }, + "documents_deleted": { + "description": "The number of documents deleted from the destination index due to the retention policy for the transform.", + "type": "string" + }, + "trigger_count": { + "description": "The number of times the transform has been triggered by the scheduler.\nFor example, the scheduler triggers the transform indexer to check for updates or ingest new data at an interval specified in the `frequency` property.", + "type": "string" + }, + "pages_processed": { + "description": "The number of search or bulk index operations processed.\nDocuments are processed in batches instead of individually.", + "type": "string" + }, + "processing_time": { + "description": "The total time spent processing results, in milliseconds.", + "type": "string" + }, + "checkpoint_duration_time_exp_avg": { + "description": "The exponential moving average of the duration of the checkpoint, in milliseconds.", + "type": "string" + }, + "indexed_documents_exp_avg": { + "description": "The exponential moving average of the number of new documents that have been indexed.", + "type": "string" + }, + "processed_documents_exp_avg": { + "description": "The exponential moving average of the number of documents that have been processed.", + "type": "string" + } + } + }, + "_types:ScrollIds": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:ScrollId" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ScrollId" + } + } + ] + }, + "cluster._types:ComponentTemplate": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "component_template": { + "$ref": "#/components/schemas/cluster._types:ComponentTemplateNode" + } + }, + "required": [ + "name", + "component_template" + ] + }, + "cluster._types:ComponentTemplateNode": { + "type": "object", + "properties": { + "template": { + "$ref": "#/components/schemas/cluster._types:ComponentTemplateSummary" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + }, + "required": [ + "template" + ] + }, + "cluster._types:ComponentTemplateSummary": { + "type": "object", + "properties": { + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "settings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "aliases": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:AliasDefinition" + } + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleWithRollover" + } + } + }, + "indices._types:IndexSettings": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "mode": { + "type": "string" + }, + "routing_path": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "soft_deletes": { + "$ref": "#/components/schemas/indices._types:SoftDeletes" + }, + "sort": { + "$ref": "#/components/schemas/indices._types:IndexSegmentSort" + }, + "number_of_shards": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "number_of_replicas": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "number_of_routing_shards": { + "type": "number" + }, + "check_on_startup": { + "$ref": "#/components/schemas/indices._types:IndexCheckOnStartup" + }, + "codec": { + "type": "string" + }, + "routing_partition_size": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + }, + "load_fixed_bitset_filters_eagerly": { + "type": "boolean" + }, + "hidden": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "auto_expand_replicas": { + "type": "string" + }, + "merge": { + "$ref": "#/components/schemas/indices._types:Merge" + }, + "search": { + "$ref": "#/components/schemas/indices._types:SettingsSearch" + }, + "refresh_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "max_result_window": { + "type": "number" + }, + "max_inner_result_window": { + "type": "number" + }, + "max_rescore_window": { + "type": "number" + }, + "max_docvalue_fields_search": { + "type": "number" + }, + "max_script_fields": { + "type": "number" + }, + "max_ngram_diff": { + "type": "number" + }, + "max_shingle_diff": { + "type": "number" + }, + "blocks": { + "$ref": "#/components/schemas/indices._types:IndexSettingBlocks" + }, + "max_refresh_listeners": { + "type": "number" + }, + "analyze": { + "$ref": "#/components/schemas/indices._types:SettingsAnalyze" + }, + "highlight": { + "$ref": "#/components/schemas/indices._types:SettingsHighlight" + }, + "max_terms_count": { + "type": "number" + }, + "max_regex_length": { + "type": "number" + }, + "routing": { + "$ref": "#/components/schemas/indices._types:IndexRouting" + }, + "gc_deletes": { + "$ref": "#/components/schemas/_types:Duration" + }, + "default_pipeline": { + "$ref": "#/components/schemas/_types:PipelineName" + }, + "final_pipeline": { + "$ref": "#/components/schemas/_types:PipelineName" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:IndexSettingsLifecycle" + }, + "provided_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "creation_date": { + "$ref": "#/components/schemas/_spec_utils:StringifiedEpochTimeUnitMillis" + }, + "creation_date_string": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "uuid": { + "$ref": "#/components/schemas/_types:Uuid" + }, + "version": { + "$ref": "#/components/schemas/indices._types:IndexVersioning" + }, + "verified_before_close": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "format": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "max_slices_per_scroll": { + "type": "number" + }, + "translog": { + "$ref": "#/components/schemas/indices._types:Translog" + }, + "query_string": { + "$ref": "#/components/schemas/indices._types:SettingsQueryString" + }, + "priority": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "top_metrics_max_size": { + "type": "number" + }, + "analysis": { + "$ref": "#/components/schemas/indices._types:IndexSettingsAnalysis" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "time_series": { + "$ref": "#/components/schemas/indices._types:IndexSettingsTimeSeries" + }, + "shards": { + "type": "number" + }, + "queries": { + "$ref": "#/components/schemas/indices._types:Queries" + }, + "similarity": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarity" + }, + "mapping": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettings" + }, + "indexing.slowlog": { + "$ref": "#/components/schemas/indices._types:IndexingSlowlogSettings" + }, + "indexing_pressure": { + "$ref": "#/components/schemas/indices._types:IndexingPressure" + }, + "store": { + "$ref": "#/components/schemas/indices._types:Storage" + } + } + }, + "indices._types:SoftDeletes": { + "type": "object", + "properties": { + "enabled": { + "description": "Indicates whether soft deletes are enabled on the index.", + "type": "boolean" + }, + "retention_lease": { + "$ref": "#/components/schemas/indices._types:RetentionLease" + } + } + }, + "indices._types:RetentionLease": { + "type": "object", + "properties": { + "period": { + "$ref": "#/components/schemas/_types:Duration" + } + }, + "required": [ + "period" + ] + }, + "indices._types:IndexSegmentSort": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Fields" + }, + "order": { + "oneOf": [ + { + "$ref": "#/components/schemas/indices._types:SegmentSortOrder" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:SegmentSortOrder" + } + } + ] + }, + "mode": { + "oneOf": [ + { + "$ref": "#/components/schemas/indices._types:SegmentSortMode" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:SegmentSortMode" + } + } + ] + }, + "missing": { + "oneOf": [ + { + "$ref": "#/components/schemas/indices._types:SegmentSortMissing" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:SegmentSortMissing" + } + } + ] + } + } + }, + "indices._types:SegmentSortOrder": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "indices._types:SegmentSortMode": { + "type": "string", + "enum": [ + "min", + "max" + ] + }, + "indices._types:SegmentSortMissing": { + "type": "string", + "enum": [ + "_last", + "_first" + ] + }, + "indices._types:IndexCheckOnStartup": { + "type": "string", + "enum": [ + "true", + "false", + "checksum" + ] + }, + "_spec_utils:Stringifiedinteger": { + "description": "Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior\nis used to capture this behavior while keeping the semantics of the field type.\n\nDepending on the target language, code generators can keep the union or remove it and leniently parse\nstrings to the target type.", + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "indices._types:Merge": { + "type": "object", + "properties": { + "scheduler": { + "$ref": "#/components/schemas/indices._types:MergeScheduler" + } + } + }, + "indices._types:MergeScheduler": { + "type": "object", + "properties": { + "max_thread_count": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + }, + "max_merge_count": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + } + } + }, + "indices._types:SettingsSearch": { + "type": "object", + "properties": { + "idle": { + "$ref": "#/components/schemas/indices._types:SearchIdle" + }, + "slowlog": { + "$ref": "#/components/schemas/indices._types:SlowlogSettings" + } + } + }, + "indices._types:SearchIdle": { + "type": "object", + "properties": { + "after": { + "$ref": "#/components/schemas/_types:Duration" + } + } + }, + "indices._types:SlowlogSettings": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "source": { + "type": "number" + }, + "reformat": { + "type": "boolean" + }, + "threshold": { + "$ref": "#/components/schemas/indices._types:SlowlogTresholds" + } + } + }, + "indices._types:SlowlogTresholds": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/indices._types:SlowlogTresholdLevels" + }, + "fetch": { + "$ref": "#/components/schemas/indices._types:SlowlogTresholdLevels" + } + } + }, + "indices._types:SlowlogTresholdLevels": { + "type": "object", + "properties": { + "warn": { + "$ref": "#/components/schemas/_types:Duration" + }, + "info": { + "$ref": "#/components/schemas/_types:Duration" + }, + "debug": { + "$ref": "#/components/schemas/_types:Duration" + }, + "trace": { + "$ref": "#/components/schemas/_types:Duration" + } + } + }, + "indices._types:IndexSettingBlocks": { + "type": "object", + "properties": { + "read_only": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "read_only_allow_delete": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "read": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "write": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "metadata": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + } + }, + "_spec_utils:Stringifiedboolean": { + "description": "Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior\nis used to capture this behavior while keeping the semantics of the field type.\n\nDepending on the target language, code generators can keep the union or remove it and leniently parse\nstrings to the target type.", + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "indices._types:SettingsAnalyze": { + "type": "object", + "properties": { + "max_token_count": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + } + } + }, + "indices._types:SettingsHighlight": { + "type": "object", + "properties": { + "max_analyzed_offset": { + "type": "number" + } + } + }, + "indices._types:IndexRouting": { + "type": "object", + "properties": { + "allocation": { + "$ref": "#/components/schemas/indices._types:IndexRoutingAllocation" + }, + "rebalance": { + "$ref": "#/components/schemas/indices._types:IndexRoutingRebalance" + } + } + }, + "indices._types:IndexRoutingAllocation": { + "type": "object", + "properties": { + "enable": { + "$ref": "#/components/schemas/indices._types:IndexRoutingAllocationOptions" + }, + "include": { + "$ref": "#/components/schemas/indices._types:IndexRoutingAllocationInclude" + }, + "initial_recovery": { + "$ref": "#/components/schemas/indices._types:IndexRoutingAllocationInitialRecovery" + }, + "disk": { + "$ref": "#/components/schemas/indices._types:IndexRoutingAllocationDisk" + } + } + }, + "indices._types:IndexRoutingAllocationOptions": { + "type": "string", + "enum": [ + "all", + "primaries", + "new_primaries", + "none" + ] + }, + "indices._types:IndexRoutingAllocationInclude": { + "type": "object", + "properties": { + "_tier_preference": { + "type": "string" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + } + } + }, + "indices._types:IndexRoutingAllocationInitialRecovery": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + } + } + }, + "indices._types:IndexRoutingAllocationDisk": { + "type": "object", + "properties": { + "threshold_enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ] + } + } + }, + "indices._types:IndexRoutingRebalance": { + "type": "object", + "properties": { + "enable": { + "$ref": "#/components/schemas/indices._types:IndexRoutingRebalanceOptions" + } + }, + "required": [ + "enable" + ] + }, + "indices._types:IndexRoutingRebalanceOptions": { + "type": "string", + "enum": [ + "all", + "primaries", + "replicas", + "none" + ] + }, + "_types:PipelineName": { + "type": "string" + }, + "indices._types:IndexSettingsLifecycle": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "indexing_complete": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "origination_date": { + "description": "If specified, this is the timestamp used to calculate the index age for its phase transitions. Use this setting\nif you create a new index that contains old data and want to use the original creation date to calculate the index\nage. Specified as a Unix epoch value in milliseconds.", + "type": "number" + }, + "parse_origination_date": { + "description": "Set to true to parse the origination date from the index name. This origination date is used to calculate the index age\nfor its phase transitions. The index name must match the pattern ^.*-{date_format}-\\\\d+, where the date_format is\nyyyy.MM.dd and the trailing digits are optional. An index that was rolled over would normally match the full format,\nfor example logs-2016.10.31-000002). If the index name doesn’t match the pattern, index creation fails.", + "type": "boolean" + }, + "step": { + "$ref": "#/components/schemas/indices._types:IndexSettingsLifecycleStep" + }, + "rollover_alias": { + "description": "The index alias to update when the index rolls over. Specify when using a policy that contains a rollover action.\nWhen the index rolls over, the alias is updated to reflect that the index is no longer the write index. For more\ninformation about rolling indices, see Rollover.", + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "indices._types:IndexSettingsLifecycleStep": { + "type": "object", + "properties": { + "wait_time_threshold": { + "$ref": "#/components/schemas/_types:Duration" + } + } + }, + "_spec_utils:StringifiedEpochTimeUnitMillis": { + "description": "Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior\nis used to capture this behavior while keeping the semantics of the field type.\n\nDepending on the target language, code generators can keep the union or remove it and leniently parse\nstrings to the target type.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + { + "type": "string" + } + ] + }, + "_types:Uuid": { + "type": "string" + }, + "indices._types:IndexVersioning": { + "type": "object", + "properties": { + "created": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "created_string": { + "type": "string" + } + } + }, + "indices._types:Translog": { + "type": "object", + "properties": { + "sync_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "durability": { + "$ref": "#/components/schemas/indices._types:TranslogDurability" + }, + "flush_threshold_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "retention": { + "$ref": "#/components/schemas/indices._types:TranslogRetention" + } + } + }, + "indices._types:TranslogDurability": { + "type": "string", + "enum": [ + "request", + "async" + ] + }, + "indices._types:TranslogRetention": { + "type": "object", + "properties": { + "size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "age": { + "$ref": "#/components/schemas/_types:Duration" + } + } + }, + "indices._types:SettingsQueryString": { + "type": "object", + "properties": { + "lenient": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "lenient" + ] + }, + "indices._types:IndexSettingsAnalysis": { + "type": "object", + "properties": { + "analyzer": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.analysis:Analyzer" + } + }, + "char_filter": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.analysis:CharFilter" + } + }, + "filter": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.analysis:TokenFilter" + } + }, + "normalizer": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.analysis:Normalizer" + } + }, + "tokenizer": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.analysis:Tokenizer" + } + } + } + }, + "_types.analysis:CharFilter": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.analysis:CharFilterDefinition" + } + ] + }, + "_types.analysis:CharFilterDefinition": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.analysis:HtmlStripCharFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:MappingCharFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PatternReplaceCharFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationCharFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiIterationMarkCharFilter" + } + ] + }, + "_types.analysis:HtmlStripCharFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "html_strip" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:CharFilterBase": { + "type": "object", + "properties": { + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + } + }, + "_types.analysis:MappingCharFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "mapping" + ] + }, + "mappings": { + "type": "array", + "items": { + "type": "string" + } + }, + "mappings_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:PatternReplaceCharFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pattern_replace" + ] + }, + "flags": { + "type": "string" + }, + "pattern": { + "type": "string" + }, + "replacement": { + "type": "string" + } + }, + "required": [ + "type", + "pattern" + ] + } + ] + }, + "_types.analysis:IcuNormalizationCharFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_normalizer" + ] + }, + "mode": { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationMode" + }, + "name": { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationType" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KuromojiIterationMarkCharFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji_iteration_mark" + ] + }, + "normalize_kana": { + "type": "boolean" + }, + "normalize_kanji": { + "type": "boolean" + } + }, + "required": [ + "type", + "normalize_kana", + "normalize_kanji" + ] + } + ] + }, + "_types.analysis:TokenFilter": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterDefinition" + } + ] + }, + "_types.analysis:TokenFilterDefinition": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.analysis:AsciiFoldingTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:CommonGramsTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:ConditionTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:DelimitedPayloadTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:EdgeNGramTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:ElisionTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:FingerprintTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:HunspellTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:HyphenationDecompounderTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KeepTypesTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KeepWordsTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KeywordMarkerTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KStemTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:LengthTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:LimitTokenCountTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:LowercaseTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:MultiplexerTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:NGramTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:NoriPartOfSpeechTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PatternCaptureTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PatternReplaceTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PorterStemTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PredicateTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:RemoveDuplicatesTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:ReverseTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:ShingleTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:SnowballTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:StemmerOverrideTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:StemmerTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:StopTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:SynonymGraphTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:SynonymTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:TrimTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:TruncateTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:UniqueTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:UppercaseTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:WordDelimiterGraphTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:WordDelimiterTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiStemmerTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiReadingFormTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiPartOfSpeechTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuCollationTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuFoldingTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuTransformTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:PhoneticTokenFilter" + }, + { + "$ref": "#/components/schemas/_types.analysis:DictionaryDecompounderTokenFilter" + } + ] + }, + "_types.analysis:AsciiFoldingTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "asciifolding" + ] + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:TokenFilterBase": { + "type": "object", + "properties": { + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + } + }, + "_types.analysis:CommonGramsTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "common_grams" + ] + }, + "common_words": { + "type": "array", + "items": { + "type": "string" + } + }, + "common_words_path": { + "type": "string" + }, + "ignore_case": { + "type": "boolean" + }, + "query_mode": { + "type": "boolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:ConditionTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "condition" + ] + }, + "filter": { + "type": "array", + "items": { + "type": "string" + } + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "type", + "filter", + "script" + ] + } + ] + }, + "_types.analysis:DelimitedPayloadTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "delimited_payload" + ] + }, + "delimiter": { + "type": "string" + }, + "encoding": { + "$ref": "#/components/schemas/_types.analysis:DelimitedPayloadEncoding" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:DelimitedPayloadEncoding": { + "type": "string", + "enum": [ + "int", + "float", + "identity" + ] + }, + "_types.analysis:EdgeNGramTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "edge_ngram" + ] + }, + "max_gram": { + "type": "number" + }, + "min_gram": { + "type": "number" + }, + "side": { + "$ref": "#/components/schemas/_types.analysis:EdgeNGramSide" + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:EdgeNGramSide": { + "type": "string", + "enum": [ + "front", + "back" + ] + }, + "_types.analysis:ElisionTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "elision" + ] + }, + "articles": { + "type": "array", + "items": { + "type": "string" + } + }, + "articles_path": { + "type": "string" + }, + "articles_case": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:FingerprintTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "fingerprint" + ] + }, + "max_output_size": { + "type": "number" + }, + "separator": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:HunspellTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "hunspell" + ] + }, + "dedup": { + "type": "boolean" + }, + "dictionary": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "longest_only": { + "type": "boolean" + } + }, + "required": [ + "type", + "locale" + ] + } + ] + }, + "_types.analysis:HyphenationDecompounderTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CompoundWordTokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "hyphenation_decompounder" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:CompoundWordTokenFilterBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "hyphenation_patterns_path": { + "type": "string" + }, + "max_subword_size": { + "type": "number" + }, + "min_subword_size": { + "type": "number" + }, + "min_word_size": { + "type": "number" + }, + "only_longest_match": { + "type": "boolean" + }, + "word_list": { + "type": "array", + "items": { + "type": "string" + } + }, + "word_list_path": { + "type": "string" + } + } + } + ] + }, + "_types.analysis:KeepTypesTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "keep_types" + ] + }, + "mode": { + "$ref": "#/components/schemas/_types.analysis:KeepTypesMode" + }, + "types": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KeepTypesMode": { + "type": "string", + "enum": [ + "include", + "exclude" + ] + }, + "_types.analysis:KeepWordsTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "keep" + ] + }, + "keep_words": { + "type": "array", + "items": { + "type": "string" + } + }, + "keep_words_case": { + "type": "boolean" + }, + "keep_words_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KeywordMarkerTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "keyword_marker" + ] + }, + "ignore_case": { + "type": "boolean" + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + } + }, + "keywords_path": { + "type": "string" + }, + "keywords_pattern": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KStemTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kstem" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:LengthTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "length" + ] + }, + "max": { + "type": "number" + }, + "min": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:LimitTokenCountTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "limit" + ] + }, + "consume_all_tokens": { + "type": "boolean" + }, + "max_token_count": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:LowercaseTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "lowercase" + ] + }, + "language": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:MultiplexerTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multiplexer" + ] + }, + "filters": { + "type": "array", + "items": { + "type": "string" + } + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type", + "filters" + ] + } + ] + }, + "_types.analysis:NGramTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ngram" + ] + }, + "max_gram": { + "type": "number" + }, + "min_gram": { + "type": "number" + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:NoriPartOfSpeechTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "nori_part_of_speech" + ] + }, + "stoptags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:PatternCaptureTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pattern_capture" + ] + }, + "patterns": { + "type": "array", + "items": { + "type": "string" + } + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + } + }, + "required": [ + "type", + "patterns" + ] + } + ] + }, + "_types.analysis:PatternReplaceTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pattern_replace" + ] + }, + "all": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "pattern": { + "type": "string" + }, + "replacement": { + "type": "string" + } + }, + "required": [ + "type", + "pattern" + ] + } + ] + }, + "_types.analysis:PorterStemTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "porter_stem" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:PredicateTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "predicate_token_filter" + ] + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + } + }, + "required": [ + "type", + "script" + ] + } + ] + }, + "_types.analysis:RemoveDuplicatesTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "remove_duplicates" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:ReverseTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "reverse" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:ShingleTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "shingle" + ] + }, + "filler_token": { + "type": "string" + }, + "max_shingle_size": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "min_shingle_size": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + }, + "output_unigrams": { + "type": "boolean" + }, + "output_unigrams_if_no_shingles": { + "type": "boolean" + }, + "token_separator": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:SnowballTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "snowball" + ] + }, + "language": { + "$ref": "#/components/schemas/_types.analysis:SnowballLanguage" + } + }, + "required": [ + "type", + "language" + ] + } + ] + }, + "_types.analysis:StemmerOverrideTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stemmer_override" + ] + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + }, + "rules_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:StemmerTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stemmer" + ] + }, + "language": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:StopTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stop" + ] + }, + "ignore_case": { + "type": "boolean" + }, + "remove_trailing": { + "type": "boolean" + }, + "stopwords": { + "$ref": "#/components/schemas/_types.analysis:StopWords" + }, + "stopwords_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:SynonymGraphTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "synonym_graph" + ] + }, + "expand": { + "type": "boolean" + }, + "format": { + "$ref": "#/components/schemas/_types.analysis:SynonymFormat" + }, + "lenient": { + "type": "boolean" + }, + "synonyms": { + "type": "array", + "items": { + "type": "string" + } + }, + "synonyms_path": { + "type": "string" + }, + "tokenizer": { + "type": "string" + }, + "updateable": { + "type": "boolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:SynonymFormat": { + "type": "string", + "enum": [ + "solr", + "wordnet" + ] + }, + "_types.analysis:SynonymTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "synonym" + ] + }, + "expand": { + "type": "boolean" + }, + "format": { + "$ref": "#/components/schemas/_types.analysis:SynonymFormat" + }, + "lenient": { + "type": "boolean" + }, + "synonyms": { + "type": "array", + "items": { + "type": "string" + } + }, + "synonyms_path": { + "type": "string" + }, + "tokenizer": { + "type": "string" + }, + "updateable": { + "type": "boolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:TrimTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "trim" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:TruncateTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "truncate" + ] + }, + "length": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:UniqueTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "unique" + ] + }, + "only_on_same_position": { + "type": "boolean" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:UppercaseTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "uppercase" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:WordDelimiterGraphTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "word_delimiter_graph" + ] + }, + "adjust_offsets": { + "type": "boolean" + }, + "catenate_all": { + "type": "boolean" + }, + "catenate_numbers": { + "type": "boolean" + }, + "catenate_words": { + "type": "boolean" + }, + "generate_number_parts": { + "type": "boolean" + }, + "generate_word_parts": { + "type": "boolean" + }, + "ignore_keywords": { + "type": "boolean" + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "protected_words": { + "type": "array", + "items": { + "type": "string" + } + }, + "protected_words_path": { + "type": "string" + }, + "split_on_case_change": { + "type": "boolean" + }, + "split_on_numerics": { + "type": "boolean" + }, + "stem_english_possessive": { + "type": "boolean" + }, + "type_table": { + "type": "array", + "items": { + "type": "string" + } + }, + "type_table_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:WordDelimiterTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "word_delimiter" + ] + }, + "catenate_all": { + "type": "boolean" + }, + "catenate_numbers": { + "type": "boolean" + }, + "catenate_words": { + "type": "boolean" + }, + "generate_number_parts": { + "type": "boolean" + }, + "generate_word_parts": { + "type": "boolean" + }, + "preserve_original": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "protected_words": { + "type": "array", + "items": { + "type": "string" + } + }, + "protected_words_path": { + "type": "string" + }, + "split_on_case_change": { + "type": "boolean" + }, + "split_on_numerics": { + "type": "boolean" + }, + "stem_english_possessive": { + "type": "boolean" + }, + "type_table": { + "type": "array", + "items": { + "type": "string" + } + }, + "type_table_path": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KuromojiStemmerTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji_stemmer" + ] + }, + "minimum_length": { + "type": "number" + } + }, + "required": [ + "type", + "minimum_length" + ] + } + ] + }, + "_types.analysis:KuromojiReadingFormTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji_readingform" + ] + }, + "use_romaji": { + "type": "boolean" + } + }, + "required": [ + "type", + "use_romaji" + ] + } + ] + }, + "_types.analysis:KuromojiPartOfSpeechTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji_part_of_speech" + ] + }, + "stoptags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "stoptags" + ] + } + ] + }, + "_types.analysis:IcuTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_tokenizer" + ] + }, + "rule_files": { + "type": "string" + } + }, + "required": [ + "type", + "rule_files" + ] + } + ] + }, + "_types.analysis:TokenizerBase": { + "type": "object", + "properties": { + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + } + }, + "_types.analysis:IcuCollationTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_collation" + ] + }, + "alternate": { + "$ref": "#/components/schemas/_types.analysis:IcuCollationAlternate" + }, + "caseFirst": { + "$ref": "#/components/schemas/_types.analysis:IcuCollationCaseFirst" + }, + "caseLevel": { + "type": "boolean" + }, + "country": { + "type": "string" + }, + "decomposition": { + "$ref": "#/components/schemas/_types.analysis:IcuCollationDecomposition" + }, + "hiraganaQuaternaryMode": { + "type": "boolean" + }, + "language": { + "type": "string" + }, + "numeric": { + "type": "boolean" + }, + "rules": { + "type": "string" + }, + "strength": { + "$ref": "#/components/schemas/_types.analysis:IcuCollationStrength" + }, + "variableTop": { + "type": "string" + }, + "variant": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:IcuCollationAlternate": { + "type": "string", + "enum": [ + "shifted", + "non-ignorable" + ] + }, + "_types.analysis:IcuCollationCaseFirst": { + "type": "string", + "enum": [ + "lower", + "upper" + ] + }, + "_types.analysis:IcuCollationDecomposition": { + "type": "string", + "enum": [ + "no", + "identical" + ] + }, + "_types.analysis:IcuCollationStrength": { + "type": "string", + "enum": [ + "primary", + "secondary", + "tertiary", + "quaternary", + "identical" + ] + }, + "_types.analysis:IcuFoldingTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_folding" + ] + }, + "unicode_set_filter": { + "type": "string" + } + }, + "required": [ + "type", + "unicode_set_filter" + ] + } + ] + }, + "_types.analysis:IcuNormalizationTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_normalizer" + ] + }, + "name": { + "$ref": "#/components/schemas/_types.analysis:IcuNormalizationType" + } + }, + "required": [ + "type", + "name" + ] + } + ] + }, + "_types.analysis:IcuTransformTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "icu_transform" + ] + }, + "dir": { + "$ref": "#/components/schemas/_types.analysis:IcuTransformDirection" + }, + "id": { + "type": "string" + } + }, + "required": [ + "type", + "id" + ] + } + ] + }, + "_types.analysis:IcuTransformDirection": { + "type": "string", + "enum": [ + "forward", + "reverse" + ] + }, + "_types.analysis:PhoneticTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "phonetic" + ] + }, + "encoder": { + "$ref": "#/components/schemas/_types.analysis:PhoneticEncoder" + }, + "languageset": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:PhoneticLanguage" + } + }, + "max_code_len": { + "type": "number" + }, + "name_type": { + "$ref": "#/components/schemas/_types.analysis:PhoneticNameType" + }, + "replace": { + "type": "boolean" + }, + "rule_type": { + "$ref": "#/components/schemas/_types.analysis:PhoneticRuleType" + } + }, + "required": [ + "type", + "encoder", + "languageset", + "name_type", + "rule_type" + ] + } + ] + }, + "_types.analysis:PhoneticEncoder": { + "type": "string", + "enum": [ + "metaphone", + "double_metaphone", + "soundex", + "refined_soundex", + "caverphone1", + "caverphone2", + "cologne", + "nysiis", + "koelnerphonetik", + "haasephonetik", + "beider_morse", + "daitch_mokotoff" + ] + }, + "_types.analysis:PhoneticLanguage": { + "type": "string", + "enum": [ + "any", + "common", + "cyrillic", + "english", + "french", + "german", + "hebrew", + "hungarian", + "polish", + "romanian", + "russian", + "spanish" + ] + }, + "_types.analysis:PhoneticNameType": { + "type": "string", + "enum": [ + "generic", + "ashkenazi", + "sephardic" + ] + }, + "_types.analysis:PhoneticRuleType": { + "type": "string", + "enum": [ + "approx", + "exact" + ] + }, + "_types.analysis:DictionaryDecompounderTokenFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CompoundWordTokenFilterBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "dictionary_decompounder" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:Normalizer": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-normalizers.html" + }, + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.analysis:LowercaseNormalizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:CustomNormalizer" + } + ] + }, + "_types.analysis:LowercaseNormalizer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "lowercase" + ] + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:CustomNormalizer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + }, + "char_filter": { + "type": "array", + "items": { + "type": "string" + } + }, + "filter": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + }, + "_types.analysis:Tokenizer": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.analysis:TokenizerDefinition" + } + ] + }, + "_types.analysis:TokenizerDefinition": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.analysis:CharGroupTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:EdgeNGramTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:KeywordTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:LetterTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:LowercaseTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:NGramTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:NoriTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:PathHierarchyTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:StandardTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:UaxEmailUrlTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:WhitespaceTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:KuromojiTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:PatternTokenizer" + }, + { + "$ref": "#/components/schemas/_types.analysis:IcuTokenizer" + } + ] + }, + "_types.analysis:CharGroupTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "char_group" + ] + }, + "tokenize_on_chars": { + "type": "array", + "items": { + "type": "string" + } + }, + "max_token_length": { + "type": "number" + } + }, + "required": [ + "type", + "tokenize_on_chars" + ] + } + ] + }, + "_types.analysis:EdgeNGramTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "edge_ngram" + ] + }, + "custom_token_chars": { + "type": "string" + }, + "max_gram": { + "type": "number" + }, + "min_gram": { + "type": "number" + }, + "token_chars": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:TokenChar" + } + } + }, + "required": [ + "type", + "max_gram", + "min_gram", + "token_chars" + ] + } + ] + }, + "_types.analysis:TokenChar": { + "type": "string", + "enum": [ + "letter", + "digit", + "whitespace", + "punctuation", + "symbol", + "custom" + ] + }, + "_types.analysis:KeywordTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "keyword" + ] + }, + "buffer_size": { + "type": "number" + } + }, + "required": [ + "type", + "buffer_size" + ] + } + ] + }, + "_types.analysis:LetterTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "letter" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:LowercaseTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "lowercase" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:NGramTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ngram" + ] + }, + "custom_token_chars": { + "type": "string" + }, + "max_gram": { + "type": "number" + }, + "min_gram": { + "type": "number" + }, + "token_chars": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:TokenChar" + } + } + }, + "required": [ + "type", + "max_gram", + "min_gram", + "token_chars" + ] + } + ] + }, + "_types.analysis:NoriTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "nori_tokenizer" + ] + }, + "decompound_mode": { + "$ref": "#/components/schemas/_types.analysis:NoriDecompoundMode" + }, + "discard_punctuation": { + "type": "boolean" + }, + "user_dictionary": { + "type": "string" + }, + "user_dictionary_rules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:PathHierarchyTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "path_hierarchy" + ] + }, + "buffer_size": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + }, + "delimiter": { + "type": "string" + }, + "replacement": { + "type": "string" + }, + "reverse": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedboolean" + }, + "skip": { + "$ref": "#/components/schemas/_spec_utils:Stringifiedinteger" + } + }, + "required": [ + "type", + "buffer_size", + "delimiter", + "replacement", + "reverse", + "skip" + ] + } + ] + }, + "_types.analysis:StandardTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "standard" + ] + }, + "max_token_length": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:UaxEmailUrlTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "uax_url_email" + ] + }, + "max_token_length": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:WhitespaceTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "whitespace" + ] + }, + "max_token_length": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.analysis:KuromojiTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "kuromoji_tokenizer" + ] + }, + "discard_punctuation": { + "type": "boolean" + }, + "mode": { + "$ref": "#/components/schemas/_types.analysis:KuromojiTokenizationMode" + }, + "nbest_cost": { + "type": "number" + }, + "nbest_examples": { + "type": "string" + }, + "user_dictionary": { + "type": "string" + }, + "user_dictionary_rules": { + "type": "array", + "items": { + "type": "string" + } + }, + "discard_compound_token": { + "type": "boolean" + } + }, + "required": [ + "type", + "mode" + ] + } + ] + }, + "_types.analysis:PatternTokenizer": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.analysis:TokenizerBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "pattern" + ] + }, + "flags": { + "type": "string" + }, + "group": { + "type": "number" + }, + "pattern": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "indices._types:IndexSettingsTimeSeries": { + "type": "object", + "properties": { + "end_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "start_time": { + "$ref": "#/components/schemas/_types:DateTime" + } + } + }, + "indices._types:Queries": { + "type": "object", + "properties": { + "cache": { + "$ref": "#/components/schemas/indices._types:CacheQueries" + } + } + }, + "indices._types:CacheQueries": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "indices._types:SettingsSimilarity": { + "type": "object", + "properties": { + "bm25": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityBm25" + }, + "dfi": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityDfi" + }, + "dfr": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityDfr" + }, + "ib": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityIb" + }, + "lmd": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityLmd" + }, + "lmj": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityLmj" + }, + "scripted_tfidf": { + "$ref": "#/components/schemas/indices._types:SettingsSimilarityScriptedTfidf" + } + } + }, + "indices._types:SettingsSimilarityBm25": { + "type": "object", + "properties": { + "b": { + "type": "number" + }, + "discount_overlaps": { + "type": "boolean" + }, + "k1": { + "type": "number" + }, + "type": { + "type": "string", + "enum": [ + "BM25" + ] + } + }, + "required": [ + "b", + "discount_overlaps", + "k1", + "type" + ] + }, + "indices._types:SettingsSimilarityDfi": { + "type": "object", + "properties": { + "independence_measure": { + "$ref": "#/components/schemas/_types:DFIIndependenceMeasure" + }, + "type": { + "type": "string", + "enum": [ + "DFI" + ] + } + }, + "required": [ + "independence_measure", + "type" + ] + }, + "_types:DFIIndependenceMeasure": { + "type": "string", + "enum": [ + "standardized", + "saturated", + "chisquared" + ] + }, + "indices._types:SettingsSimilarityDfr": { + "type": "object", + "properties": { + "after_effect": { + "$ref": "#/components/schemas/_types:DFRAfterEffect" + }, + "basic_model": { + "$ref": "#/components/schemas/_types:DFRBasicModel" + }, + "normalization": { + "$ref": "#/components/schemas/_types:Normalization" + }, + "type": { + "type": "string", + "enum": [ + "DFR" + ] + } + }, + "required": [ + "after_effect", + "basic_model", + "normalization", + "type" + ] + }, + "_types:DFRAfterEffect": { + "type": "string", + "enum": [ + "no", + "b", + "l" + ] + }, + "_types:DFRBasicModel": { + "type": "string", + "enum": [ + "be", + "d", + "g", + "if", + "in", + "ine", + "p" + ] + }, + "_types:Normalization": { + "type": "string", + "enum": [ + "no", + "h1", + "h2", + "h3", + "z" + ] + }, + "indices._types:SettingsSimilarityIb": { + "type": "object", + "properties": { + "distribution": { + "$ref": "#/components/schemas/_types:IBDistribution" + }, + "lambda": { + "$ref": "#/components/schemas/_types:IBLambda" + }, + "normalization": { + "$ref": "#/components/schemas/_types:Normalization" + }, + "type": { + "type": "string", + "enum": [ + "IB" + ] + } + }, + "required": [ + "distribution", + "lambda", + "normalization", + "type" + ] + }, + "_types:IBDistribution": { + "type": "string", + "enum": [ + "ll", + "spl" + ] + }, + "_types:IBLambda": { + "type": "string", + "enum": [ + "df", + "ttf" + ] + }, + "indices._types:SettingsSimilarityLmd": { + "type": "object", + "properties": { + "mu": { + "type": "number" + }, + "type": { + "type": "string", + "enum": [ + "LMDirichlet" + ] + } + }, + "required": [ + "mu", + "type" + ] + }, + "indices._types:SettingsSimilarityLmj": { + "type": "object", + "properties": { + "lambda": { + "type": "number" + }, + "type": { + "type": "string", + "enum": [ + "LMJelinekMercer" + ] + } + }, + "required": [ + "lambda", + "type" + ] + }, + "indices._types:SettingsSimilarityScriptedTfidf": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "type": { + "type": "string", + "enum": [ + "scripted" + ] + } + }, + "required": [ + "script", + "type" + ] + }, + "indices._types:MappingLimitSettings": { + "type": "object", + "properties": { + "coerce": { + "type": "boolean" + }, + "total_fields": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsTotalFields" + }, + "depth": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsDepth" + }, + "nested_fields": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsNestedFields" + }, + "nested_objects": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsNestedObjects" + }, + "field_name_length": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsFieldNameLength" + }, + "dimension_fields": { + "$ref": "#/components/schemas/indices._types:MappingLimitSettingsDimensionFields" + }, + "ignore_malformed": { + "type": "boolean" + } + } + }, + "indices._types:MappingLimitSettingsTotalFields": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum number of fields in an index. Field and object mappings, as well as field aliases count towards this limit.\nThe limit is in place to prevent mappings and searches from becoming too large. Higher values can lead to performance\ndegradations and memory issues, especially in clusters with a high load or few resources.", + "type": "number" + } + } + }, + "indices._types:MappingLimitSettingsDepth": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum depth for a field, which is measured as the number of inner objects. For instance, if all fields are defined\nat the root object level, then the depth is 1. If there is one object mapping, then the depth is 2, etc.", + "type": "number" + } + } + }, + "indices._types:MappingLimitSettingsNestedFields": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum number of distinct nested mappings in an index. The nested type should only be used in special cases, when\narrays of objects need to be queried independently of each other. To safeguard against poorly designed mappings, this\nsetting limits the number of unique nested types per index.", + "type": "number" + } + } + }, + "indices._types:MappingLimitSettingsNestedObjects": { + "type": "object", + "properties": { + "limit": { + "description": "The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps\nto prevent out of memory errors when a document contains too many nested objects.", + "type": "number" + } + } + }, + "indices._types:MappingLimitSettingsFieldNameLength": { + "type": "object", + "properties": { + "limit": { + "description": "Setting for the maximum length of a field name. This setting isn’t really something that addresses mappings explosion but\nmight still be useful if you want to limit the field length. It usually shouldn’t be necessary to set this setting. The\ndefault is okay unless a user starts to add a huge number of fields with really long names. Default is `Long.MAX_VALUE` (no limit).", + "type": "number" + } + } + }, + "indices._types:MappingLimitSettingsDimensionFields": { + "type": "object", + "properties": { + "limit": { + "description": "[preview] This functionality is in technical preview and may be changed or removed in a future release. Elastic will\napply best effort to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.", + "type": "number" + } + } + }, + "indices._types:IndexingSlowlogSettings": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "source": { + "type": "number" + }, + "reformat": { + "type": "boolean" + }, + "threshold": { + "$ref": "#/components/schemas/indices._types:IndexingSlowlogTresholds" + } + } + }, + "indices._types:IndexingSlowlogTresholds": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/indices._types:SlowlogTresholdLevels" + } + } + }, + "indices._types:IndexingPressure": { + "type": "object", + "properties": { + "memory": { + "$ref": "#/components/schemas/indices._types:IndexingPressureMemory" + } + }, + "required": [ + "memory" + ] + }, + "indices._types:IndexingPressureMemory": { + "type": "object", + "properties": { + "limit": { + "description": "Number of outstanding bytes that may be consumed by indexing requests. When this limit is reached or exceeded,\nthe node will reject new coordinating and primary operations. When replica operations consume 1.5x this limit,\nthe node will reject new replica operations. Defaults to 10% of the heap.", + "type": "number" + } + } + }, + "indices._types:Storage": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/indices._types:StorageType" + }, + "allow_mmap": { + "description": "You can restrict the use of the mmapfs and the related hybridfs store type via the setting node.store.allow_mmap.\nThis is a boolean setting indicating whether or not memory-mapping is allowed. The default is to allow it. This\nsetting is useful, for example, if you are in an environment where you can not control the ability to create a lot\nof memory maps so you need disable the ability to use memory-mapping.", + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "indices._types:StorageType": { + "type": "string", + "enum": [ + "fs", + "niofs", + "mmapfs", + "hybridfs" + ] + }, + "_types.mapping:TypeMapping": { + "type": "object", + "properties": { + "all_field": { + "$ref": "#/components/schemas/_types.mapping:AllField" + }, + "date_detection": { + "type": "boolean" + }, + "dynamic": { + "$ref": "#/components/schemas/_types.mapping:DynamicMapping" + }, + "dynamic_date_formats": { + "type": "array", + "items": { + "type": "string" + } + }, + "dynamic_templates": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:DynamicTemplate" + } + } + }, + "_field_names": { + "$ref": "#/components/schemas/_types.mapping:FieldNamesField" + }, + "index_field": { + "$ref": "#/components/schemas/_types.mapping:IndexField" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "numeric_detection": { + "type": "boolean" + }, + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:Property" + } + }, + "_routing": { + "$ref": "#/components/schemas/_types.mapping:RoutingField" + }, + "_size": { + "$ref": "#/components/schemas/_types.mapping:SizeField" + }, + "_source": { + "$ref": "#/components/schemas/_types.mapping:SourceField" + }, + "runtime": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:RuntimeField" + } + }, + "enabled": { + "type": "boolean" + }, + "_data_stream_timestamp": { + "$ref": "#/components/schemas/_types.mapping:DataStreamTimestamp" + } + } + }, + "_types.mapping:AllField": { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "omit_norms": { + "type": "boolean" + }, + "search_analyzer": { + "type": "string" + }, + "similarity": { + "type": "string" + }, + "store": { + "type": "boolean" + }, + "store_term_vector_offsets": { + "type": "boolean" + }, + "store_term_vector_payloads": { + "type": "boolean" + }, + "store_term_vector_positions": { + "type": "boolean" + }, + "store_term_vectors": { + "type": "boolean" + } + }, + "required": [ + "analyzer", + "enabled", + "omit_norms", + "search_analyzer", + "similarity", + "store", + "store_term_vector_offsets", + "store_term_vector_payloads", + "store_term_vector_positions", + "store_term_vectors" + ] + }, + "_types.mapping:DynamicMapping": { + "type": "string", + "enum": [ + "strict", + "runtime", + "true", + "false" + ] + }, + "_types.mapping:DynamicTemplate": { + "type": "object", + "properties": { + "mapping": { + "$ref": "#/components/schemas/_types.mapping:Property" + }, + "match": { + "type": "string" + }, + "match_mapping_type": { + "type": "string" + }, + "match_pattern": { + "$ref": "#/components/schemas/_types.mapping:MatchType" + }, + "path_match": { + "type": "string" + }, + "path_unmatch": { + "type": "string" + }, + "unmatch": { + "type": "string" + } + } + }, + "_types.mapping:Property": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/_types.mapping:BinaryProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:BooleanProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DynamicProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:JoinProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:KeywordProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:MatchOnlyTextProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:PercolatorProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:RankFeatureProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:RankFeaturesProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:SearchAsYouTypeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:TextProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:VersionProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:WildcardProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DateNanosProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DateProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:AggregateMetricDoubleProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DenseVectorProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:FlattenedProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:NestedProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ObjectProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:CompletionProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ConstantKeywordProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:FieldAliasProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:HistogramProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:IpProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:Murmur3HashProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:TokenCountProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:GeoPointProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:GeoShapeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:PointProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ShapeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ByteNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DoubleNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:FloatNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:HalfFloatNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:IntegerNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:LongNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ScaledFloatNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:ShortNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:UnsignedLongNumberProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DateRangeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:DoubleRangeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:FloatRangeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:IntegerRangeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:IpRangeProperty" + }, + { + "$ref": "#/components/schemas/_types.mapping:LongRangeProperty" + } + ] + }, + "_types.mapping:BinaryProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "binary" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:DocValuesPropertyBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:CorePropertyBase" + }, + { + "type": "object", + "properties": { + "doc_values": { + "type": "boolean" + } + } + } + ] + }, + "_types.mapping:CorePropertyBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "copy_to": { + "$ref": "#/components/schemas/_types:Fields" + }, + "similarity": { + "type": "string" + }, + "store": { + "type": "boolean" + } + } + } + ] + }, + "_types.mapping:PropertyBase": { + "type": "object", + "properties": { + "meta": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-meta-field.html" + }, + "description": "Metadata about the field.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:Property" + } + }, + "ignore_above": { + "type": "number" + }, + "dynamic": { + "$ref": "#/components/schemas/_types.mapping:DynamicMapping" + }, + "fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:Property" + } + } + } + }, + "_types.mapping:BooleanProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "fielddata": { + "$ref": "#/components/schemas/indices._types:NumericFielddata" + }, + "index": { + "type": "boolean" + }, + "null_value": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "boolean" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "indices._types:NumericFielddata": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/indices._types:NumericFielddataFormat" + } + }, + "required": [ + "format" + ] + }, + "indices._types:NumericFielddataFormat": { + "type": "string", + "enum": [ + "array", + "disabled" + ] + }, + "_types.mapping:DynamicProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "{dynamic_property}" + ] + }, + "enabled": { + "type": "boolean" + }, + "null_value": { + "$ref": "#/components/schemas/_types:FieldValue" + }, + "boost": { + "type": "number" + }, + "coerce": { + "type": "boolean" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "on_script_error": { + "$ref": "#/components/schemas/_types.mapping:OnScriptError" + }, + "ignore_malformed": { + "type": "boolean" + }, + "time_series_metric": { + "$ref": "#/components/schemas/_types.mapping:TimeSeriesMetricType" + }, + "analyzer": { + "type": "string" + }, + "eager_global_ordinals": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:IndexOptions" + }, + "index_phrases": { + "type": "boolean" + }, + "index_prefixes": { + "$ref": "#/components/schemas/_types.mapping:TextIndexPrefixes" + }, + "norms": { + "type": "boolean" + }, + "position_increment_gap": { + "type": "number" + }, + "search_analyzer": { + "type": "string" + }, + "search_quote_analyzer": { + "type": "string" + }, + "term_vector": { + "$ref": "#/components/schemas/_types.mapping:TermVectorOption" + }, + "format": { + "type": "string" + }, + "precision_step": { + "type": "number" + }, + "locale": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:OnScriptError": { + "type": "string", + "enum": [ + "fail", + "continue" + ] + }, + "_types.mapping:TimeSeriesMetricType": { + "type": "string", + "enum": [ + "gauge", + "counter", + "summary", + "histogram", + "position" + ] + }, + "_types.mapping:IndexOptions": { + "type": "string", + "enum": [ + "docs", + "freqs", + "positions", + "offsets" + ] + }, + "_types.mapping:TextIndexPrefixes": { + "type": "object", + "properties": { + "max_chars": { + "type": "number" + }, + "min_chars": { + "type": "number" + } + }, + "required": [ + "max_chars", + "min_chars" + ] + }, + "_types.mapping:TermVectorOption": { + "type": "string", + "enum": [ + "no", + "yes", + "with_offsets", + "with_positions", + "with_positions_offsets", + "with_positions_offsets_payloads", + "with_positions_payloads" + ] + }, + "_types.mapping:JoinProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "relations": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:RelationName" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:RelationName" + } + } + ] + } + }, + "eager_global_ordinals": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "join" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:KeywordProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "eager_global_ordinals": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:IndexOptions" + }, + "normalizer": { + "type": "string" + }, + "norms": { + "type": "boolean" + }, + "null_value": { + "type": "string" + }, + "split_queries_on_whitespace": { + "type": "boolean" + }, + "time_series_dimension": { + "description": "For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.", + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "keyword" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:MatchOnlyTextProperty": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "match_only_text" + ] + }, + "fields": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-fields.html" + }, + "description": "Multi-fields allow the same string value to be indexed in multiple ways for different purposes, such as one\nfield for search and a multi-field for sorting and aggregations, or the same string value analyzed by different analyzers.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.mapping:Property" + } + }, + "meta": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-meta-field.html" + }, + "description": "Metadata about the field.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "copy_to": { + "$ref": "#/components/schemas/_types:Fields" + } + }, + "required": [ + "type" + ] + }, + "_types.mapping:PercolatorProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "percolator" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:RankFeatureProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "positive_score_impact": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "rank_feature" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:RankFeaturesProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "rank_features" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:SearchAsYouTypeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:CorePropertyBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:IndexOptions" + }, + "max_shingle_size": { + "type": "number" + }, + "norms": { + "type": "boolean" + }, + "search_analyzer": { + "type": "string" + }, + "search_quote_analyzer": { + "type": "string" + }, + "term_vector": { + "$ref": "#/components/schemas/_types.mapping:TermVectorOption" + }, + "type": { + "type": "string", + "enum": [ + "search_as_you_type" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:TextProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:CorePropertyBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "boost": { + "type": "number" + }, + "eager_global_ordinals": { + "type": "boolean" + }, + "fielddata": { + "type": "boolean" + }, + "fielddata_frequency_filter": { + "$ref": "#/components/schemas/indices._types:FielddataFrequencyFilter" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:IndexOptions" + }, + "index_phrases": { + "type": "boolean" + }, + "index_prefixes": { + "$ref": "#/components/schemas/_types.mapping:TextIndexPrefixes" + }, + "norms": { + "type": "boolean" + }, + "position_increment_gap": { + "type": "number" + }, + "search_analyzer": { + "type": "string" + }, + "search_quote_analyzer": { + "type": "string" + }, + "term_vector": { + "$ref": "#/components/schemas/_types.mapping:TermVectorOption" + }, + "type": { + "type": "string", + "enum": [ + "text" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "indices._types:FielddataFrequencyFilter": { + "type": "object", + "properties": { + "max": { + "type": "number" + }, + "min": { + "type": "number" + }, + "min_segment_size": { + "type": "number" + } + }, + "required": [ + "max", + "min", + "min_segment_size" + ] + }, + "_types.mapping:VersionProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "version" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:WildcardProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "wildcard" + ] + }, + "null_value": { + "type": "string" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:DateNanosProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "format": { + "type": "string" + }, + "ignore_malformed": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "null_value": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "precision_step": { + "type": "number" + }, + "type": { + "type": "string", + "enum": [ + "date_nanos" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:DateProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "fielddata": { + "$ref": "#/components/schemas/indices._types:NumericFielddata" + }, + "format": { + "type": "string" + }, + "ignore_malformed": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "null_value": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "precision_step": { + "type": "number" + }, + "locale": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "date" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:AggregateMetricDoubleProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "aggregate_metric_double" + ] + }, + "default_metric": { + "type": "string" + }, + "metrics": { + "type": "array", + "items": { + "type": "string" + } + }, + "time_series_metric": { + "$ref": "#/components/schemas/_types.mapping:TimeSeriesMetricType" + } + }, + "required": [ + "type", + "default_metric", + "metrics" + ] + } + ] + }, + "_types.mapping:DenseVectorProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "dense_vector" + ] + }, + "dims": { + "type": "number" + }, + "similarity": { + "type": "string" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:DenseVectorIndexOptions" + } + }, + "required": [ + "type", + "dims" + ] + } + ] + }, + "_types.mapping:DenseVectorIndexOptions": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "m": { + "type": "number" + }, + "ef_construction": { + "type": "number" + } + }, + "required": [ + "type", + "m", + "ef_construction" + ] + }, + "_types.mapping:FlattenedProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "depth_limit": { + "type": "number" + }, + "doc_values": { + "type": "boolean" + }, + "eager_global_ordinals": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "index_options": { + "$ref": "#/components/schemas/_types.mapping:IndexOptions" + }, + "null_value": { + "type": "string" + }, + "similarity": { + "type": "string" + }, + "split_queries_on_whitespace": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "flattened" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:NestedProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:CorePropertyBase" + }, + { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "include_in_parent": { + "type": "boolean" + }, + "include_in_root": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "nested" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:ObjectProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:CorePropertyBase" + }, + { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "object" + ] + } + } + } + ] + }, + "_types.mapping:CompletionProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "contexts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.mapping:SuggestContext" + } + }, + "max_input_length": { + "type": "number" + }, + "preserve_position_increments": { + "type": "boolean" + }, + "preserve_separators": { + "type": "boolean" + }, + "search_analyzer": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "completion" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:SuggestContext": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "path": { + "$ref": "#/components/schemas/_types:Field" + }, + "type": { + "type": "string" + }, + "precision": { + "oneOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "name", + "type" + ] + }, + "_types.mapping:ConstantKeywordProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "value": { + "type": "object" + }, + "type": { + "type": "string", + "enum": [ + "constant_keyword" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:FieldAliasProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "path": { + "$ref": "#/components/schemas/_types:Field" + }, + "type": { + "type": "string", + "enum": [ + "alias" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:HistogramProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:PropertyBase" + }, + { + "type": "object", + "properties": { + "ignore_malformed": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "histogram" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:IpProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "index": { + "type": "boolean" + }, + "ignore_malformed": { + "type": "boolean" + }, + "null_value": { + "type": "string" + }, + "on_script_error": { + "$ref": "#/components/schemas/_types.mapping:OnScriptError" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "time_series_dimension": { + "description": "For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.", + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "ip" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:Murmur3HashProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "murmur3" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:TokenCountProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "analyzer": { + "type": "string" + }, + "boost": { + "type": "number" + }, + "index": { + "type": "boolean" + }, + "null_value": { + "type": "number" + }, + "enable_position_increments": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "token_count" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:GeoPointProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "ignore_malformed": { + "type": "boolean" + }, + "ignore_z_value": { + "type": "boolean" + }, + "null_value": { + "$ref": "#/components/schemas/_types:GeoLocation" + }, + "type": { + "type": "string", + "enum": [ + "geo_point" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:GeoShapeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "coerce": { + "type": "boolean" + }, + "ignore_malformed": { + "type": "boolean" + }, + "ignore_z_value": { + "type": "boolean" + }, + "orientation": { + "$ref": "#/components/schemas/_types.mapping:GeoOrientation" + }, + "strategy": { + "$ref": "#/components/schemas/_types.mapping:GeoStrategy" + }, + "type": { + "type": "string", + "enum": [ + "geo_shape" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:GeoOrientation": { + "type": "string", + "enum": [ + "right", + "left" + ] + }, + "_types.mapping:GeoStrategy": { + "type": "string", + "enum": [ + "recursive", + "term" + ] + }, + "_types.mapping:PointProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "ignore_malformed": { + "type": "boolean" + }, + "ignore_z_value": { + "type": "boolean" + }, + "null_value": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "point" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:ShapeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "coerce": { + "type": "boolean" + }, + "ignore_malformed": { + "type": "boolean" + }, + "ignore_z_value": { + "type": "boolean" + }, + "orientation": { + "$ref": "#/components/schemas/_types.mapping:GeoOrientation" + }, + "type": { + "type": "string", + "enum": [ + "shape" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:ByteNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "byte" + ] + }, + "null_value": { + "$ref": "#/components/schemas/_types:byte" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types:byte": { + "type": "number" + }, + "_types.mapping:NumberPropertyBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "coerce": { + "type": "boolean" + }, + "ignore_malformed": { + "type": "boolean" + }, + "index": { + "type": "boolean" + }, + "on_script_error": { + "$ref": "#/components/schemas/_types.mapping:OnScriptError" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "time_series_metric": { + "$ref": "#/components/schemas/_types.mapping:TimeSeriesMetricType" + }, + "time_series_dimension": { + "description": "For internal use by Elastic only. Marks the field as a time series dimension. Defaults to false.", + "type": "boolean" + } + } + } + ] + }, + "_types.mapping:DoubleNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "double" + ] + }, + "null_value": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:FloatNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "float" + ] + }, + "null_value": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:HalfFloatNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "half_float" + ] + }, + "null_value": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:IntegerNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "integer" + ] + }, + "null_value": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:LongNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "long" + ] + }, + "null_value": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:ScaledFloatNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "scaled_float" + ] + }, + "null_value": { + "type": "number" + }, + "scaling_factor": { + "type": "number" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:ShortNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "short" + ] + }, + "null_value": { + "$ref": "#/components/schemas/_types:short" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types:short": { + "type": "number" + }, + "_types.mapping:UnsignedLongNumberProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:NumberPropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "unsigned_long" + ] + }, + "null_value": { + "$ref": "#/components/schemas/_types:ulong" + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types:ulong": { + "type": "number" + }, + "_types.mapping:DateRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "format": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "date_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:RangePropertyBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:DocValuesPropertyBase" + }, + { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "coerce": { + "type": "boolean" + }, + "index": { + "type": "boolean" + } + } + } + ] + }, + "_types.mapping:DoubleRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "double_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:FloatRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "float_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:IntegerRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "integer_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:IpRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ip_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:LongRangeProperty": { + "allOf": [ + { + "$ref": "#/components/schemas/_types.mapping:RangePropertyBase" + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "long_range" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "_types.mapping:MatchType": { + "type": "string", + "enum": [ + "simple", + "regex" + ] + }, + "_types.mapping:FieldNamesField": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "_types.mapping:IndexField": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "_types.mapping:RoutingField": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "required": [ + "required" + ] + }, + "_types.mapping:SizeField": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "_types.mapping:SourceField": { + "type": "object", + "properties": { + "compress": { + "type": "boolean" + }, + "compress_threshold": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "excludes": { + "type": "array", + "items": { + "type": "string" + } + }, + "includes": { + "type": "array", + "items": { + "type": "string" + } + }, + "mode": { + "$ref": "#/components/schemas/_types.mapping:SourceFieldMode" + } + } + }, + "_types.mapping:SourceFieldMode": { + "type": "string", + "enum": [ + "disabled", + "stored", + "synthetic" + ] + }, + "_types.mapping:DataStreamTimestamp": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "indices._types:AliasDefinition": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "index_routing": { + "description": "Value used to route indexing operations to a specific shard.\nIf specified, this overwrites the `routing` value for indexing operations.", + "type": "string" + }, + "is_write_index": { + "description": "If `true`, the index is the write index for the alias.", + "type": "boolean" + }, + "routing": { + "description": "Value used to route indexing and search operations to a specific shard.", + "type": "string" + }, + "search_routing": { + "description": "Value used to route search operations to a specific shard.\nIf specified, this overwrites the `routing` value for search operations.", + "type": "string" + }, + "is_hidden": { + "description": "If `true`, the alias is hidden.\nAll indices for the alias must have the same `is_hidden` value.", + "type": "boolean" + } + } + }, + "indices._types:DataStreamLifecycleWithRollover": { + "type": "object", + "properties": { + "data_retention": { + "$ref": "#/components/schemas/_types:Duration" + }, + "downsampling": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleDownsampling" + }, + "rollover": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleRolloverConditions" + } + } + }, + "indices._types:DataStreamLifecycleDownsampling": { + "type": "object", + "properties": { + "rounds": { + "description": "The list of downsampling rounds to execute as part of this downsampling configuration", + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:DownsamplingRound" + } + } + }, + "required": [ + "rounds" + ] + }, + "indices._types:DownsamplingRound": { + "type": "object", + "properties": { + "after": { + "$ref": "#/components/schemas/_types:Duration" + }, + "config": { + "$ref": "#/components/schemas/indices._types:DownsampleConfig" + } + }, + "required": [ + "after", + "config" + ] + }, + "indices._types:DownsampleConfig": { + "type": "object", + "properties": { + "fixed_interval": { + "$ref": "#/components/schemas/_types:DurationLarge" + } + }, + "required": [ + "fixed_interval" + ] + }, + "indices._types:DataStreamLifecycleRolloverConditions": { + "type": "object", + "properties": { + "min_age": { + "$ref": "#/components/schemas/_types:Duration" + }, + "max_age": { + "type": "string" + }, + "min_docs": { + "type": "number" + }, + "max_docs": { + "type": "number" + }, + "min_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "max_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "min_primary_shard_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "max_primary_shard_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "min_primary_shard_docs": { + "type": "number" + }, + "max_primary_shard_docs": { + "type": "number" + } + } + }, + "_types:ClusterInfoTargets": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:ClusterInfoTarget" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:ClusterInfoTarget" + } + } + ] + }, + "_types:ClusterInfoTarget": { + "type": "string", + "enum": [ + "_all", + "http", + "ingest", + "thread_pool", + "script" + ] + }, + "nodes._types:Http": { + "type": "object", + "properties": { + "current_open": { + "description": "Current number of open HTTP connections for the node.", + "type": "number" + }, + "total_opened": { + "description": "Total number of HTTP connections opened for the node.", + "type": "number" + }, + "clients": { + "description": "Information on current and recently-closed HTTP client connections.\nClients that have been closed longer than the `http.client_stats.closed_channels.max_age` setting will not be represented here.", + "type": "array", + "items": { + "$ref": "#/components/schemas/nodes._types:Client" + } + } + } + }, + "nodes._types:Client": { + "type": "object", + "properties": { + "id": { + "description": "Unique ID for the HTTP client.", + "type": "number" + }, + "agent": { + "description": "Reported agent for the HTTP client.\nIf unavailable, this property is not included in the response.", + "type": "string" + }, + "local_address": { + "description": "Local address for the HTTP connection.", + "type": "string" + }, + "remote_address": { + "description": "Remote address for the HTTP connection.", + "type": "string" + }, + "last_uri": { + "description": "The URI of the client’s most recent request.", + "type": "string" + }, + "opened_time_millis": { + "description": "Time at which the client opened the connection.", + "type": "number" + }, + "closed_time_millis": { + "description": "Time at which the client closed the connection if the connection is closed.", + "type": "number" + }, + "last_request_time_millis": { + "description": "Time of the most recent request from this client.", + "type": "number" + }, + "request_count": { + "description": "Number of requests from this client.", + "type": "number" + }, + "request_size_bytes": { + "description": "Cumulative size in bytes of all requests from this client.", + "type": "number" + }, + "x_opaque_id": { + "description": "Value from the client’s `x-opaque-id` HTTP header.\nIf unavailable, this property is not included in the response.", + "type": "string" + } + } + }, + "nodes._types:Ingest": { + "type": "object", + "properties": { + "pipelines": { + "description": "Contains statistics about ingest pipelines for the node.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/nodes._types:IngestTotal" + } + }, + "total": { + "$ref": "#/components/schemas/nodes._types:IngestTotal" + } + } + }, + "nodes._types:IngestTotal": { + "type": "object", + "properties": { + "count": { + "description": "Total number of documents ingested during the lifetime of this node.", + "type": "number" + }, + "current": { + "description": "Total number of documents currently being ingested.", + "type": "number" + }, + "failed": { + "description": "Total number of failed ingest operations during the lifetime of this node.", + "type": "number" + }, + "processors": { + "description": "Total number of ingest processors.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/nodes._types:KeyedProcessor" + } + } + }, + "time_in_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + } + } + }, + "nodes._types:KeyedProcessor": { + "type": "object", + "properties": { + "stats": { + "$ref": "#/components/schemas/nodes._types:Processor" + }, + "type": { + "type": "string" + } + } + }, + "nodes._types:Processor": { + "type": "object", + "properties": { + "count": { + "description": "Number of documents transformed by the processor.", + "type": "number" + }, + "current": { + "description": "Number of documents currently being transformed by the processor.", + "type": "number" + }, + "failed": { + "description": "Number of failed operations for the processor.", + "type": "number" + }, + "time_in_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + } + } + }, + "nodes._types:ThreadCount": { + "type": "object", + "properties": { + "active": { + "description": "Number of active threads in the thread pool.", + "type": "number" + }, + "completed": { + "description": "Number of tasks completed by the thread pool executor.", + "type": "number" + }, + "largest": { + "description": "Highest number of active threads in the thread pool.", + "type": "number" + }, + "queue": { + "description": "Number of tasks in queue for the thread pool.", + "type": "number" + }, + "rejected": { + "description": "Number of tasks rejected by the thread pool executor.", + "type": "number" + }, + "threads": { + "description": "Number of threads in the thread pool.", + "type": "number" + } + } + }, + "nodes._types:Scripting": { + "type": "object", + "properties": { + "cache_evictions": { + "description": "Total number of times the script cache has evicted old data.", + "type": "number" + }, + "compilations": { + "description": "Total number of inline script compilations performed by the node.", + "type": "number" + }, + "compilations_history": { + "description": "Contains this recent history of script compilations.", + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "compilation_limit_triggered": { + "description": "Total number of times the script compilation circuit breaker has limited inline script compilations.", + "type": "number" + }, + "contexts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/nodes._types:Context" + } + } + } + }, + "nodes._types:Context": { + "type": "object", + "properties": { + "context": { + "type": "string" + }, + "compilations": { + "type": "number" + }, + "cache_evictions": { + "type": "number" + }, + "compilation_limit_triggered": { + "type": "number" + } + } + }, + "indices._types:IndexState": { + "type": "object", + "properties": { + "aliases": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "defaults": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "data_stream": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycle" + } + } + }, + "indices._types:Alias": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "index_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "is_hidden": { + "description": "If `true`, the alias is hidden.\nAll indices for the alias must have the same `is_hidden` value.", + "type": "boolean" + }, + "is_write_index": { + "description": "If `true`, the index is the write index for the alias.", + "type": "boolean" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "search_routing": { + "$ref": "#/components/schemas/_types:Routing" + } + } + }, + "_types:DataStreamName": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-data-stream.html#indices-create-data-stream-api-path-params" + }, + "type": "string" + }, + "indices._types:DataStreamLifecycle": { + "type": "object", + "properties": { + "data_retention": { + "$ref": "#/components/schemas/_types:Duration" + }, + "downsampling": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleDownsampling" + } + } + }, + "_types:WriteResponseBase": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_primary_term": { + "type": "number" + }, + "result": { + "$ref": "#/components/schemas/_types:Result" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "forced_refresh": { + "type": "boolean" + } + }, + "required": [ + "_id", + "_index", + "_primary_term", + "result", + "_seq_no", + "_shards", + "_version" + ] + }, + "_types:Result": { + "type": "string", + "enum": [ + "created", + "updated", + "deleted", + "not_found", + "noop" + ] + }, + "_types:Conflicts": { + "type": "string", + "enum": [ + "abort", + "proceed" + ] + }, + "_types:Slices": { + "description": "Slices configuration used to parallelize a process.", + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "#/components/schemas/_types:SlicesCalculation" + } + ] + }, + "_types:SlicesCalculation": { + "type": "string", + "enum": [ + "auto" + ] + }, + "_types:BulkIndexByScrollFailure": { + "type": "object", + "properties": { + "cause": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "status": { + "type": "number" + }, + "type": { + "type": "string" + } + }, + "required": [ + "cause", + "id", + "index", + "status", + "type" + ] + }, + "_types:Retries": { + "type": "object", + "properties": { + "bulk": { + "type": "number" + }, + "search": { + "type": "number" + } + }, + "required": [ + "bulk", + "search" + ] + }, + "_types:TaskId": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "enrich.execute_policy:ExecuteEnrichPolicyStatus": { + "type": "object", + "properties": { + "phase": { + "$ref": "#/components/schemas/enrich.execute_policy:EnrichPolicyPhase" + } + }, + "required": [ + "phase" + ] + }, + "enrich.execute_policy:EnrichPolicyPhase": { + "type": "string", + "enum": [ + "SCHEDULED", + "RUNNING", + "COMPLETE", + "FAILED" + ] + }, + "enrich._types:Summary": { + "type": "object", + "properties": { + "config": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/enrich._types:Policy" + }, + "minProperties": 1, + "maxProperties": 1 + } + }, + "required": [ + "config" + ] + }, + "enrich._types:Policy": { + "type": "object", + "properties": { + "enrich_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "match_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "query": { + "type": "string" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "elasticsearch_version": { + "type": "string" + } + }, + "required": [ + "enrich_fields", + "indices", + "match_field" + ] + }, + "enrich.stats:CoordinatorStats": { + "type": "object", + "properties": { + "executed_searches_total": { + "type": "number" + }, + "node_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "queue_size": { + "type": "number" + }, + "remote_requests_current": { + "type": "number" + }, + "remote_requests_total": { + "type": "number" + } + }, + "required": [ + "executed_searches_total", + "node_id", + "queue_size", + "remote_requests_current", + "remote_requests_total" + ] + }, + "enrich.stats:ExecutingPolicy": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "task": { + "$ref": "#/components/schemas/tasks._types:TaskInfo" + } + }, + "required": [ + "name", + "task" + ] + }, + "tasks._types:TaskInfo": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "cancelled": { + "type": "boolean" + }, + "cancellable": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "number" + }, + "node": { + "$ref": "#/components/schemas/_types:NodeId" + }, + "running_time": { + "$ref": "#/components/schemas/_types:Duration" + }, + "running_time_in_nanos": { + "$ref": "#/components/schemas/_types:DurationValueUnitNanos" + }, + "start_time_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "status": { + "description": "Task status information can vary wildly from task to task.", + "type": "object" + }, + "type": { + "type": "string" + }, + "parent_task_id": { + "$ref": "#/components/schemas/_types:TaskId" + } + }, + "required": [ + "action", + "cancellable", + "headers", + "id", + "node", + "running_time_in_nanos", + "start_time_in_millis", + "type" + ] + }, + "enrich.stats:CacheStats": { + "type": "object", + "properties": { + "node_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "count": { + "type": "number" + }, + "hits": { + "type": "number" + }, + "misses": { + "type": "number" + }, + "evictions": { + "type": "number" + } + }, + "required": [ + "node_id", + "count", + "hits", + "misses", + "evictions" + ] + }, + "eql._types:EqlSearchResponseBase": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "is_partial": { + "description": "If true, the response does not contain complete search results.", + "type": "boolean" + }, + "is_running": { + "description": "If true, the search request is still executing.", + "type": "boolean" + }, + "took": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "timed_out": { + "description": "If true, the request timed out before completion.", + "type": "boolean" + }, + "hits": { + "$ref": "#/components/schemas/eql._types:EqlHits" + } + }, + "required": [ + "hits" + ] + }, + "eql._types:EqlHits": { + "type": "object", + "properties": { + "total": { + "$ref": "#/components/schemas/_global.search._types:TotalHits" + }, + "events": { + "description": "Contains events matching the query. Each object represents a matching event.", + "type": "array", + "items": { + "$ref": "#/components/schemas/eql._types:HitsEvent" + } + }, + "sequences": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-syntax.html#eql-sequences" + }, + "description": "Contains event sequences matching the query. Each object represents a matching sequence. This parameter is only returned for EQL queries containing a sequence.", + "type": "array", + "items": { + "$ref": "#/components/schemas/eql._types:HitsSequence" + } + } + } + }, + "eql._types:HitsEvent": { + "type": "object", + "properties": { + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_source": { + "description": "Original JSON body passed for the event at index time.", + "type": "object" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "object" + } + } + } + }, + "required": [ + "_index", + "_id", + "_source" + ] + }, + "eql._types:HitsSequence": { + "type": "object", + "properties": { + "events": { + "description": "Contains events matching the query. Each object represents a matching event.", + "type": "array", + "items": { + "$ref": "#/components/schemas/eql._types:HitsEvent" + } + }, + "join_keys": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-syntax.html#eql-sequences" + }, + "description": "Shared field values used to constrain matches in the sequence. These are defined using the by keyword in the EQL query syntax.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "events", + "join_keys" + ] + }, + "eql.search:ResultPosition": { + "type": "string", + "enum": [ + "tail", + "head" + ] + }, + "_types:InlineGet": { + "type": "object", + "properties": { + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "found": { + "type": "boolean" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_primary_term": { + "type": "number" + }, + "_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "_source": { + "type": "object" + } + }, + "required": [ + "found", + "_source" + ] + }, + "_global.field_caps:FieldCapability": { + "type": "object", + "properties": { + "aggregatable": { + "description": "Whether this field can be aggregated on all indices.", + "type": "boolean" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "non_aggregatable_indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "non_searchable_indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "searchable": { + "description": "Whether this field is indexed for search on all indices.", + "type": "boolean" + }, + "type": { + "type": "string" + }, + "metadata_field": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-fields.html" + }, + "description": "Whether this field is registered as a metadata field.", + "type": "boolean" + }, + "time_series_dimension": { + "description": "Whether this field is used as a time series dimension.", + "type": "boolean" + }, + "time_series_metric": { + "$ref": "#/components/schemas/_types.mapping:TimeSeriesMetricType" + }, + "non_dimension_indices": { + "description": "If this list is present in response then some indices have the\nfield marked as a dimension and other indices, the ones in this list, do not.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "metric_conflicts_indices": { + "description": "The list of indices where this field is present if these indices\ndon’t have the same `time_series_metric` value for this field.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexName" + } + } + }, + "required": [ + "aggregatable", + "searchable", + "type" + ] + }, + "_global.get:GetResult": { + "type": "object", + "properties": { + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "found": { + "type": "boolean" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_primary_term": { + "type": "number" + }, + "_routing": { + "type": "string" + }, + "_seq_no": { + "$ref": "#/components/schemas/_types:SequenceNumber" + }, + "_source": { + "type": "object" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + }, + "required": [ + "_index", + "found", + "_id" + ] + }, + "_types:StoredScript": { + "type": "object", + "properties": { + "lang": { + "$ref": "#/components/schemas/_types:ScriptLanguage" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "source": { + "description": "The script source.", + "type": "string" + } + }, + "required": [ + "lang", + "source" + ] + }, + "graph._types:Hop": { + "type": "object", + "properties": { + "connections": { + "$ref": "#/components/schemas/graph._types:Hop" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "vertices": { + "description": "Contains the fields you are interested in.", + "type": "array", + "items": { + "$ref": "#/components/schemas/graph._types:VertexDefinition" + } + } + }, + "required": [ + "query", + "vertices" + ] + }, + "graph._types:VertexDefinition": { + "type": "object", + "properties": { + "exclude": { + "description": "Prevents the specified terms from being included in the results.", + "type": "array", + "items": { + "type": "string" + } + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "include": { + "description": "Identifies the terms of interest that form the starting points from which you want to spider out.", + "type": "array", + "items": { + "$ref": "#/components/schemas/graph._types:VertexInclude" + } + }, + "min_doc_count": { + "description": "Specifies how many documents must contain a pair of terms before it is considered to be a useful connection.\nThis setting acts as a certainty threshold.", + "type": "number" + }, + "shard_min_doc_count": { + "description": "Controls how many documents on a particular shard have to contain a pair of terms before the connection is returned for global consideration.", + "type": "number" + }, + "size": { + "description": "Specifies the maximum number of vertex terms returned for each field.", + "type": "number" + } + }, + "required": [ + "field" + ] + }, + "graph._types:VertexInclude": { + "type": "object", + "properties": { + "boost": { + "type": "number" + }, + "term": { + "type": "string" + } + }, + "required": [ + "boost", + "term" + ] + }, + "graph._types:ExploreControls": { + "type": "object", + "properties": { + "sample_diversity": { + "$ref": "#/components/schemas/graph._types:SampleDiversity" + }, + "sample_size": { + "description": "Each hop considers a sample of the best-matching documents on each shard.\nUsing samples improves the speed of execution and keeps exploration focused on meaningfully-connected terms.\nVery small values (less than 50) might not provide sufficient weight-of-evidence to identify significant connections between terms.\nVery large sample sizes can dilute the quality of the results and increase execution times.", + "type": "number" + }, + "timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "use_significance": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-significantterms-aggregation.html" + }, + "description": "Filters associated terms so only those that are significantly associated with your query are included.", + "type": "boolean" + } + }, + "required": [ + "use_significance" + ] + }, + "graph._types:SampleDiversity": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "max_docs_per_value": { + "type": "number" + } + }, + "required": [ + "field", + "max_docs_per_value" + ] + }, + "graph._types:Connection": { + "type": "object", + "properties": { + "doc_count": { + "type": "number" + }, + "source": { + "type": "number" + }, + "target": { + "type": "number" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "doc_count", + "source", + "target", + "weight" + ] + }, + "graph._types:Vertex": { + "type": "object", + "properties": { + "depth": { + "type": "number" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "term": { + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "depth", + "field", + "term", + "weight" + ] + }, + "_types:OpType": { + "type": "string", + "enum": [ + "index", + "create" + ] + }, + "indices.add_block:IndicesBlockOptions": { + "type": "string", + "enum": [ + "metadata", + "read", + "read_only", + "write" + ] + }, + "indices.add_block:IndicesBlockStatus": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "blocked": { + "type": "boolean" + } + }, + "required": [ + "name", + "blocked" + ] + }, + "indices.analyze:TextToAnalyze": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "indices.analyze:AnalyzeDetail": { + "type": "object", + "properties": { + "analyzer": { + "$ref": "#/components/schemas/indices.analyze:AnalyzerDetail" + }, + "charfilters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.analyze:CharFilterDetail" + } + }, + "custom_analyzer": { + "type": "boolean" + }, + "tokenfilters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.analyze:TokenDetail" + } + }, + "tokenizer": { + "$ref": "#/components/schemas/indices.analyze:TokenDetail" + } + }, + "required": [ + "custom_analyzer" + ] + }, + "indices.analyze:AnalyzerDetail": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tokens": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.analyze:ExplainAnalyzeToken" + } + } + }, + "required": [ + "name", + "tokens" + ] + }, + "indices.analyze:ExplainAnalyzeToken": { + "type": "object", + "properties": { + "bytes": { + "type": "string" + }, + "end_offset": { + "type": "number" + }, + "keyword": { + "type": "boolean" + }, + "position": { + "type": "number" + }, + "positionLength": { + "type": "number" + }, + "start_offset": { + "type": "number" + }, + "termFrequency": { + "type": "number" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "bytes", + "end_offset", + "position", + "positionLength", + "start_offset", + "termFrequency", + "token", + "type" + ] + }, + "indices.analyze:CharFilterDetail": { + "type": "object", + "properties": { + "filtered_text": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + } + }, + "required": [ + "filtered_text", + "name" + ] + }, + "indices.analyze:TokenDetail": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tokens": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.analyze:ExplainAnalyzeToken" + } + } + }, + "required": [ + "name", + "tokens" + ] + }, + "indices.analyze:AnalyzeToken": { + "type": "object", + "properties": { + "end_offset": { + "type": "number" + }, + "position": { + "type": "number" + }, + "positionLength": { + "type": "number" + }, + "start_offset": { + "type": "number" + }, + "token": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "end_offset", + "position", + "start_offset", + "token", + "type" + ] + }, + "indices.data_streams_stats:DataStreamsStatsItem": { + "type": "object", + "properties": { + "backing_indices": { + "description": "Current number of backing indices for the data stream.", + "type": "number" + }, + "data_stream": { + "$ref": "#/components/schemas/_types:Name" + }, + "maximum_timestamp": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "store_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "store_size_bytes": { + "description": "Total size, in bytes, of all shards for the data stream’s backing indices.", + "type": "number" + } + }, + "required": [ + "backing_indices", + "data_stream", + "maximum_timestamp", + "store_size_bytes" + ] + }, + "_types:IndicesResponseBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + }, + { + "type": "object", + "properties": { + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + } + } + } + ] + }, + "_types:DataStreamNames": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:DataStreamName" + } + } + ] + }, + "indices.explain_data_lifecycle:DataStreamLifecycleExplain": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "managed_by_lifecycle": { + "type": "boolean" + }, + "index_creation_date_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "time_since_index_creation": { + "$ref": "#/components/schemas/_types:Duration" + }, + "rollover_date_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "time_since_rollover": { + "$ref": "#/components/schemas/_types:Duration" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleWithRollover" + }, + "generation_time": { + "$ref": "#/components/schemas/_types:Duration" + }, + "error": { + "type": "string" + } + }, + "required": [ + "index", + "managed_by_lifecycle" + ] + }, + "indices.get:Features": { + "oneOf": [ + { + "$ref": "#/components/schemas/indices.get:Feature" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.get:Feature" + } + } + ] + }, + "indices.get:Feature": { + "type": "string", + "enum": [ + "aliases", + "mappings", + "settings" + ] + }, + "indices.get_alias:IndexAliases": { + "type": "object", + "properties": { + "aliases": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:AliasDefinition" + } + } + }, + "required": [ + "aliases" + ] + }, + "indices.get_data_lifecycle:DataStreamWithLifecycle": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycle" + } + }, + "required": [ + "name" + ] + }, + "indices._types:DataStream": { + "type": "object", + "properties": { + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "allow_custom_routing": { + "description": "If `true`, the data stream allows custom routing on write request.", + "type": "boolean" + }, + "generation": { + "description": "Current generation for the data stream. This number acts as a cumulative count of the stream’s rollovers, starting at 1.", + "type": "number" + }, + "hidden": { + "description": "If `true`, the data stream is hidden.", + "type": "boolean" + }, + "ilm_policy": { + "$ref": "#/components/schemas/_types:Name" + }, + "next_generation_managed_by": { + "$ref": "#/components/schemas/_types:ManagedBy" + }, + "prefer_ilm": { + "description": "Indicates if ILM should take precedence over DSL in case both are configured to managed this data stream.", + "type": "boolean" + }, + "indices": { + "description": "Array of objects containing information about the data stream’s backing indices.\nThe last item in this array contains information about the stream’s current write index.", + "type": "array", + "items": { + "$ref": "#/components/schemas/indices._types:DataStreamIndex" + } + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleWithRollover" + }, + "name": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "replicated": { + "description": "If `true`, the data stream is created and managed by cross-cluster replication and the local cluster can not write into this data stream or change its mappings.", + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/_types:HealthStatus" + }, + "system": { + "description": "If `true`, the data stream is created and managed by an Elastic stack component and cannot be modified through normal user interaction.", + "type": "boolean" + }, + "template": { + "$ref": "#/components/schemas/_types:Name" + }, + "timestamp_field": { + "$ref": "#/components/schemas/indices._types:DataStreamTimestampField" + } + }, + "required": [ + "generation", + "hidden", + "next_generation_managed_by", + "prefer_ilm", + "indices", + "name", + "status", + "template", + "timestamp_field" + ] + }, + "_types:ManagedBy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Index Lifecycle Management" + ] + }, + { + "type": "string", + "enum": [ + "Data stream lifecycle" + ] + }, + { + "type": "string", + "enum": [ + "Unmanaged" + ] + } + ] + }, + "indices._types:DataStreamIndex": { + "type": "object", + "properties": { + "index_name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "index_uuid": { + "$ref": "#/components/schemas/_types:Uuid" + }, + "ilm_policy": { + "$ref": "#/components/schemas/_types:Name" + }, + "managed_by": { + "$ref": "#/components/schemas/_types:ManagedBy" + }, + "prefer_ilm": { + "description": "Indicates if ILM should take precedence over DSL in case both are configured to manage this index.", + "type": "boolean" + } + }, + "required": [ + "index_name", + "index_uuid", + "managed_by", + "prefer_ilm" + ] + }, + "indices._types:DataStreamTimestampField": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "name" + ] + }, + "indices.get_index_template:IndexTemplateItem": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "index_template": { + "$ref": "#/components/schemas/indices._types:IndexTemplate" + } + }, + "required": [ + "name", + "index_template" + ] + }, + "indices._types:IndexTemplate": { + "type": "object", + "properties": { + "index_patterns": { + "$ref": "#/components/schemas/_types:Names" + }, + "composed_of": { + "description": "An ordered list of component template names.\nComponent templates are merged in the order specified, meaning that the last component template specified has the highest precedence.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "template": { + "$ref": "#/components/schemas/indices._types:IndexTemplateSummary" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "priority": { + "description": "Priority to determine index template precedence when a new data stream or index is created.\nThe index template with the highest priority is chosen.\nIf no priority is specified the template is treated as though it is of priority 0 (lowest priority).\nThis number is not automatically generated by Elasticsearch.", + "type": "number" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "allow_auto_create": { + "type": "boolean" + }, + "data_stream": { + "$ref": "#/components/schemas/indices._types:IndexTemplateDataStreamConfiguration" + } + }, + "required": [ + "index_patterns", + "composed_of" + ] + }, + "indices._types:IndexTemplateSummary": { + "type": "object", + "properties": { + "aliases": { + "description": "Aliases to add.\nIf the index template includes a `data_stream` object, these are data stream aliases.\nOtherwise, these are index aliases.\nData stream aliases ignore the `index_routing`, `routing`, and `search_routing` options.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycleWithRollover" + } + } + }, + "indices._types:IndexTemplateDataStreamConfiguration": { + "type": "object", + "properties": { + "hidden": { + "description": "If true, the data stream is hidden.", + "type": "boolean" + }, + "allow_custom_routing": { + "description": "If true, the data stream supports custom routing.", + "type": "boolean" + } + } + }, + "indices.get_mapping:IndexMappingRecord": { + "type": "object", + "properties": { + "item": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + } + }, + "required": [ + "mappings" + ] + }, + "indices.modify_data_stream:Action": { + "type": "object", + "properties": { + "add_backing_index": { + "$ref": "#/components/schemas/indices.modify_data_stream:IndexAndDataStreamAction" + }, + "remove_backing_index": { + "$ref": "#/components/schemas/indices.modify_data_stream:IndexAndDataStreamAction" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "indices.modify_data_stream:IndexAndDataStreamAction": { + "type": "object", + "properties": { + "data_stream": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "data_stream", + "index" + ] + }, + "indices.put_index_template:IndexTemplateMapping": { + "type": "object", + "properties": { + "aliases": { + "description": "Aliases to add.\nIf the index template includes a `data_stream` object, these are data stream aliases.\nOtherwise, these are index aliases.\nData stream aliases ignore the `index_routing`, `routing`, and `search_routing` options.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + }, + "lifecycle": { + "$ref": "#/components/schemas/indices._types:DataStreamLifecycle" + } + } + }, + "indices._types:DataStreamVisibility": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean" + } + } + }, + "_types:ShardsOperationResponseBase": { + "type": "object", + "properties": { + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + } + }, + "required": [ + "_shards" + ] + }, + "indices.resolve_index:ResolveIndexItem": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "aliases": { + "type": "array", + "items": { + "type": "string" + } + }, + "attributes": { + "type": "array", + "items": { + "type": "string" + } + }, + "data_stream": { + "$ref": "#/components/schemas/_types:DataStreamName" + } + }, + "required": [ + "name", + "attributes" + ] + }, + "indices.resolve_index:ResolveIndexAliasItem": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + } + }, + "required": [ + "name", + "indices" + ] + }, + "indices.resolve_index:ResolveIndexDataStreamsItem": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:DataStreamName" + }, + "timestamp_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "backing_indices": { + "$ref": "#/components/schemas/_types:Indices" + } + }, + "required": [ + "name", + "timestamp_field", + "backing_indices" + ] + }, + "_types:IndexAlias": { + "type": "string" + }, + "indices.rollover:RolloverConditions": { + "type": "object", + "properties": { + "min_age": { + "$ref": "#/components/schemas/_types:Duration" + }, + "max_age": { + "$ref": "#/components/schemas/_types:Duration" + }, + "max_age_millis": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "min_docs": { + "type": "number" + }, + "max_docs": { + "type": "number" + }, + "max_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "max_size_bytes": { + "type": "number" + }, + "min_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "min_size_bytes": { + "type": "number" + }, + "max_primary_shard_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "max_primary_shard_size_bytes": { + "type": "number" + }, + "min_primary_shard_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "min_primary_shard_size_bytes": { + "type": "number" + }, + "max_primary_shard_docs": { + "type": "number" + }, + "min_primary_shard_docs": { + "type": "number" + } + } + }, + "indices.simulate_template:Overlapping": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "index_patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "index_patterns" + ] + }, + "indices.simulate_template:Template": { + "type": "object", + "properties": { + "aliases": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/indices._types:Alias" + } + }, + "mappings": { + "$ref": "#/components/schemas/_types.mapping:TypeMapping" + }, + "settings": { + "$ref": "#/components/schemas/indices._types:IndexSettings" + } + }, + "required": [ + "aliases", + "mappings", + "settings" + ] + }, + "indices.update_aliases:Action": { + "type": "object", + "properties": { + "add": { + "$ref": "#/components/schemas/indices.update_aliases:AddAction" + }, + "remove": { + "$ref": "#/components/schemas/indices.update_aliases:RemoveAction" + }, + "remove_index": { + "$ref": "#/components/schemas/indices.update_aliases:RemoveIndexAction" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "indices.update_aliases:AddAction": { + "type": "object", + "properties": { + "alias": { + "$ref": "#/components/schemas/_types:IndexAlias" + }, + "aliases": { + "description": "Aliases for the action.\nIndex alias names support date math.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:IndexAlias" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexAlias" + } + } + ] + }, + "filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "index_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "is_hidden": { + "description": "If `true`, the alias is hidden.", + "type": "boolean" + }, + "is_write_index": { + "description": "If `true`, sets the write index or data stream for the alias.", + "type": "boolean" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "search_routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "must_exist": { + "description": "If `true`, the alias must exist to perform the action.", + "type": "boolean" + } + } + }, + "indices.update_aliases:RemoveAction": { + "type": "object", + "properties": { + "alias": { + "$ref": "#/components/schemas/_types:IndexAlias" + }, + "aliases": { + "description": "Aliases for the action.\nIndex alias names support date math.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:IndexAlias" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexAlias" + } + } + ] + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "must_exist": { + "description": "If `true`, the alias must exist to perform the action.", + "type": "boolean" + } + } + }, + "indices.update_aliases:RemoveIndexAction": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "indices": { + "$ref": "#/components/schemas/_types:Indices" + }, + "must_exist": { + "description": "If `true`, the alias must exist to perform the action.", + "type": "boolean" + } + } + }, + "indices.validate_query:IndicesValidationExplanation": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "explanation": { + "type": "string" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "valid": { + "type": "boolean" + } + }, + "required": [ + "index", + "valid" + ] + }, + "_types:ElasticsearchVersionInfo": { + "type": "object", + "properties": { + "build_date": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "build_flavor": { + "type": "string" + }, + "build_hash": { + "type": "string" + }, + "build_snapshot": { + "type": "boolean" + }, + "build_type": { + "type": "string" + }, + "lucene_version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "minimum_index_compatibility_version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "minimum_wire_compatibility_version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "number": { + "type": "string" + } + }, + "required": [ + "build_date", + "build_flavor", + "build_hash", + "build_snapshot", + "build_type", + "lucene_version", + "minimum_index_compatibility_version", + "minimum_wire_compatibility_version", + "number" + ] + }, + "ingest._types:Pipeline": { + "type": "object", + "properties": { + "description": { + "description": "Description of the ingest pipeline.", + "type": "string" + }, + "on_failure": { + "description": "Processors to run immediately after a processor failure.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "processors": { + "description": "Processors used to perform transformations on documents before indexing.\nProcessors run sequentially in the order specified.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + } + } + }, + "ingest._types:ProcessorContainer": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/components/schemas/ingest._types:AttachmentProcessor" + }, + "append": { + "$ref": "#/components/schemas/ingest._types:AppendProcessor" + }, + "csv": { + "$ref": "#/components/schemas/ingest._types:CsvProcessor" + }, + "convert": { + "$ref": "#/components/schemas/ingest._types:ConvertProcessor" + }, + "date": { + "$ref": "#/components/schemas/ingest._types:DateProcessor" + }, + "date_index_name": { + "$ref": "#/components/schemas/ingest._types:DateIndexNameProcessor" + }, + "dot_expander": { + "$ref": "#/components/schemas/ingest._types:DotExpanderProcessor" + }, + "enrich": { + "$ref": "#/components/schemas/ingest._types:EnrichProcessor" + }, + "fail": { + "$ref": "#/components/schemas/ingest._types:FailProcessor" + }, + "foreach": { + "$ref": "#/components/schemas/ingest._types:ForeachProcessor" + }, + "json": { + "$ref": "#/components/schemas/ingest._types:JsonProcessor" + }, + "user_agent": { + "$ref": "#/components/schemas/ingest._types:UserAgentProcessor" + }, + "kv": { + "$ref": "#/components/schemas/ingest._types:KeyValueProcessor" + }, + "geoip": { + "$ref": "#/components/schemas/ingest._types:GeoIpProcessor" + }, + "grok": { + "$ref": "#/components/schemas/ingest._types:GrokProcessor" + }, + "gsub": { + "$ref": "#/components/schemas/ingest._types:GsubProcessor" + }, + "join": { + "$ref": "#/components/schemas/ingest._types:JoinProcessor" + }, + "lowercase": { + "$ref": "#/components/schemas/ingest._types:LowercaseProcessor" + }, + "remove": { + "$ref": "#/components/schemas/ingest._types:RemoveProcessor" + }, + "rename": { + "$ref": "#/components/schemas/ingest._types:RenameProcessor" + }, + "script": { + "$ref": "#/components/schemas/_types:Script" + }, + "set": { + "$ref": "#/components/schemas/ingest._types:SetProcessor" + }, + "sort": { + "$ref": "#/components/schemas/ingest._types:SortProcessor" + }, + "split": { + "$ref": "#/components/schemas/ingest._types:SplitProcessor" + }, + "trim": { + "$ref": "#/components/schemas/ingest._types:TrimProcessor" + }, + "uppercase": { + "$ref": "#/components/schemas/ingest._types:UppercaseProcessor" + }, + "urldecode": { + "$ref": "#/components/schemas/ingest._types:UrlDecodeProcessor" + }, + "bytes": { + "$ref": "#/components/schemas/ingest._types:BytesProcessor" + }, + "dissect": { + "$ref": "#/components/schemas/ingest._types:DissectProcessor" + }, + "set_security_user": { + "$ref": "#/components/schemas/ingest._types:SetSecurityUserProcessor" + }, + "pipeline": { + "$ref": "#/components/schemas/ingest._types:PipelineProcessor" + }, + "drop": { + "$ref": "#/components/schemas/ingest._types:DropProcessor" + }, + "circle": { + "$ref": "#/components/schemas/ingest._types:CircleProcessor" + }, + "inference": { + "$ref": "#/components/schemas/ingest._types:InferenceProcessor" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ingest._types:AttachmentProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and field does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "indexed_chars": { + "description": "The number of chars being used for extraction to prevent huge fields.\nUse `-1` for no limit.", + "type": "number" + }, + "indexed_chars_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "properties": { + "description": "Array of properties to select to be stored.\nCan be `content`, `title`, `name`, `author`, `keywords`, `date`, `content_type`, `content_length`, `language`.", + "type": "array", + "items": { + "type": "string" + } + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "resource_name": { + "description": "Field containing the name of the resource to decode.\nIf specified, the processor passes this resource name to the underlying Tika library to enable Resource Name Based Detection.", + "type": "string" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:ProcessorBase": { + "type": "object", + "properties": { + "description": { + "description": "Description of the processor.\nUseful for describing the purpose of the processor or its configuration.", + "type": "string" + }, + "if": { + "description": "Conditionally execute the processor.", + "type": "string" + }, + "ignore_failure": { + "description": "Ignore failures for the processor.", + "type": "boolean" + }, + "on_failure": { + "description": "Handle failures for the processor.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "tag": { + "description": "Identifier for the processor.\nUseful for debugging and metrics.", + "type": "string" + } + } + }, + "ingest._types:AppendProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "value": { + "description": "The value to be appended. Supports template snippets.", + "type": "array", + "items": { + "type": "object" + } + }, + "allow_duplicates": { + "description": "If `false`, the processor does not append values already present in the field.", + "type": "boolean" + } + }, + "required": [ + "field", + "value" + ] + } + ] + }, + "ingest._types:CsvProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "empty_value": { + "description": "Value used to fill empty fields.\nEmpty fields are skipped if this is not provided.\nAn empty field is one with no value (2 consecutive separators) or empty quotes (`\"\"`).", + "type": "object" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "quote": { + "description": "Quote used in CSV, has to be single character string.", + "type": "string" + }, + "separator": { + "description": "Separator used in CSV, has to be single character string.", + "type": "string" + }, + "target_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "trim": { + "description": "Trim whitespaces in unquoted fields.", + "type": "boolean" + } + }, + "required": [ + "field", + "target_fields" + ] + } + ] + }, + "ingest._types:ConvertProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "type": { + "$ref": "#/components/schemas/ingest._types:ConvertType" + } + }, + "required": [ + "field", + "type" + ] + } + ] + }, + "ingest._types:ConvertType": { + "type": "string", + "enum": [ + "integer", + "long", + "float", + "double", + "string", + "boolean", + "auto" + ] + }, + "ingest._types:DateProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "formats": { + "description": "An array of the expected date formats.\nCan be a java time pattern or one of the following formats: ISO8601, UNIX, UNIX_MS, or TAI64N.", + "type": "array", + "items": { + "type": "string" + } + }, + "locale": { + "description": "The locale to use when parsing the date, relevant when parsing month names or week days.\nSupports template snippets.", + "type": "string" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "timezone": { + "description": "The timezone to use when parsing the date.\nSupports template snippets.", + "type": "string" + } + }, + "required": [ + "field", + "formats" + ] + } + ] + }, + "ingest._types:DateIndexNameProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "date_formats": { + "description": "An array of the expected date formats for parsing dates / timestamps in the document being preprocessed.\nCan be a java time pattern or one of the following formats: ISO8601, UNIX, UNIX_MS, or TAI64N.", + "type": "array", + "items": { + "type": "string" + } + }, + "date_rounding": { + "description": "How to round the date when formatting the date into the index name. Valid values are:\n`y` (year), `M` (month), `w` (week), `d` (day), `h` (hour), `m` (minute) and `s` (second).\nSupports template snippets.", + "type": "string" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "index_name_format": { + "description": "The format to be used when printing the parsed date into the index name.\nA valid java time pattern is expected here.\nSupports template snippets.", + "type": "string" + }, + "index_name_prefix": { + "description": "A prefix of the index name to be prepended before the printed date.\nSupports template snippets.", + "type": "string" + }, + "locale": { + "description": "The locale to use when parsing the date from the document being preprocessed, relevant when parsing month names or week days.", + "type": "string" + }, + "timezone": { + "description": "The timezone to use when parsing the date and when date math index supports resolves expressions into concrete index names.", + "type": "string" + } + }, + "required": [ + "date_formats", + "date_rounding", + "field" + ] + } + ] + }, + "ingest._types:DotExpanderProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "path": { + "description": "The field that contains the field to expand.\nOnly required if the field to expand is part another object field, because the `field` option can only understand leaf fields.", + "type": "string" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:EnrichProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "max_matches": { + "description": "The maximum number of matched documents to include under the configured target field.\nThe `target_field` will be turned into a json array if `max_matches` is higher than 1, otherwise `target_field` will become a json object.\nIn order to avoid documents getting too large, the maximum allowed value is 128.", + "type": "number" + }, + "override": { + "description": "If processor will update fields with pre-existing non-null-valued field.\nWhen set to `false`, such fields will not be touched.", + "type": "boolean" + }, + "policy_name": { + "description": "The name of the enrich policy to use.", + "type": "string" + }, + "shape_relation": { + "$ref": "#/components/schemas/_types:GeoShapeRelation" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field", + "policy_name", + "target_field" + ] + } + ] + }, + "_types:GeoShapeRelation": { + "type": "string", + "enum": [ + "intersects", + "disjoint", + "within", + "contains" + ] + }, + "ingest._types:FailProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "message": { + "description": "The error message thrown by the processor.\nSupports template snippets.", + "type": "string" + } + }, + "required": [ + "message" + ] + } + ] + }, + "ingest._types:ForeachProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true`, the processor silently exits without changing the document if the `field` is `null` or missing.", + "type": "boolean" + }, + "processor": { + "$ref": "#/components/schemas/ingest._types:ProcessorContainer" + } + }, + "required": [ + "field", + "processor" + ] + } + ] + }, + "ingest._types:JsonProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "add_to_root": { + "description": "Flag that forces the parsed JSON to be added at the top level of the document.\n`target_field` must not be set when this option is chosen.", + "type": "boolean" + }, + "add_to_root_conflict_strategy": { + "$ref": "#/components/schemas/ingest._types:JsonProcessorConflictStrategy" + }, + "allow_duplicate_keys": { + "description": "When set to `true`, the JSON parser will not fail if the JSON contains duplicate keys.\nInstead, the last encountered value for any duplicate key wins.", + "type": "boolean" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:JsonProcessorConflictStrategy": { + "type": "string", + "enum": [ + "replace", + "merge" + ] + }, + "ingest._types:UserAgentProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest._types:UserAgentProperty" + } + }, + "regex_file": { + "description": "The name of the file in the `config/ingest-user-agent` directory containing the regular expressions for parsing the user agent string. Both the directory and the file have to be created before starting Elasticsearch. If not specified, ingest-user-agent will use the `regexes.yaml` from uap-core it ships with.", + "type": "string" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:UserAgentProperty": { + "type": "string", + "enum": [ + "NAME", + "MAJOR", + "MINOR", + "PATCH", + "OS", + "OS_NAME", + "OS_MAJOR", + "OS_MINOR", + "DEVICE", + "BUILD" + ] + }, + "ingest._types:KeyValueProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "exclude_keys": { + "description": "List of keys to exclude from document.", + "type": "array", + "items": { + "type": "string" + } + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "field_split": { + "description": "Regex pattern to use for splitting key-value pairs.", + "type": "string" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "include_keys": { + "description": "List of keys to filter and insert into document.\nDefaults to including all keys.", + "type": "array", + "items": { + "type": "string" + } + }, + "prefix": { + "description": "Prefix to be added to extracted keys.", + "type": "string" + }, + "strip_brackets": { + "description": "If `true`. strip brackets `()`, `<>`, `[]` as well as quotes `'` and `\"` from extracted values.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "trim_key": { + "description": "String of characters to trim from extracted keys.", + "type": "string" + }, + "trim_value": { + "description": "String of characters to trim from extracted values.", + "type": "string" + }, + "value_split": { + "description": "Regex pattern to use for splitting the key from the value within a key-value pair.", + "type": "string" + } + }, + "required": [ + "field", + "field_split", + "value_split" + ] + } + ] + }, + "ingest._types:GeoIpProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "database_file": { + "description": "The database filename referring to a database the module ships with (GeoLite2-City.mmdb, GeoLite2-Country.mmdb, or GeoLite2-ASN.mmdb) or a custom database in the ingest-geoip config directory.", + "type": "string" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "first_only": { + "description": "If `true`, only the first found geoip data will be returned, even if the field contains an array.", + "type": "boolean" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "properties": { + "description": "Controls what properties are added to the `target_field` based on the geoip lookup.", + "type": "array", + "items": { + "type": "string" + } + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:GrokProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "pattern_definitions": { + "description": "A map of pattern-name and pattern tuples defining custom patterns to be used by the current processor.\nPatterns matching existing names will override the pre-existing definition.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "patterns": { + "description": "An ordered list of grok expression to match and extract named captures with.\nReturns on the first expression in the list that matches.", + "type": "array", + "items": { + "type": "string" + } + }, + "trace_match": { + "description": "When `true`, `_ingest._grok_match_index` will be inserted into your matched document’s metadata with the index into the pattern found in `patterns` that matched.", + "type": "boolean" + } + }, + "required": [ + "field", + "patterns" + ] + } + ] + }, + "ingest._types:GsubProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "pattern": { + "description": "The pattern to be replaced.", + "type": "string" + }, + "replacement": { + "description": "The string to replace the matching patterns with.", + "type": "string" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field", + "pattern", + "replacement" + ] + } + ] + }, + "ingest._types:JoinProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "separator": { + "description": "The separator character.", + "type": "string" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field", + "separator" + ] + } + ] + }, + "ingest._types:LowercaseProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:RemoveProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Fields" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:RenameProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field", + "target_field" + ] + } + ] + }, + "ingest._types:SetProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "copy_from": { + "$ref": "#/components/schemas/_types:Field" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_empty_value": { + "description": "If `true` and `value` is a template snippet that evaluates to `null` or the empty string, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "media_type": { + "description": "The media type for encoding `value`.\nApplies only when value is a template snippet.\nMust be one of `application/json`, `text/plain`, or `application/x-www-form-urlencoded`.", + "type": "string" + }, + "override": { + "description": "If `true` processor will update fields with pre-existing non-null-valued field.\nWhen set to `false`, such fields will not be touched.", + "type": "boolean" + }, + "value": { + "description": "The value to be set for the field.\nSupports template snippets.\nMay specify only one of `value` or `copy_from`.", + "type": "object" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:SortProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "order": { + "$ref": "#/components/schemas/_types:SortOrder" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:SplitProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "preserve_trailing": { + "description": "Preserves empty trailing fields, if any.", + "type": "boolean" + }, + "separator": { + "description": "A regex which matches the separator, for example, `,` or `\\s+`.", + "type": "string" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field", + "separator" + ] + } + ] + }, + "ingest._types:TrimProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:UppercaseProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:UrlDecodeProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:BytesProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:DissectProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "append_separator": { + "description": "The character(s) that separate the appended fields.", + "type": "string" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "pattern": { + "description": "The pattern to apply to the field.", + "type": "string" + } + }, + "required": [ + "field", + "pattern" + ] + } + ] + }, + "ingest._types:SetSecurityUserProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "properties": { + "description": "Controls what user related properties are added to the field.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "field" + ] + } + ] + }, + "ingest._types:PipelineProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "ignore_missing_pipeline": { + "description": "Whether to ignore missing pipelines instead of failing.", + "type": "boolean" + } + }, + "required": [ + "name" + ] + } + ] + }, + "ingest._types:DropProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object" + } + ] + }, + "ingest._types:CircleProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "error_distance": { + "description": "The difference between the resulting inscribed distance from center to side and the circle’s radius (measured in meters for `geo_shape`, unit-less for `shape`).", + "type": "number" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "ignore_missing": { + "description": "If `true` and `field` does not exist, the processor quietly exits without modifying the document.", + "type": "boolean" + }, + "shape_type": { + "$ref": "#/components/schemas/ingest._types:ShapeType" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "error_distance", + "field", + "shape_type" + ] + } + ] + }, + "ingest._types:ShapeType": { + "type": "string", + "enum": [ + "geo_shape", + "shape" + ] + }, + "ingest._types:InferenceProcessor": { + "allOf": [ + { + "$ref": "#/components/schemas/ingest._types:ProcessorBase" + }, + { + "type": "object", + "properties": { + "model_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "target_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "field_map": { + "description": "Maps the document field names to the known field names of the model.\nThis mapping takes precedence over any default mappings provided in the model configuration.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "inference_config": { + "$ref": "#/components/schemas/ingest._types:InferenceConfig" + } + }, + "required": [ + "model_id" + ] + } + ] + }, + "ingest._types:InferenceConfig": { + "type": "object", + "properties": { + "regression": { + "$ref": "#/components/schemas/ingest._types:InferenceConfigRegression" + }, + "classification": { + "$ref": "#/components/schemas/ingest._types:InferenceConfigClassification" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ingest._types:InferenceConfigRegression": { + "type": "object", + "properties": { + "results_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "num_top_feature_importance_values": { + "description": "Specifies the maximum number of feature importance values per document.", + "type": "number" + } + } + }, + "ingest._types:InferenceConfigClassification": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return.", + "type": "number" + }, + "num_top_feature_importance_values": { + "description": "Specifies the maximum number of feature importance values per document.", + "type": "number" + }, + "results_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "top_classes_results_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "prediction_field_type": { + "description": "Specifies the type of the predicted field to write.\nValid values are: `string`, `number`, `boolean`.", + "type": "string" + } + } + }, + "ingest.simulate:Document": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_source": { + "description": "JSON body for the document.", + "type": "object" + } + }, + "required": [ + "_source" + ] + }, + "ingest.simulate:PipelineSimulation": { + "type": "object", + "properties": { + "doc": { + "$ref": "#/components/schemas/ingest.simulate:DocumentSimulation" + }, + "processor_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ingest.simulate:PipelineSimulation" + } + }, + "tag": { + "type": "string" + }, + "processor_type": { + "type": "string" + }, + "status": { + "$ref": "#/components/schemas/watcher._types:ActionStatusOptions" + } + } + }, + "ingest.simulate:DocumentSimulation": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_ingest": { + "$ref": "#/components/schemas/ingest.simulate:Ingest" + }, + "_routing": { + "description": "Value used to send the document to a specific primary shard.", + "type": "string" + }, + "_source": { + "description": "JSON body for the document.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "_version": { + "$ref": "#/components/schemas/_spec_utils:StringifiedVersionNumber" + }, + "_version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + }, + "required": [ + "_id", + "_index", + "_ingest", + "_source" + ] + }, + "ingest.simulate:Ingest": { + "type": "object", + "properties": { + "timestamp": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "pipeline": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "required": [ + "timestamp" + ] + }, + "_spec_utils:StringifiedVersionNumber": { + "description": "Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior\nis used to capture this behavior while keeping the semantics of the field type.\n\nDepending on the target language, code generators can keep the union or remove it and leniently parse\nstrings to the target type.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + { + "type": "string" + } + ] + }, + "watcher._types:ActionStatusOptions": { + "type": "string", + "enum": [ + "success", + "failure", + "simulated", + "throttled" + ] + }, + "license.get:LicenseInformation": { + "type": "object", + "properties": { + "expiry_date": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "expiry_date_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "issue_date": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "issue_date_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "issued_to": { + "type": "string" + }, + "issuer": { + "type": "string" + }, + "max_nodes": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "max_resource_units": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + }, + "status": { + "$ref": "#/components/schemas/license._types:LicenseStatus" + }, + "type": { + "$ref": "#/components/schemas/license._types:LicenseType" + }, + "uid": { + "$ref": "#/components/schemas/_types:Uuid" + }, + "start_date_in_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + }, + "required": [ + "issue_date", + "issue_date_in_millis", + "issued_to", + "issuer", + "max_nodes", + "status", + "type", + "uid", + "start_date_in_millis" + ] + }, + "license._types:LicenseStatus": { + "type": "string", + "enum": [ + "active", + "valid", + "invalid", + "expired" + ] + }, + "license._types:LicenseType": { + "type": "string", + "enum": [ + "missing", + "trial", + "basic", + "standard", + "dev", + "silver", + "gold", + "platinum", + "enterprise" + ] + }, + "logstash._types:Pipeline": { + "type": "object", + "properties": { + "description": { + "description": "Description of the pipeline.\nThis description is not used by Elasticsearch or Logstash.", + "type": "string" + }, + "last_modified": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "pipeline_metadata": { + "$ref": "#/components/schemas/logstash._types:PipelineMetadata" + }, + "username": { + "description": "User who last updated the pipeline.", + "type": "string" + }, + "pipeline": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html" + }, + "description": "Configuration for the pipeline.", + "type": "string" + }, + "pipeline_settings": { + "$ref": "#/components/schemas/logstash._types:PipelineSettings" + } + }, + "required": [ + "description", + "last_modified", + "pipeline_metadata", + "username", + "pipeline", + "pipeline_settings" + ] + }, + "logstash._types:PipelineMetadata": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "type", + "version" + ] + }, + "logstash._types:PipelineSettings": { + "type": "object", + "properties": { + "pipeline.workers": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html" + }, + "description": "The number of workers that will, in parallel, execute the filter and output stages of the pipeline.", + "type": "number" + }, + "pipeline.batch.size": { + "description": "The maximum number of events an individual worker thread will collect from inputs before attempting to execute its filters and outputs.", + "type": "number" + }, + "pipeline.batch.delay": { + "description": "When creating pipeline event batches, how long in milliseconds to wait for each event before dispatching an undersized batch to pipeline workers.", + "type": "number" + }, + "queue.type": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html" + }, + "description": "The internal queuing model to use for event buffering.", + "type": "string" + }, + "queue.max_bytes.number": { + "description": "The total capacity of the queue (`queue.type: persisted`) in number of bytes.", + "type": "number" + }, + "queue.max_bytes.units": { + "description": "The total capacity of the queue (`queue.type: persisted`) in terms of units of bytes.", + "type": "string" + }, + "queue.checkpoint.writes": { + "description": "The maximum number of written events before forcing a checkpoint when persistent queues are enabled (`queue.type: persisted`).", + "type": "number" + } + }, + "required": [ + "pipeline.workers", + "pipeline.batch.size", + "pipeline.batch.delay", + "queue.type", + "queue.max_bytes.number", + "queue.max_bytes.units", + "queue.checkpoint.writes" + ] + }, + "_global.mget:Operation": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "stored_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + }, + "required": [ + "_id" + ] + }, + "_global.mget:ResponseItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.get:GetResult" + }, + { + "$ref": "#/components/schemas/_global.mget:MultiGetError" + } + ] + }, + "_global.mget:MultiGetError": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "error", + "_id", + "_index" + ] + }, + "ml._types:AnalysisConfig": { + "type": "object", + "properties": { + "bucket_span": { + "$ref": "#/components/schemas/_types:Duration" + }, + "categorization_analyzer": { + "$ref": "#/components/schemas/ml._types:CategorizationAnalyzer" + }, + "categorization_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "categorization_filters": { + "description": "If `categorization_field_name` is specified, you can also define optional filters. This property expects an array of regular expressions. The expressions are used to filter out matching sequences from the categorization field values. You can use this functionality to fine tune the categorization by excluding sequences from consideration when categories are defined. For example, you can exclude SQL statements that appear in your log files. This property cannot be used at the same time as `categorization_analyzer`. If you only want to define simple regular expression filters that are applied prior to tokenization, setting this property is the easiest method. If you also want to customize the tokenizer or post-tokenization filtering, use the `categorization_analyzer` property instead and include the filters as pattern_replace character filters. The effect is exactly the same.", + "type": "array", + "items": { + "type": "string" + } + }, + "detectors": { + "description": "Detector configuration objects specify which data fields a job analyzes. They also specify which analytical functions are used. You can specify multiple detectors for a job. If the detectors array does not contain at least one detector, no analysis can occur and an error is returned.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Detector" + } + }, + "influencers": { + "description": "A comma separated list of influencer field names. Typically these can be the by, over, or partition fields that are used in the detector configuration. You might also want to use a field name that is not specifically named in a detector, but is available as part of the input data. When you use multiple detectors, the use of influencers is recommended as it aggregates results for each influencer entity.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "latency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "model_prune_window": { + "$ref": "#/components/schemas/_types:Duration" + }, + "multivariate_by_fields": { + "description": "This functionality is reserved for internal use. It is not supported for use in customer environments and is not subject to the support SLA of official GA features. If set to `true`, the analysis will automatically find correlations between metrics for a given by field value and report anomalies when those correlations cease to hold. For example, suppose CPU and memory usage on host A is usually highly correlated with the same metrics on host B. Perhaps this correlation occurs because they are running a load-balanced application. If you enable this property, anomalies will be reported when, for example, CPU usage on host A is high and the value of CPU usage on host B is low. That is to say, you’ll see an anomaly when the CPU of host A is unusual given the CPU of host B. To use the `multivariate_by_fields` property, you must also specify `by_field_name` in your detector.", + "type": "boolean" + }, + "per_partition_categorization": { + "$ref": "#/components/schemas/ml._types:PerPartitionCategorization" + }, + "summary_count_field_name": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "detectors" + ] + }, + "ml._types:CategorizationAnalyzer": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/ml._types:CategorizationAnalyzerDefinition" + } + ] + }, + "ml._types:CategorizationAnalyzerDefinition": { + "type": "object", + "properties": { + "char_filter": { + "description": "One or more character filters. In addition to the built-in character filters, other plugins can provide more character filters. If this property is not specified, no character filters are applied prior to categorization. If you are customizing some other aspect of the analyzer and you need to achieve the equivalent of `categorization_filters` (which are not permitted when some other aspect of the analyzer is customized), add them here as pattern replace character filters.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:CharFilter" + } + }, + "filter": { + "description": "One or more token filters. In addition to the built-in token filters, other plugins can provide more token filters. If this property is not specified, no token filters are applied prior to categorization.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.analysis:TokenFilter" + } + }, + "tokenizer": { + "$ref": "#/components/schemas/_types.analysis:Tokenizer" + } + } + }, + "ml._types:Detector": { + "type": "object", + "properties": { + "by_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "custom_rules": { + "description": "Custom rules enable you to customize the way detectors operate. For example, a rule may dictate conditions under which results should be skipped. Kibana refers to custom rules as job rules.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DetectionRule" + } + }, + "detector_description": { + "description": "A description of the detector.", + "type": "string" + }, + "detector_index": { + "description": "A unique identifier for the detector. This identifier is based on the order of the detectors in the `analysis_config`, starting at zero. If you specify a value for this property, it is ignored.", + "type": "number" + }, + "exclude_frequent": { + "$ref": "#/components/schemas/ml._types:ExcludeFrequent" + }, + "field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "function": { + "description": "The analysis function that is used. For example, `count`, `rare`, `mean`, `min`, `max`, or `sum`.", + "type": "string" + }, + "over_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "partition_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "use_null": { + "description": "Defines whether a new series is used as the null series when there is no value for the by or partition fields.", + "type": "boolean" + } + } + }, + "ml._types:DetectionRule": { + "type": "object", + "properties": { + "actions": { + "description": "The set of actions to be triggered when the rule applies. If more than one action is specified the effects of all actions are combined.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:RuleAction" + } + }, + "conditions": { + "description": "An array of numeric conditions when the rule applies. A rule must either have a non-empty scope or at least one condition. Multiple conditions are combined together with a logical AND.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:RuleCondition" + } + }, + "scope": { + "description": "A scope of series where the rule applies. A rule must either have a non-empty scope or at least one condition. By default, the scope includes all series. Scoping is allowed for any of the fields that are also specified in `by_field_name`, `over_field_name`, or `partition_field_name`.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ml._types:FilterRef" + } + } + } + }, + "ml._types:RuleAction": { + "type": "string", + "enum": [ + "skip_result", + "skip_model_update" + ] + }, + "ml._types:RuleCondition": { + "type": "object", + "properties": { + "applies_to": { + "$ref": "#/components/schemas/ml._types:AppliesTo" + }, + "operator": { + "$ref": "#/components/schemas/ml._types:ConditionOperator" + }, + "value": { + "description": "The value that is compared against the `applies_to` field using the operator.", + "type": "number" + } + }, + "required": [ + "applies_to", + "operator", + "value" + ] + }, + "ml._types:AppliesTo": { + "type": "string", + "enum": [ + "actual", + "typical", + "diff_from_typical", + "time" + ] + }, + "ml._types:ConditionOperator": { + "type": "string", + "enum": [ + "gt", + "gte", + "lt", + "lte" + ] + }, + "ml._types:FilterRef": { + "type": "object", + "properties": { + "filter_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "filter_type": { + "$ref": "#/components/schemas/ml._types:FilterType" + } + }, + "required": [ + "filter_id" + ] + }, + "ml._types:FilterType": { + "type": "string", + "enum": [ + "include", + "exclude" + ] + }, + "ml._types:ExcludeFrequent": { + "type": "string", + "enum": [ + "all", + "none", + "by", + "over" + ] + }, + "ml._types:PerPartitionCategorization": { + "type": "object", + "properties": { + "enabled": { + "description": "To enable this setting, you must also set the `partition_field_name` property to the same value in every detector that uses the keyword `mlcategory`. Otherwise, job creation fails.", + "type": "boolean" + }, + "stop_on_warn": { + "description": "This setting can be set to true only if per-partition categorization is enabled. If true, both categorization and subsequent anomaly detection stops for partitions where the categorization status changes to warn. This setting makes it viable to have a job where it is expected that categorization works well for some partitions but not others; you do not pay the cost of bad categorization forever in the partitions where it works badly.", + "type": "boolean" + } + } + }, + "ml._types:DataframeEvaluationContainer": { + "type": "object", + "properties": { + "classification": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationClassification" + }, + "outlier_detection": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationOutlierDetection" + }, + "regression": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationRegression" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:DataframeEvaluationClassification": { + "type": "object", + "properties": { + "actual_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "predicted_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "top_classes_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "metrics": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationClassificationMetrics" + } + }, + "required": [ + "actual_field" + ] + }, + "ml._types:DataframeEvaluationClassificationMetrics": { + "allOf": [ + { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationMetrics" + }, + { + "type": "object", + "properties": { + "accuracy": { + "description": "Accuracy of predictions (per-class and overall).", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "multiclass_confusion_matrix": { + "description": "Multiclass confusion matrix.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + ] + }, + "ml._types:DataframeEvaluationMetrics": { + "type": "object", + "properties": { + "auc_roc": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationClassificationMetricsAucRoc" + }, + "precision": { + "description": "Precision of predictions (per-class and average).", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "recall": { + "description": "Recall of predictions (per-class and average).", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ml._types:DataframeEvaluationClassificationMetricsAucRoc": { + "type": "object", + "properties": { + "class_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "include_curve": { + "description": "Whether or not the curve should be returned in addition to the score. Default value is false.", + "type": "boolean" + } + } + }, + "ml._types:DataframeEvaluationOutlierDetection": { + "type": "object", + "properties": { + "actual_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "predicted_probability_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "metrics": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationOutlierDetectionMetrics" + } + }, + "required": [ + "actual_field", + "predicted_probability_field" + ] + }, + "ml._types:DataframeEvaluationOutlierDetectionMetrics": { + "allOf": [ + { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationMetrics" + }, + { + "type": "object", + "properties": { + "confusion_matrix": { + "description": "Accuracy of predictions (per-class and overall).", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + ] + }, + "ml._types:DataframeEvaluationRegression": { + "type": "object", + "properties": { + "actual_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "predicted_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "metrics": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationRegressionMetrics" + } + }, + "required": [ + "actual_field", + "predicted_field" + ] + }, + "ml._types:DataframeEvaluationRegressionMetrics": { + "type": "object", + "properties": { + "mse": { + "externalDocs": { + "url": "https://en.wikipedia.org/wiki/Mean_squared_error" + }, + "description": "Average squared difference between the predicted values and the actual (ground truth) value. For more information, read this wiki article.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "msle": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationRegressionMetricsMsle" + }, + "huber": { + "$ref": "#/components/schemas/ml._types:DataframeEvaluationRegressionMetricsHuber" + }, + "r_squared": { + "externalDocs": { + "url": "https://en.wikipedia.org/wiki/Coefficient_of_determination" + }, + "description": "Proportion of the variance in the dependent variable that is predictable from the independent variables.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ml._types:DataframeEvaluationRegressionMetricsMsle": { + "type": "object", + "properties": { + "offset": { + "description": "Defines the transition point at which you switch from minimizing quadratic error to minimizing quadratic log error. Defaults to 1.", + "type": "number" + } + } + }, + "ml._types:DataframeEvaluationRegressionMetricsHuber": { + "type": "object", + "properties": { + "delta": { + "description": "Approximates 1/2 (prediction - actual)2 for values much less than delta and approximates a straight line with slope delta for values much larger than delta. Defaults to 1. Delta needs to be greater than 0.", + "type": "number" + } + } + }, + "ml.evaluate_data_frame:DataframeClassificationSummary": { + "type": "object", + "properties": { + "auc_roc": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationSummaryAucRoc" + }, + "accuracy": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeClassificationSummaryAccuracy" + }, + "multiclass_confusion_matrix": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeClassificationSummaryMulticlassConfusionMatrix" + }, + "precision": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeClassificationSummaryPrecision" + }, + "recall": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeClassificationSummaryRecall" + } + } + }, + "ml.evaluate_data_frame:DataframeEvaluationSummaryAucRoc": { + "allOf": [ + { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + }, + { + "type": "object", + "properties": { + "curve": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationSummaryAucRocCurveItem" + } + } + } + } + ] + }, + "ml.evaluate_data_frame:DataframeEvaluationSummaryAucRocCurveItem": { + "type": "object", + "properties": { + "tpr": { + "type": "number" + }, + "fpr": { + "type": "number" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "tpr", + "fpr", + "threshold" + ] + }, + "ml.evaluate_data_frame:DataframeEvaluationValue": { + "type": "object", + "properties": { + "value": { + "type": "number" + } + }, + "required": [ + "value" + ] + }, + "ml.evaluate_data_frame:DataframeClassificationSummaryAccuracy": { + "type": "object", + "properties": { + "classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationClass" + } + }, + "overall_accuracy": { + "type": "number" + } + }, + "required": [ + "classes", + "overall_accuracy" + ] + }, + "ml.evaluate_data_frame:DataframeEvaluationClass": { + "allOf": [ + { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + }, + { + "type": "object", + "properties": { + "class_name": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "required": [ + "class_name" + ] + } + ] + }, + "ml.evaluate_data_frame:DataframeClassificationSummaryMulticlassConfusionMatrix": { + "type": "object", + "properties": { + "confusion_matrix": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:ConfusionMatrixItem" + } + }, + "other_actual_class_count": { + "type": "number" + } + }, + "required": [ + "confusion_matrix", + "other_actual_class_count" + ] + }, + "ml.evaluate_data_frame:ConfusionMatrixItem": { + "type": "object", + "properties": { + "actual_class": { + "$ref": "#/components/schemas/_types:Name" + }, + "actual_class_doc_count": { + "type": "number" + }, + "predicted_classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:ConfusionMatrixPrediction" + } + }, + "other_predicted_class_doc_count": { + "type": "number" + } + }, + "required": [ + "actual_class", + "actual_class_doc_count", + "predicted_classes", + "other_predicted_class_doc_count" + ] + }, + "ml.evaluate_data_frame:ConfusionMatrixPrediction": { + "type": "object", + "properties": { + "predicted_class": { + "$ref": "#/components/schemas/_types:Name" + }, + "count": { + "type": "number" + } + }, + "required": [ + "predicted_class", + "count" + ] + }, + "ml.evaluate_data_frame:DataframeClassificationSummaryPrecision": { + "type": "object", + "properties": { + "classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationClass" + } + }, + "avg_precision": { + "type": "number" + } + }, + "required": [ + "classes", + "avg_precision" + ] + }, + "ml.evaluate_data_frame:DataframeClassificationSummaryRecall": { + "type": "object", + "properties": { + "classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationClass" + } + }, + "avg_recall": { + "type": "number" + } + }, + "required": [ + "classes", + "avg_recall" + ] + }, + "ml.evaluate_data_frame:DataframeOutlierDetectionSummary": { + "type": "object", + "properties": { + "auc_roc": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationSummaryAucRoc" + }, + "precision": { + "description": "Set the different thresholds of the outlier score at where the metric is calculated.", + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "recall": { + "description": "Set the different thresholds of the outlier score at where the metric is calculated.", + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "confusion_matrix": { + "description": "Set the different thresholds of the outlier score at where the metrics (`tp` - true positive, `fp` - false positive, `tn` - true negative, `fn` - false negative) are calculated.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:ConfusionMatrixThreshold" + } + } + } + }, + "ml.evaluate_data_frame:ConfusionMatrixThreshold": { + "type": "object", + "properties": { + "tp": { + "description": "True Positive", + "type": "number" + }, + "fp": { + "description": "False Positive", + "type": "number" + }, + "tn": { + "description": "True Negative", + "type": "number" + }, + "fn": { + "description": "False Negative", + "type": "number" + } + }, + "required": [ + "tp", + "fp", + "tn", + "fn" + ] + }, + "ml.evaluate_data_frame:DataframeRegressionSummary": { + "type": "object", + "properties": { + "huber": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + }, + "mse": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + }, + "msle": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + }, + "r_squared": { + "$ref": "#/components/schemas/ml.evaluate_data_frame:DataframeEvaluationValue" + } + } + }, + "ml._types:CalendarEvent": { + "type": "object", + "properties": { + "calendar_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "event_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "description": { + "description": "A description of the scheduled event.", + "type": "string" + }, + "end_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "start_time": { + "$ref": "#/components/schemas/_types:DateTime" + } + }, + "required": [ + "description", + "end_time", + "start_time" + ] + }, + "ml._types:Page": { + "type": "object", + "properties": { + "from": { + "description": "Skips the specified number of items.", + "type": "number" + }, + "size": { + "description": "Specifies the maximum number of items to obtain.", + "type": "number" + } + } + }, + "ml.get_calendars:Calendar": { + "type": "object", + "properties": { + "calendar_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "description": { + "description": "A description of the calendar.", + "type": "string" + }, + "job_ids": { + "description": "An array of anomaly detection job identifiers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + } + }, + "required": [ + "calendar_id", + "job_ids" + ] + }, + "ml._types:DataframeAnalyticsSummary": { + "type": "object", + "properties": { + "allow_lazy_start": { + "type": "boolean" + }, + "analysis": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisContainer" + }, + "analyzed_fields": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + }, + "authorization": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsAuthorization" + }, + "create_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "description": { + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsDestination" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_num_threads": { + "type": "number" + }, + "model_memory_limit": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSource" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + } + }, + "required": [ + "analysis", + "dest", + "id", + "source" + ] + }, + "ml._types:DataframeAnalysisContainer": { + "type": "object", + "properties": { + "classification": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisClassification" + }, + "outlier_detection": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisOutlierDetection" + }, + "regression": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisRegression" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:DataframeAnalysisClassification": { + "allOf": [ + { + "$ref": "#/components/schemas/ml._types:DataframeAnalysis" + }, + { + "type": "object", + "properties": { + "class_assignment_objective": { + "type": "string" + }, + "num_top_classes": { + "description": "Defines the number of categories for which the predicted probabilities are reported. It must be non-negative or -1. If it is -1 or greater than the total number of categories, probabilities are reported for all categories; if you have a large number of categories, there could be a significant effect on the size of your destination index. NOTE: To use the AUC ROC evaluation method, `num_top_classes` must be set to -1 or a value greater than or equal to the total number of categories.", + "type": "number" + } + } + } + ] + }, + "ml._types:DataframeAnalysis": { + "type": "object", + "properties": { + "alpha": { + "description": "Advanced configuration option. Machine learning uses loss guided tree growing, which means that the decision trees grow where the regularized loss decreases most quickly. This parameter affects loss calculations by acting as a multiplier of the tree depth. Higher alpha values result in shallower trees and faster training times. By default, this value is calculated during hyperparameter optimization. It must be greater than or equal to zero.", + "type": "number" + }, + "dependent_variable": { + "description": "Defines which field of the document is to be predicted. It must match one of the fields in the index being used to train. If this field is missing from a document, then that document will not be used for training, but a prediction with the trained model will be generated for it. It is also known as continuous target variable.\nFor classification analysis, the data type of the field must be numeric (`integer`, `short`, `long`, `byte`), categorical (`ip` or `keyword`), or `boolean`. There must be no more than 30 different values in this field.\nFor regression analysis, the data type of the field must be numeric.", + "type": "string" + }, + "downsample_factor": { + "description": "Advanced configuration option. Controls the fraction of data that is used to compute the derivatives of the loss function for tree training. A small value results in the use of a small fraction of the data. If this value is set to be less than 1, accuracy typically improves. However, too small a value may result in poor convergence for the ensemble and so require more trees. By default, this value is calculated during hyperparameter optimization. It must be greater than zero and less than or equal to 1.", + "type": "number" + }, + "early_stopping_enabled": { + "description": "Advanced configuration option. Specifies whether the training process should finish if it is not finding any better performing models. If disabled, the training process can take significantly longer and the chance of finding a better performing model is unremarkable.", + "type": "boolean" + }, + "eta": { + "description": "Advanced configuration option. The shrinkage applied to the weights. Smaller values result in larger forests which have a better generalization error. However, larger forests cause slower training. By default, this value is calculated during hyperparameter optimization. It must be a value between 0.001 and 1.", + "type": "number" + }, + "eta_growth_rate_per_tree": { + "description": "Advanced configuration option. Specifies the rate at which `eta` increases for each new tree that is added to the forest. For example, a rate of 1.05 increases `eta` by 5% for each extra tree. By default, this value is calculated during hyperparameter optimization. It must be between 0.5 and 2.", + "type": "number" + }, + "feature_bag_fraction": { + "description": "Advanced configuration option. Defines the fraction of features that will be used when selecting a random bag for each candidate split. By default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "feature_processors": { + "description": "Advanced configuration option. A collection of feature preprocessors that modify one or more included fields. The analysis uses the resulting one or more features instead of the original document field. However, these features are ephemeral; they are not stored in the destination index. Multiple `feature_processors` entries can refer to the same document fields. Automatic categorical feature encoding still occurs for the fields that are unprocessed by a custom processor or that have categorical values. Use this property only if you want to override the automatic feature encoding of the specified fields.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessor" + } + }, + "gamma": { + "description": "Advanced configuration option. Regularization parameter to prevent overfitting on the training data set. Multiplies a linear penalty associated with the size of individual trees in the forest. A high gamma value causes training to prefer small trees. A small gamma value results in larger individual trees and slower training. By default, this value is calculated during hyperparameter optimization. It must be a nonnegative value.", + "type": "number" + }, + "lambda": { + "description": "Advanced configuration option. Regularization parameter to prevent overfitting on the training data set. Multiplies an L2 regularization term which applies to leaf weights of the individual trees in the forest. A high lambda value causes training to favor small leaf weights. This behavior makes the prediction function smoother at the expense of potentially not being able to capture relevant relationships between the features and the dependent variable. A small lambda value results in large individual trees and slower training. By default, this value is calculated during hyperparameter optimization. It must be a nonnegative value.", + "type": "number" + }, + "max_optimization_rounds_per_hyperparameter": { + "description": "Advanced configuration option. A multiplier responsible for determining the maximum number of hyperparameter optimization steps in the Bayesian optimization procedure. The maximum number of steps is determined based on the number of undefined hyperparameters times the maximum optimization rounds per hyperparameter. By default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "max_trees": { + "description": "Advanced configuration option. Defines the maximum number of decision trees in the forest. The maximum value is 2000. By default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "num_top_feature_importance_values": { + "description": "Advanced configuration option. Specifies the maximum number of feature importance values per document to return. By default, no feature importance calculation occurs.", + "type": "number" + }, + "prediction_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "randomize_seed": { + "description": "Defines the seed for the random generator that is used to pick training data. By default, it is randomly generated. Set it to a specific value to use the same training data each time you start a job (assuming other related parameters such as `source` and `analyzed_fields` are the same).", + "type": "number" + }, + "soft_tree_depth_limit": { + "description": "Advanced configuration option. Machine learning uses loss guided tree growing, which means that the decision trees grow where the regularized loss decreases most quickly. This soft limit combines with the `soft_tree_depth_tolerance` to penalize trees that exceed the specified depth; the regularized loss increases quickly beyond this depth. By default, this value is calculated during hyperparameter optimization. It must be greater than or equal to 0.", + "type": "number" + }, + "soft_tree_depth_tolerance": { + "description": "Advanced configuration option. This option controls how quickly the regularized loss increases when the tree depth exceeds `soft_tree_depth_limit`. By default, this value is calculated during hyperparameter optimization. It must be greater than or equal to 0.01.", + "type": "number" + }, + "training_percent": { + "$ref": "#/components/schemas/_types:Percentage" + } + }, + "required": [ + "dependent_variable" + ] + }, + "ml._types:DataframeAnalysisFeatureProcessor": { + "type": "object", + "properties": { + "frequency_encoding": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessorFrequencyEncoding" + }, + "multi_encoding": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessorMultiEncoding" + }, + "n_gram_encoding": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessorNGramEncoding" + }, + "one_hot_encoding": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessorOneHotEncoding" + }, + "target_mean_encoding": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisFeatureProcessorTargetMeanEncoding" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:DataframeAnalysisFeatureProcessorFrequencyEncoding": { + "type": "object", + "properties": { + "feature_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "frequency_map": { + "description": "The resulting frequency map for the field value. If the field value is missing from the frequency_map, the resulting value is 0.", + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "required": [ + "feature_name", + "field", + "frequency_map" + ] + }, + "ml._types:DataframeAnalysisFeatureProcessorMultiEncoding": { + "type": "object", + "properties": { + "processors": { + "description": "The ordered array of custom processors to execute. Must be more than 1.", + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": [ + "processors" + ] + }, + "ml._types:DataframeAnalysisFeatureProcessorNGramEncoding": { + "type": "object", + "properties": { + "feature_prefix": { + "description": "The feature name prefix. Defaults to ngram__.", + "type": "string" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "length": { + "description": "Specifies the length of the n-gram substring. Defaults to 50. Must be greater than 0.", + "type": "number" + }, + "n_grams": { + "description": "Specifies which n-grams to gather. It’s an array of integer values where the minimum value is 1, and a maximum value is 5.", + "type": "array", + "items": { + "type": "number" + } + }, + "start": { + "description": "Specifies the zero-indexed start of the n-gram substring. Negative values are allowed for encoding n-grams of string suffixes. Defaults to 0.", + "type": "number" + }, + "custom": { + "type": "boolean" + } + }, + "required": [ + "field", + "n_grams" + ] + }, + "ml._types:DataframeAnalysisFeatureProcessorOneHotEncoding": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "hot_map": { + "description": "The one hot map mapping the field value with the column name.", + "type": "string" + } + }, + "required": [ + "field", + "hot_map" + ] + }, + "ml._types:DataframeAnalysisFeatureProcessorTargetMeanEncoding": { + "type": "object", + "properties": { + "default_value": { + "description": "The default value if field value is not found in the target_map.", + "type": "number" + }, + "feature_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "target_map": { + "description": "The field value to target mean transition map.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "required": [ + "default_value", + "feature_name", + "field", + "target_map" + ] + }, + "_types:Percentage": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "ml._types:DataframeAnalysisOutlierDetection": { + "type": "object", + "properties": { + "compute_feature_influence": { + "description": "Specifies whether the feature influence calculation is enabled.", + "type": "boolean" + }, + "feature_influence_threshold": { + "description": "The minimum outlier score that a document needs to have in order to calculate its feature influence score. Value range: 0-1.", + "type": "number" + }, + "method": { + "description": "The method that outlier detection uses. Available methods are `lof`, `ldof`, `distance_kth_nn`, `distance_knn`, and `ensemble`. The default value is ensemble, which means that outlier detection uses an ensemble of different methods and normalises and combines their individual outlier scores to obtain the overall outlier score.", + "type": "string" + }, + "n_neighbors": { + "description": "Defines the value for how many nearest neighbors each method of outlier detection uses to calculate its outlier score. When the value is not set, different values are used for different ensemble members. This default behavior helps improve the diversity in the ensemble; only override it if you are confident that the value you choose is appropriate for the data set.", + "type": "number" + }, + "outlier_fraction": { + "description": "The proportion of the data set that is assumed to be outlying prior to outlier detection. For example, 0.05 means it is assumed that 5% of values are real outliers and 95% are inliers.", + "type": "number" + }, + "standardization_enabled": { + "description": "If true, the following operation is performed on the columns before computing outlier scores: `(x_i - mean(x_i)) / sd(x_i)`.", + "type": "boolean" + } + } + }, + "ml._types:DataframeAnalysisRegression": { + "allOf": [ + { + "$ref": "#/components/schemas/ml._types:DataframeAnalysis" + }, + { + "type": "object", + "properties": { + "loss_function": { + "description": "The loss function used during regression. Available options are `mse` (mean squared error), `msle` (mean squared logarithmic error), `huber` (Pseudo-Huber loss).", + "type": "string" + }, + "loss_function_parameter": { + "description": "A positive number that is used as a parameter to the `loss_function`.", + "type": "number" + } + } + } + ] + }, + "ml._types:DataframeAnalysisAnalyzedFields": { + "type": "object", + "properties": { + "includes": { + "description": "An array of strings that defines the fields that will be excluded from the analysis. You do not need to add fields with unsupported data types to excludes, these fields are excluded from the analysis automatically.", + "type": "array", + "items": { + "type": "string" + } + }, + "excludes": { + "description": "An array of strings that defines the fields that will be included in the analysis.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "includes", + "excludes" + ] + }, + "ml._types:DataframeAnalyticsAuthorization": { + "type": "object", + "properties": { + "api_key": { + "$ref": "#/components/schemas/ml._types:ApiKeyAuthorization" + }, + "roles": { + "description": "If a user ID was used for the most recent update to the job, its roles at the time of the update are listed in the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "service_account": { + "description": "If a service account was used for the most recent update to the job, the account name is listed in the response.", + "type": "string" + } + } + }, + "ml._types:ApiKeyAuthorization": { + "type": "object", + "properties": { + "id": { + "description": "The identifier for the API key.", + "type": "string" + }, + "name": { + "description": "The name of the API key.", + "type": "string" + } + }, + "required": [ + "id", + "name" + ] + }, + "ml._types:DataframeAnalyticsDestination": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "results_field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "index" + ] + }, + "ml._types:DataframeAnalyticsSource": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:Indices" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "_source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + } + }, + "required": [ + "index" + ] + }, + "ml._types:DataframeAnalytics": { + "type": "object", + "properties": { + "analysis_stats": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsContainer" + }, + "assignment_explanation": { + "description": "For running jobs only, contains messages relating to the selection of a node to run the job.", + "type": "string" + }, + "data_counts": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsDataCounts" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "memory_usage": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsMemoryUsage" + }, + "progress": { + "description": "The progress report of the data frame analytics job by phase.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsProgress" + } + }, + "state": { + "$ref": "#/components/schemas/ml._types:DataframeState" + } + }, + "required": [ + "data_counts", + "id", + "memory_usage", + "progress", + "state" + ] + }, + "ml._types:DataframeAnalyticsStatsContainer": { + "type": "object", + "properties": { + "classification_stats": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsHyperparameters" + }, + "outlier_detection_stats": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsOutlierDetection" + }, + "regression_stats": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsStatsHyperparameters" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:DataframeAnalyticsStatsHyperparameters": { + "type": "object", + "properties": { + "hyperparameters": { + "$ref": "#/components/schemas/ml._types:Hyperparameters" + }, + "iteration": { + "description": "The number of iterations on the analysis.", + "type": "number" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "timing_stats": { + "$ref": "#/components/schemas/ml._types:TimingStats" + }, + "validation_loss": { + "$ref": "#/components/schemas/ml._types:ValidationLoss" + } + }, + "required": [ + "hyperparameters", + "iteration", + "timestamp", + "timing_stats", + "validation_loss" + ] + }, + "ml._types:Hyperparameters": { + "type": "object", + "properties": { + "alpha": { + "description": "Advanced configuration option.\nMachine learning uses loss guided tree growing, which means that the decision trees grow where the regularized loss decreases most quickly.\nThis parameter affects loss calculations by acting as a multiplier of the tree depth.\nHigher alpha values result in shallower trees and faster training times.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be greater than or equal to zero.", + "type": "number" + }, + "lambda": { + "description": "Advanced configuration option.\nRegularization parameter to prevent overfitting on the training data set.\nMultiplies an L2 regularization term which applies to leaf weights of the individual trees in the forest.\nA high lambda value causes training to favor small leaf weights.\nThis behavior makes the prediction function smoother at the expense of potentially not being able to capture relevant relationships between the features and the dependent variable.\nA small lambda value results in large individual trees and slower training.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be a nonnegative value.", + "type": "number" + }, + "gamma": { + "description": "Advanced configuration option.\nRegularization parameter to prevent overfitting on the training data set.\nMultiplies a linear penalty associated with the size of individual trees in the forest.\nA high gamma value causes training to prefer small trees.\nA small gamma value results in larger individual trees and slower training.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be a nonnegative value.", + "type": "number" + }, + "eta": { + "description": "Advanced configuration option.\nThe shrinkage applied to the weights.\nSmaller values result in larger forests which have a better generalization error.\nHowever, larger forests cause slower training.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be a value between `0.001` and `1`.", + "type": "number" + }, + "eta_growth_rate_per_tree": { + "description": "Advanced configuration option.\nSpecifies the rate at which `eta` increases for each new tree that is added to the forest.\nFor example, a rate of 1.05 increases `eta` by 5% for each extra tree.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be between `0.5` and `2`.", + "type": "number" + }, + "feature_bag_fraction": { + "description": "Advanced configuration option.\nDefines the fraction of features that will be used when selecting a random bag for each candidate split.\nBy default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "downsample_factor": { + "description": "Advanced configuration option.\nControls the fraction of data that is used to compute the derivatives of the loss function for tree training.\nA small value results in the use of a small fraction of the data.\nIf this value is set to be less than 1, accuracy typically improves.\nHowever, too small a value may result in poor convergence for the ensemble and so require more trees.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be greater than zero and less than or equal to 1.", + "type": "number" + }, + "max_attempts_to_add_tree": { + "description": "If the algorithm fails to determine a non-trivial tree (more than a single leaf), this parameter determines how many of such consecutive failures are tolerated.\nOnce the number of attempts exceeds the threshold, the forest training stops.", + "type": "number" + }, + "max_optimization_rounds_per_hyperparameter": { + "description": "Advanced configuration option.\nA multiplier responsible for determining the maximum number of hyperparameter optimization steps in the Bayesian optimization procedure.\nThe maximum number of steps is determined based on the number of undefined hyperparameters times the maximum optimization rounds per hyperparameter.\nBy default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "max_trees": { + "description": "Advanced configuration option.\nDefines the maximum number of decision trees in the forest.\nThe maximum value is 2000.\nBy default, this value is calculated during hyperparameter optimization.", + "type": "number" + }, + "num_folds": { + "description": "The maximum number of folds for the cross-validation procedure.", + "type": "number" + }, + "num_splits_per_feature": { + "description": "Determines the maximum number of splits for every feature that can occur in a decision tree when the tree is trained.", + "type": "number" + }, + "soft_tree_depth_limit": { + "description": "Advanced configuration option.\nMachine learning uses loss guided tree growing, which means that the decision trees grow where the regularized loss decreases most quickly.\nThis soft limit combines with the `soft_tree_depth_tolerance` to penalize trees that exceed the specified depth; the regularized loss increases quickly beyond this depth.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be greater than or equal to 0.", + "type": "number" + }, + "soft_tree_depth_tolerance": { + "description": "Advanced configuration option.\nThis option controls how quickly the regularized loss increases when the tree depth exceeds `soft_tree_depth_limit`.\nBy default, this value is calculated during hyperparameter optimization.\nIt must be greater than or equal to 0.01.", + "type": "number" + } + } + }, + "ml._types:TimingStats": { + "type": "object", + "properties": { + "elapsed_time": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "iteration_time": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + } + }, + "required": [ + "elapsed_time" + ] + }, + "ml._types:ValidationLoss": { + "type": "object", + "properties": { + "fold_values": { + "description": "Validation loss values for every added decision tree during the forest growing procedure.", + "type": "array", + "items": { + "type": "string" + } + }, + "loss_type": { + "description": "The type of the loss metric. For example, binomial_logistic.", + "type": "string" + } + }, + "required": [ + "fold_values", + "loss_type" + ] + }, + "ml._types:DataframeAnalyticsStatsOutlierDetection": { + "type": "object", + "properties": { + "parameters": { + "$ref": "#/components/schemas/ml._types:OutlierDetectionParameters" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "timing_stats": { + "$ref": "#/components/schemas/ml._types:TimingStats" + } + }, + "required": [ + "parameters", + "timestamp", + "timing_stats" + ] + }, + "ml._types:OutlierDetectionParameters": { + "type": "object", + "properties": { + "compute_feature_influence": { + "description": "Specifies whether the feature influence calculation is enabled.", + "type": "boolean" + }, + "feature_influence_threshold": { + "description": "The minimum outlier score that a document needs to have in order to calculate its feature influence score.\nValue range: 0-1", + "type": "number" + }, + "method": { + "description": "The method that outlier detection uses.\nAvailable methods are `lof`, `ldof`, `distance_kth_nn`, `distance_knn`, and `ensemble`.\nThe default value is ensemble, which means that outlier detection uses an ensemble of different methods and normalises and combines their individual outlier scores to obtain the overall outlier score.", + "type": "string" + }, + "n_neighbors": { + "description": "Defines the value for how many nearest neighbors each method of outlier detection uses to calculate its outlier score.\nWhen the value is not set, different values are used for different ensemble members.\nThis default behavior helps improve the diversity in the ensemble; only override it if you are confident that the value you choose is appropriate for the data set.", + "type": "number" + }, + "outlier_fraction": { + "description": "The proportion of the data set that is assumed to be outlying prior to outlier detection.\nFor example, 0.05 means it is assumed that 5% of values are real outliers and 95% are inliers.", + "type": "number" + }, + "standardization_enabled": { + "description": "If `true`, the following operation is performed on the columns before computing outlier scores: (x_i - mean(x_i)) / sd(x_i).", + "type": "boolean" + } + } + }, + "ml._types:DataframeAnalyticsStatsDataCounts": { + "type": "object", + "properties": { + "skipped_docs_count": { + "description": "The number of documents that are skipped during the analysis because they contained values that are not supported by the analysis. For example, outlier detection does not support missing fields so it skips documents with missing fields. Likewise, all types of analysis skip documents that contain arrays with more than one element.", + "type": "number" + }, + "test_docs_count": { + "description": "The number of documents that are not used for training the model and can be used for testing.", + "type": "number" + }, + "training_docs_count": { + "description": "The number of documents that are used for training the model.", + "type": "number" + } + }, + "required": [ + "skipped_docs_count", + "test_docs_count", + "training_docs_count" + ] + }, + "ml._types:DataframeAnalyticsStatsMemoryUsage": { + "type": "object", + "properties": { + "memory_reestimate_bytes": { + "description": "This value is present when the status is hard_limit and it is a new estimate of how much memory the job needs.", + "type": "number" + }, + "peak_usage_bytes": { + "description": "The number of bytes used at the highest peak of memory usage.", + "type": "number" + }, + "status": { + "description": "The memory usage status.", + "type": "string" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + }, + "required": [ + "peak_usage_bytes", + "status" + ] + }, + "ml._types:DataframeAnalyticsStatsProgress": { + "type": "object", + "properties": { + "phase": { + "description": "Defines the phase of the data frame analytics job.", + "type": "string" + }, + "progress_percent": { + "description": "The progress that the data frame analytics job has made expressed in percentage.", + "type": "number" + } + }, + "required": [ + "phase", + "progress_percent" + ] + }, + "ml._types:DataframeState": { + "type": "string", + "enum": [ + "started", + "stopped", + "starting", + "stopping", + "failed" + ] + }, + "ml._types:DatafeedStats": { + "type": "object", + "properties": { + "assignment_explanation": { + "description": "For started datafeeds only, contains messages relating to the selection of a node.", + "type": "string" + }, + "datafeed_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "state": { + "$ref": "#/components/schemas/ml._types:DatafeedState" + }, + "timing_stats": { + "$ref": "#/components/schemas/ml._types:DatafeedTimingStats" + }, + "running_state": { + "$ref": "#/components/schemas/ml._types:DatafeedRunningState" + } + }, + "required": [ + "datafeed_id", + "state", + "timing_stats" + ] + }, + "ml._types:DatafeedTimingStats": { + "type": "object", + "properties": { + "bucket_count": { + "description": "The number of buckets processed.", + "type": "number" + }, + "exponential_average_search_time_per_hour_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "search_count": { + "description": "The number of searches run by the datafeed.", + "type": "number" + }, + "total_search_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "average_search_time_per_bucket_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + } + }, + "required": [ + "bucket_count", + "exponential_average_search_time_per_hour_ms", + "job_id", + "search_count", + "total_search_time_ms" + ] + }, + "_types:DurationValueUnitFloatMillis": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitFloatMillis" + } + ] + }, + "_types:UnitFloatMillis": { + "description": "Time unit for fractional milliseconds", + "type": "number" + }, + "ml._types:DatafeedRunningState": { + "type": "object", + "properties": { + "real_time_configured": { + "description": "Indicates if the datafeed is \"real-time\"; meaning that the datafeed has no configured `end` time.", + "type": "boolean" + }, + "real_time_running": { + "description": "Indicates whether the datafeed has finished running on the available past data.\nFor datafeeds without a configured `end` time, this means that the datafeed is now running on \"real-time\" data.", + "type": "boolean" + }, + "search_interval": { + "$ref": "#/components/schemas/ml._types:RunningStateSearchInterval" + } + }, + "required": [ + "real_time_configured", + "real_time_running" + ] + }, + "ml._types:RunningStateSearchInterval": { + "type": "object", + "properties": { + "end": { + "$ref": "#/components/schemas/_types:Duration" + }, + "end_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "start": { + "$ref": "#/components/schemas/_types:Duration" + }, + "start_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + } + }, + "required": [ + "end_ms", + "start_ms" + ] + }, + "ml._types:Datafeed": { + "type": "object", + "properties": { + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "authorization": { + "$ref": "#/components/schemas/ml._types:DatafeedAuthorization" + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "datafeed_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "type": "array", + "items": { + "type": "string" + } + }, + "indexes": { + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_empty_searches": { + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "script_fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "type": "number" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + } + }, + "required": [ + "datafeed_id", + "indices", + "job_id", + "query", + "delayed_data_check_config" + ] + }, + "ml._types:DatafeedAuthorization": { + "type": "object", + "properties": { + "api_key": { + "$ref": "#/components/schemas/ml._types:ApiKeyAuthorization" + }, + "roles": { + "description": "If a user ID was used for the most recent update to the datafeed, its roles at the time of the update are listed in the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "service_account": { + "description": "If a service account was used for the most recent update to the datafeed, the account name is listed in the response.", + "type": "string" + } + } + }, + "ml._types:ChunkingConfig": { + "type": "object", + "properties": { + "mode": { + "$ref": "#/components/schemas/ml._types:ChunkingMode" + }, + "time_span": { + "$ref": "#/components/schemas/_types:Duration" + } + }, + "required": [ + "mode" + ] + }, + "ml._types:ChunkingMode": { + "type": "string", + "enum": [ + "auto", + "manual", + "off" + ] + }, + "ml._types:DelayedDataCheckConfig": { + "type": "object", + "properties": { + "check_window": { + "$ref": "#/components/schemas/_types:Duration" + }, + "enabled": { + "description": "Specifies whether the datafeed periodically checks for delayed data.", + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "_types:IndicesOptions": { + "type": "object", + "properties": { + "allow_no_indices": { + "description": "If false, the request returns an error if any wildcard expression, index alias, or `_all` value targets only\nmissing or closed indices. This behavior applies even if the request targets other open indices. For example,\na request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`.", + "type": "boolean" + }, + "expand_wildcards": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "ignore_unavailable": { + "description": "If true, missing or closed indices are not included in the response.", + "type": "boolean" + }, + "ignore_throttled": { + "description": "If true, concrete, expanded or aliased indices are ignored when frozen.", + "type": "boolean" + } + } + }, + "ml._types:Filter": { + "type": "object", + "properties": { + "description": { + "description": "A description of the filter.", + "type": "string" + }, + "filter_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "items": { + "description": "An array of strings which is the filter item list.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "filter_id", + "items" + ] + }, + "ml._types:JobStats": { + "type": "object", + "properties": { + "assignment_explanation": { + "description": "For open anomaly detection jobs only, contains messages relating to the selection of a node to run the job.", + "type": "string" + }, + "data_counts": { + "$ref": "#/components/schemas/ml._types:DataCounts" + }, + "forecasts_stats": { + "$ref": "#/components/schemas/ml._types:JobForecastStatistics" + }, + "job_id": { + "description": "Identifier for the anomaly detection job.", + "type": "string" + }, + "model_size_stats": { + "$ref": "#/components/schemas/ml._types:ModelSizeStats" + }, + "open_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "state": { + "$ref": "#/components/schemas/ml._types:JobState" + }, + "timing_stats": { + "$ref": "#/components/schemas/ml._types:JobTimingStats" + }, + "deleting": { + "description": "Indicates that the process of deleting the job is in progress but not yet completed. It is only reported when `true`.", + "type": "boolean" + } + }, + "required": [ + "data_counts", + "forecasts_stats", + "job_id", + "model_size_stats", + "state", + "timing_stats" + ] + }, + "ml._types:DataCounts": { + "type": "object", + "properties": { + "bucket_count": { + "type": "number" + }, + "earliest_record_timestamp": { + "type": "number" + }, + "empty_bucket_count": { + "type": "number" + }, + "input_bytes": { + "type": "number" + }, + "input_field_count": { + "type": "number" + }, + "input_record_count": { + "type": "number" + }, + "invalid_date_count": { + "type": "number" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "last_data_time": { + "type": "number" + }, + "latest_empty_bucket_timestamp": { + "type": "number" + }, + "latest_record_timestamp": { + "type": "number" + }, + "latest_sparse_bucket_timestamp": { + "type": "number" + }, + "latest_bucket_timestamp": { + "type": "number" + }, + "log_time": { + "type": "number" + }, + "missing_field_count": { + "type": "number" + }, + "out_of_order_timestamp_count": { + "type": "number" + }, + "processed_field_count": { + "type": "number" + }, + "processed_record_count": { + "type": "number" + }, + "sparse_bucket_count": { + "type": "number" + } + }, + "required": [ + "bucket_count", + "empty_bucket_count", + "input_bytes", + "input_field_count", + "input_record_count", + "invalid_date_count", + "job_id", + "missing_field_count", + "out_of_order_timestamp_count", + "processed_field_count", + "processed_record_count", + "sparse_bucket_count" + ] + }, + "ml._types:JobForecastStatistics": { + "type": "object", + "properties": { + "memory_bytes": { + "$ref": "#/components/schemas/ml._types:JobStatistics" + }, + "processing_time_ms": { + "$ref": "#/components/schemas/ml._types:JobStatistics" + }, + "records": { + "$ref": "#/components/schemas/ml._types:JobStatistics" + }, + "status": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "total": { + "type": "number" + }, + "forecasted_jobs": { + "type": "number" + } + }, + "required": [ + "total", + "forecasted_jobs" + ] + }, + "ml._types:JobStatistics": { + "type": "object", + "properties": { + "avg": { + "type": "number" + }, + "max": { + "type": "number" + }, + "min": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "avg", + "max", + "min", + "total" + ] + }, + "ml._types:ModelSizeStats": { + "type": "object", + "properties": { + "bucket_allocation_failures_count": { + "type": "number" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "log_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "memory_status": { + "$ref": "#/components/schemas/ml._types:MemoryStatus" + }, + "model_bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "model_bytes_exceeded": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "model_bytes_memory_limit": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "peak_model_bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "assignment_memory_basis": { + "type": "string" + }, + "result_type": { + "type": "string" + }, + "total_by_field_count": { + "type": "number" + }, + "total_over_field_count": { + "type": "number" + }, + "total_partition_field_count": { + "type": "number" + }, + "categorization_status": { + "$ref": "#/components/schemas/ml._types:CategorizationStatus" + }, + "categorized_doc_count": { + "type": "number" + }, + "dead_category_count": { + "type": "number" + }, + "failed_category_count": { + "type": "number" + }, + "frequent_category_count": { + "type": "number" + }, + "rare_category_count": { + "type": "number" + }, + "total_category_count": { + "type": "number" + }, + "timestamp": { + "type": "number" + } + }, + "required": [ + "bucket_allocation_failures_count", + "job_id", + "log_time", + "memory_status", + "model_bytes", + "result_type", + "total_by_field_count", + "total_over_field_count", + "total_partition_field_count", + "categorization_status", + "categorized_doc_count", + "dead_category_count", + "failed_category_count", + "frequent_category_count", + "rare_category_count", + "total_category_count" + ] + }, + "ml._types:JobTimingStats": { + "type": "object", + "properties": { + "average_bucket_processing_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "bucket_count": { + "type": "number" + }, + "exponential_average_bucket_processing_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "exponential_average_bucket_processing_time_per_hour_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "total_bucket_processing_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "maximum_bucket_processing_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "minimum_bucket_processing_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + } + }, + "required": [ + "bucket_count", + "exponential_average_bucket_processing_time_per_hour_ms", + "job_id", + "total_bucket_processing_time_ms" + ] + }, + "ml._types:Job": { + "type": "object", + "properties": { + "allow_lazy_open": { + "description": "Advanced configuration option.\nSpecifies whether this job can open when there is insufficient machine learning node capacity for it to be immediately assigned to a node.", + "type": "boolean" + }, + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfig" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisLimits" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "blocked": { + "$ref": "#/components/schemas/ml._types:JobBlocked" + }, + "create_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "custom_settings": { + "$ref": "#/components/schemas/ml._types:CustomSettings" + }, + "daily_model_snapshot_retention_after_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job.\nIt specifies a period of time (in days) after which only the first snapshot per day is retained.\nThis period is relative to the timestamp of the most recent snapshot for this job.\nValid values range from 0 to `model_snapshot_retention_days`.", + "type": "number" + }, + "data_description": { + "$ref": "#/components/schemas/ml._types:DataDescription" + }, + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:Datafeed" + }, + "deleting": { + "description": "Indicates that the process of deleting the job is in progress but not yet completed.\nIt is only reported when `true`.", + "type": "boolean" + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "finished_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "groups": { + "description": "A list of job groups.\nA job can belong to no groups or many.", + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "job_type": { + "description": "Reserved for future use, currently set to `anomaly_detector`.", + "type": "string" + }, + "job_version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_snapshot_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "model_snapshot_retention_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job.\nIt specifies the maximum period of time (in days) that snapshots are retained.\nThis period is relative to the timestamp of the most recent snapshot for this job.\nBy default, snapshots ten days older than the newest snapshot are deleted.", + "type": "number" + }, + "renormalization_window_days": { + "description": "Advanced configuration option.\nThe period over which adjustments to the score are applied, as new data is seen.\nThe default value is the longer of 30 days or 100 `bucket_spans`.", + "type": "number" + }, + "results_index_name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "results_retention_days": { + "description": "Advanced configuration option.\nThe period of time (in days) that results are retained.\nAge is calculated relative to the timestamp of the latest bucket result.\nIf this property has a non-null value, once per day at 00:30 (server time), results that are the specified number of days older than the latest bucket result are deleted from Elasticsearch.\nThe default value is null, which means all results are retained.\nAnnotations generated by the system also count as results for retention purposes; they are deleted after the same number of days as results.\nAnnotations added by users are retained forever.", + "type": "number" + } + }, + "required": [ + "allow_lazy_open", + "analysis_config", + "data_description", + "job_id", + "model_snapshot_retention_days", + "results_index_name" + ] + }, + "ml._types:AnalysisLimits": { + "type": "object", + "properties": { + "categorization_examples_limit": { + "description": "The maximum number of examples stored per category in memory and in the results data store. If you increase this value, more examples are available, however it requires that you have more storage available. If you set this value to 0, no examples are stored. NOTE: The `categorization_examples_limit` applies only to analysis that uses categorization.", + "type": "number" + }, + "model_memory_limit": { + "description": "The approximate maximum amount of memory resources that are required for analytical processing. Once this limit is approached, data pruning becomes more aggressive. Upon exceeding this limit, new entities are not modeled. If the `xpack.ml.max_model_memory_limit` setting has a value greater than 0 and less than 1024mb, that value is used instead of the default. The default value is relatively small to ensure that high resource usage is a conscious decision. If you have jobs that are expected to analyze high cardinality fields, you will likely need to use a higher value. If you specify a number instead of a string, the units are assumed to be MiB. Specifying a string is recommended for clarity. If you specify a byte size unit of `b` or `kb` and the number does not equate to a discrete number of megabytes, it is rounded down to the closest MiB. The minimum valid value is 1 MiB. If you specify a value less than 1 MiB, an error occurs. If you specify a value for the `xpack.ml.max_model_memory_limit` setting, an error occurs when you try to create jobs that have `model_memory_limit` values greater than that setting value.", + "type": "string" + } + } + }, + "ml._types:JobBlocked": { + "type": "object", + "properties": { + "reason": { + "$ref": "#/components/schemas/ml._types:JobBlockedReason" + }, + "task_id": { + "$ref": "#/components/schemas/_types:TaskId" + } + }, + "required": [ + "reason" + ] + }, + "ml._types:JobBlockedReason": { + "type": "string", + "enum": [ + "delete", + "reset", + "revert" + ] + }, + "ml._types:CustomSettings": { + "description": "Custom metadata about the job", + "type": "object" + }, + "ml._types:DataDescription": { + "type": "object", + "properties": { + "format": { + "description": "Only JSON format is supported at this time.", + "type": "string" + }, + "time_field": { + "$ref": "#/components/schemas/_types:Field" + }, + "time_format": { + "description": "The time format, which can be `epoch`, `epoch_ms`, or a custom pattern. The value `epoch` refers to UNIX or Epoch time (the number of seconds since 1 Jan 1970). The value `epoch_ms` indicates that time is measured in milliseconds since the epoch. The `epoch` and `epoch_ms` time formats accept either integer or real values. Custom patterns must conform to the Java DateTimeFormatter class. When you use date-time formatting patterns, it is recommended that you provide the full date, time and time zone. For example: `yyyy-MM-dd'T'HH:mm:ssX`. If the pattern that you specify is not sufficient to produce a complete timestamp, job creation fails.", + "type": "string" + }, + "field_delimiter": { + "type": "string" + } + } + }, + "ml._types:ModelPlotConfig": { + "type": "object", + "properties": { + "annotations_enabled": { + "description": "If true, enables calculation and storage of the model change annotations for each entity that is being analyzed.", + "type": "boolean" + }, + "enabled": { + "description": "If true, enables calculation and storage of the model bounds for each entity that is being analyzed.", + "type": "boolean" + }, + "terms": { + "$ref": "#/components/schemas/_types:Field" + } + } + }, + "ml._types:OverallBucket": { + "type": "object", + "properties": { + "bucket_span": { + "$ref": "#/components/schemas/_types:DurationValueUnitSeconds" + }, + "is_interim": { + "description": "If true, this is an interim result. In other words, the results are calculated based on partial input data.", + "type": "boolean" + }, + "jobs": { + "description": "An array of objects that contain the max_anomaly_score per job_id.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:OverallBucketJob" + } + }, + "overall_score": { + "description": "The top_n average of the maximum bucket anomaly_score per job.", + "type": "number" + }, + "result_type": { + "description": "Internal. This is always set to overall_bucket.", + "type": "string" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "timestamp_string": { + "$ref": "#/components/schemas/_types:DateTime" + } + }, + "required": [ + "bucket_span", + "is_interim", + "jobs", + "overall_score", + "result_type", + "timestamp", + "timestamp_string" + ] + }, + "_types:DurationValueUnitSeconds": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:UnitSeconds" + } + ] + }, + "ml._types:OverallBucketJob": { + "type": "object", + "properties": { + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_anomaly_score": { + "type": "number" + } + }, + "required": [ + "job_id", + "max_anomaly_score" + ] + }, + "ml._types:Include": { + "type": "string", + "enum": [ + "definition", + "feature_importance_baseline", + "hyperparameters", + "total_feature_importance", + "definition_status" + ] + }, + "ml._types:TrainedModelConfig": { + "type": "object", + "properties": { + "model_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "model_type": { + "$ref": "#/components/schemas/ml._types:TrainedModelType" + }, + "tags": { + "description": "A comma delimited string of tags. A trained model can have many tags, or none.", + "type": "array", + "items": { + "type": "string" + } + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "compressed_definition": { + "type": "string" + }, + "created_by": { + "description": "Information on the creator of the trained model.", + "type": "string" + }, + "create_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "default_field_map": { + "description": "Any field map described in the inference configuration takes precedence.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": { + "description": "The free-text description of the trained model.", + "type": "string" + }, + "estimated_heap_memory_usage_bytes": { + "description": "The estimated heap usage in bytes to keep the trained model in memory.", + "type": "number" + }, + "estimated_operations": { + "description": "The estimated number of operations to use the trained model.", + "type": "number" + }, + "fully_defined": { + "description": "True if the full model definition is present.", + "type": "boolean" + }, + "inference_config": { + "$ref": "#/components/schemas/ml._types:InferenceConfigCreateContainer" + }, + "input": { + "$ref": "#/components/schemas/ml._types:TrainedModelConfigInput" + }, + "license_level": { + "description": "The license level of the trained model.", + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/ml._types:TrainedModelConfigMetadata" + }, + "model_size_bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "location": { + "$ref": "#/components/schemas/ml._types:TrainedModelLocation" + } + }, + "required": [ + "model_id", + "tags", + "input" + ] + }, + "ml._types:TrainedModelType": { + "type": "string", + "enum": [ + "tree_ensemble", + "lang_ident", + "pytorch" + ] + }, + "ml._types:InferenceConfigCreateContainer": { + "description": "Inference configuration provided when storing the model config", + "type": "object", + "properties": { + "regression": { + "$ref": "#/components/schemas/ml._types:RegressionInferenceOptions" + }, + "classification": { + "$ref": "#/components/schemas/ml._types:ClassificationInferenceOptions" + }, + "text_classification": { + "$ref": "#/components/schemas/ml._types:TextClassificationInferenceOptions" + }, + "zero_shot_classification": { + "$ref": "#/components/schemas/ml._types:ZeroShotClassificationInferenceOptions" + }, + "fill_mask": { + "$ref": "#/components/schemas/ml._types:FillMaskInferenceOptions" + }, + "ner": { + "$ref": "#/components/schemas/ml._types:NerInferenceOptions" + }, + "pass_through": { + "$ref": "#/components/schemas/ml._types:PassThroughInferenceOptions" + }, + "text_embedding": { + "$ref": "#/components/schemas/ml._types:TextEmbeddingInferenceOptions" + }, + "text_expansion": { + "$ref": "#/components/schemas/ml._types:TextExpansionInferenceOptions" + }, + "question_answering": { + "$ref": "#/components/schemas/ml._types:QuestionAnsweringInferenceOptions" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:TextClassificationInferenceOptions": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "classification_labels": { + "description": "Classification labels to apply other than the stored labels. Must have the same deminsions as the default configured labels", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ml._types:TokenizationConfigContainer": { + "description": "Tokenization options stored in inference configuration", + "type": "object", + "properties": { + "bert": { + "$ref": "#/components/schemas/ml._types:NlpBertTokenizationConfig" + }, + "mpnet": { + "$ref": "#/components/schemas/ml._types:NlpBertTokenizationConfig" + }, + "roberta": { + "$ref": "#/components/schemas/ml._types:NlpRobertaTokenizationConfig" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:NlpBertTokenizationConfig": { + "type": "object", + "properties": { + "do_lower_case": { + "description": "Should the tokenizer lower case the text", + "type": "boolean" + }, + "with_special_tokens": { + "description": "Is tokenization completed with special tokens", + "type": "boolean" + }, + "max_sequence_length": { + "description": "Maximum input sequence length for the model", + "type": "number" + }, + "truncate": { + "$ref": "#/components/schemas/ml._types:TokenizationTruncate" + }, + "span": { + "description": "Tokenization spanning options. Special value of -1 indicates no spanning takes place", + "type": "number" + } + } + }, + "ml._types:TokenizationTruncate": { + "type": "string", + "enum": [ + "first", + "second", + "none" + ] + }, + "ml._types:NlpRobertaTokenizationConfig": { + "type": "object", + "properties": { + "add_prefix_space": { + "description": "Should the tokenizer prefix input with a space character", + "type": "boolean" + }, + "with_special_tokens": { + "description": "Is tokenization completed with special tokens", + "type": "boolean" + }, + "max_sequence_length": { + "description": "Maximum input sequence length for the model", + "type": "number" + }, + "truncate": { + "$ref": "#/components/schemas/ml._types:TokenizationTruncate" + }, + "span": { + "description": "Tokenization spanning options. Special value of -1 indicates no spanning takes place", + "type": "number" + } + } + }, + "ml._types:ZeroShotClassificationInferenceOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "hypothesis_template": { + "description": "Hypothesis template used when tokenizing labels for prediction", + "type": "string" + }, + "classification_labels": { + "description": "The zero shot classification labels indicating entailment, neutral, and contradiction\nMust contain exactly and only entailment, neutral, and contradiction", + "type": "array", + "items": { + "type": "string" + } + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "multi_label": { + "description": "Indicates if more than one true label exists.", + "type": "boolean" + }, + "labels": { + "description": "The labels to predict.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "classification_labels" + ] + }, + "ml._types:FillMaskInferenceOptions": { + "type": "object", + "properties": { + "mask_token": { + "description": "The string/token which will be removed from incoming documents and replaced with the inference prediction(s).\nIn a response, this field contains the mask token for the specified model/tokenizer. Each model and tokenizer\nhas a predefined mask token which cannot be changed. Thus, it is recommended not to set this value in requests.\nHowever, if this field is present in a request, its value must match the predefined value for that model/tokenizer,\notherwise the request will fail.", + "type": "string" + }, + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:NerInferenceOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "classification_labels": { + "description": "The token classification labels. Must be IOB formatted tags", + "type": "array", + "items": { + "type": "string" + } + }, + "vocabulary": { + "$ref": "#/components/schemas/ml._types:Vocabulary" + } + } + }, + "ml._types:Vocabulary": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "index" + ] + }, + "ml._types:PassThroughInferenceOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "vocabulary": { + "$ref": "#/components/schemas/ml._types:Vocabulary" + } + } + }, + "ml._types:TextEmbeddingInferenceOptions": { + "type": "object", + "properties": { + "embedding_size": { + "description": "The number of dimensions in the embedding output", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:TextExpansionInferenceOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:QuestionAnsweringInferenceOptions": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:TokenizationConfigContainer" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "max_answer_length": { + "description": "The maximum answer length to consider", + "type": "number" + } + } + }, + "ml._types:TrainedModelConfigInput": { + "type": "object", + "properties": { + "field_names": { + "description": "An array of input field names for the model.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + } + }, + "required": [ + "field_names" + ] + }, + "ml._types:TrainedModelConfigMetadata": { + "type": "object", + "properties": { + "model_aliases": { + "type": "array", + "items": { + "type": "string" + } + }, + "feature_importance_baseline": { + "description": "An object that contains the baseline for feature importance values. For regression analysis, it is a single value. For classification analysis, there is a value for each class.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "hyperparameters": { + "description": "List of the available hyperparameters optimized during the fine_parameter_tuning phase as well as specified by the user.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:Hyperparameter" + } + }, + "total_feature_importance": { + "description": "An array of the total feature importance for each feature used from the training data set. This array of objects is returned if data frame analytics trained the model and the request includes total_feature_importance in the include request parameter.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TotalFeatureImportance" + } + } + } + }, + "ml._types:Hyperparameter": { + "type": "object", + "properties": { + "absolute_importance": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/dfa-regression-lossfunction.html" + }, + "description": "A positive number showing how much the parameter influences the variation of the loss function. For hyperparameters with values that are not specified by the user but tuned during hyperparameter optimization.", + "type": "number" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "relative_importance": { + "description": "A number between 0 and 1 showing the proportion of influence on the variation of the loss function among all tuned hyperparameters. For hyperparameters with values that are not specified by the user but tuned during hyperparameter optimization.", + "type": "number" + }, + "supplied": { + "description": "Indicates if the hyperparameter is specified by the user (true) or optimized (false).", + "type": "boolean" + }, + "value": { + "description": "The value of the hyperparameter, either optimized or specified by the user.", + "type": "number" + } + }, + "required": [ + "name", + "supplied", + "value" + ] + }, + "ml._types:TotalFeatureImportance": { + "type": "object", + "properties": { + "feature_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "importance": { + "description": "A collection of feature importance statistics related to the training data set for this particular feature.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TotalFeatureImportanceStatistics" + } + }, + "classes": { + "description": "If the trained model is a classification model, feature importance statistics are gathered per target class value.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TotalFeatureImportanceClass" + } + } + }, + "required": [ + "feature_name", + "importance", + "classes" + ] + }, + "ml._types:TotalFeatureImportanceStatistics": { + "type": "object", + "properties": { + "mean_magnitude": { + "description": "The average magnitude of this feature across all the training data. This value is the average of the absolute values of the importance for this feature.", + "type": "number" + }, + "max": { + "description": "The maximum importance value across all the training data for this feature.", + "type": "number" + }, + "min": { + "description": "The minimum importance value across all the training data for this feature.", + "type": "number" + } + }, + "required": [ + "mean_magnitude", + "max", + "min" + ] + }, + "ml._types:TotalFeatureImportanceClass": { + "type": "object", + "properties": { + "class_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "importance": { + "description": "A collection of feature importance statistics related to the training data set for this particular feature.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TotalFeatureImportanceStatistics" + } + } + }, + "required": [ + "class_name", + "importance" + ] + }, + "ml._types:TrainedModelLocation": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/ml._types:TrainedModelLocationIndex" + } + }, + "required": [ + "index" + ] + }, + "ml._types:TrainedModelLocationIndex": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "name" + ] + }, + "ml._types:TrainedModelStats": { + "type": "object", + "properties": { + "deployment_stats": { + "$ref": "#/components/schemas/ml._types:TrainedModelDeploymentStats" + }, + "inference_stats": { + "$ref": "#/components/schemas/ml._types:TrainedModelInferenceStats" + }, + "ingest": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html" + }, + "description": "A collection of ingest stats for the model across all nodes.\nThe values are summations of the individual node statistics.\nThe format matches the ingest section in the nodes stats API.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "model_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "model_size_stats": { + "$ref": "#/components/schemas/ml._types:TrainedModelSizeStats" + }, + "pipeline_count": { + "description": "The number of ingest pipelines that currently refer to the model.", + "type": "number" + } + }, + "required": [ + "model_id", + "model_size_stats", + "pipeline_count" + ] + }, + "ml._types:TrainedModelDeploymentStats": { + "type": "object", + "properties": { + "allocation_status": { + "$ref": "#/components/schemas/ml._types:TrainedModelDeploymentAllocationStatus" + }, + "cache_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "deployment_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "error_count": { + "description": "The sum of `error_count` for all nodes in the deployment.", + "type": "number" + }, + "inference_count": { + "description": "The sum of `inference_count` for all nodes in the deployment.", + "type": "number" + }, + "model_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "nodes": { + "$ref": "#/components/schemas/ml._types:TrainedModelDeploymentNodesStats" + }, + "number_of_allocations": { + "description": "The number of allocations requested.", + "type": "number" + }, + "queue_capacity": { + "description": "The number of inference requests that can be queued before new requests are rejected.", + "type": "number" + }, + "rejected_execution_count": { + "description": "The sum of `rejected_execution_count` for all nodes in the deployment.\nIndividual nodes reject an inference request if the inference queue is full.\nThe queue size is controlled by the `queue_capacity` setting in the start\ntrained model deployment API.", + "type": "number" + }, + "reason": { + "description": "The reason for the current deployment state. Usually only populated when\nthe model is not deployed to a node.", + "type": "string" + }, + "start_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "state": { + "$ref": "#/components/schemas/ml._types:DeploymentState" + }, + "threads_per_allocation": { + "description": "The number of threads used be each allocation during inference.", + "type": "number" + }, + "timeout_count": { + "description": "The sum of `timeout_count` for all nodes in the deployment.", + "type": "number" + } + }, + "required": [ + "allocation_status", + "deployment_id", + "error_count", + "inference_count", + "model_id", + "nodes", + "number_of_allocations", + "queue_capacity", + "rejected_execution_count", + "reason", + "start_time", + "state", + "threads_per_allocation", + "timeout_count" + ] + }, + "ml._types:TrainedModelDeploymentAllocationStatus": { + "type": "object", + "properties": { + "allocation_count": { + "description": "The current number of nodes where the model is allocated.", + "type": "number" + }, + "state": { + "$ref": "#/components/schemas/ml._types:DeploymentAllocationState" + }, + "target_allocation_count": { + "description": "The desired number of nodes for model allocation.", + "type": "number" + } + }, + "required": [ + "allocation_count", + "state", + "target_allocation_count" + ] + }, + "ml._types:DeploymentAllocationState": { + "type": "string", + "enum": [ + "started", + "starting", + "fully_allocated" + ] + }, + "ml._types:TrainedModelDeploymentNodesStats": { + "type": "object", + "properties": { + "average_inference_time_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "error_count": { + "description": "The number of errors when evaluating the trained model.", + "type": "number" + }, + "inference_count": { + "description": "The total number of inference calls made against this node for this model.", + "type": "number" + }, + "last_access": { + "description": "The epoch time stamp of the last inference call for the model on this node.", + "type": "number" + }, + "number_of_allocations": { + "description": "The number of allocations assigned to this node.", + "type": "number" + }, + "number_of_pending_requests": { + "description": "The number of inference requests queued to be processed.", + "type": "number" + }, + "rejection_execution_count": { + "description": "The number of inference requests that were not processed because the queue was full.", + "type": "number" + }, + "routing_state": { + "$ref": "#/components/schemas/ml._types:TrainedModelAssignmentRoutingTable" + }, + "start_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "threads_per_allocation": { + "description": "The number of threads used by each allocation during inference.", + "type": "number" + }, + "timeout_count": { + "description": "The number of inference requests that timed out before being processed.", + "type": "number" + } + }, + "required": [ + "average_inference_time_ms", + "error_count", + "inference_count", + "last_access", + "number_of_allocations", + "number_of_pending_requests", + "rejection_execution_count", + "routing_state", + "start_time", + "threads_per_allocation", + "timeout_count" + ] + }, + "ml._types:TrainedModelAssignmentRoutingTable": { + "type": "object", + "properties": { + "reason": { + "description": "The reason for the current state. It is usually populated only when the\n`routing_state` is `failed`.", + "type": "string" + }, + "routing_state": { + "$ref": "#/components/schemas/ml._types:RoutingState" + }, + "current_allocations": { + "description": "Current number of allocations.", + "type": "number" + }, + "target_allocations": { + "description": "Target number of allocations.", + "type": "number" + } + }, + "required": [ + "reason", + "routing_state", + "current_allocations", + "target_allocations" + ] + }, + "ml._types:RoutingState": { + "type": "string", + "enum": [ + "failed", + "started", + "starting", + "stopped", + "stopping" + ] + }, + "ml._types:DeploymentState": { + "type": "string", + "enum": [ + "started", + "starting", + "stopping" + ] + }, + "ml._types:TrainedModelInferenceStats": { + "type": "object", + "properties": { + "cache_miss_count": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-settings.html" + }, + "description": "The number of times the model was loaded for inference and was not retrieved from the cache.\nIf this number is close to the `inference_count`, the cache is not being appropriately used.\nThis can be solved by increasing the cache size or its time-to-live (TTL).\nRefer to general machine learning settings for the appropriate settings.", + "type": "number" + }, + "failure_count": { + "description": "The number of failures when using the model for inference.", + "type": "number" + }, + "inference_count": { + "description": "The total number of times the model has been called for inference.\nThis is across all inference contexts, including all pipelines.", + "type": "number" + }, + "missing_all_fields_count": { + "description": "The number of inference calls where all the training features for the model were missing.", + "type": "number" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:DateTime" + } + }, + "required": [ + "cache_miss_count", + "failure_count", + "inference_count", + "missing_all_fields_count", + "timestamp" + ] + }, + "ml._types:TrainedModelSizeStats": { + "type": "object", + "properties": { + "model_size_bytes": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "required_native_memory_bytes": { + "description": "The amount of memory required to load the model in bytes.", + "type": "number" + } + }, + "required": [ + "model_size_bytes", + "required_native_memory_bytes" + ] + }, + "ml._types:InferenceConfigUpdateContainer": { + "type": "object", + "properties": { + "regression": { + "$ref": "#/components/schemas/ml._types:RegressionInferenceOptions" + }, + "classification": { + "$ref": "#/components/schemas/ml._types:ClassificationInferenceOptions" + }, + "text_classification": { + "$ref": "#/components/schemas/ml._types:TextClassificationInferenceUpdateOptions" + }, + "zero_shot_classification": { + "$ref": "#/components/schemas/ml._types:ZeroShotClassificationInferenceUpdateOptions" + }, + "fill_mask": { + "$ref": "#/components/schemas/ml._types:FillMaskInferenceUpdateOptions" + }, + "ner": { + "$ref": "#/components/schemas/ml._types:NerInferenceUpdateOptions" + }, + "pass_through": { + "$ref": "#/components/schemas/ml._types:PassThroughInferenceUpdateOptions" + }, + "text_embedding": { + "$ref": "#/components/schemas/ml._types:TextEmbeddingInferenceUpdateOptions" + }, + "text_expansion": { + "$ref": "#/components/schemas/ml._types:TextExpansionInferenceUpdateOptions" + }, + "question_answering": { + "$ref": "#/components/schemas/ml._types:QuestionAnsweringInferenceUpdateOptions" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml._types:TextClassificationInferenceUpdateOptions": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "classification_labels": { + "description": "Classification labels to apply other than the stored labels. Must have the same deminsions as the default configured labels", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ml._types:NlpTokenizationUpdateOptions": { + "type": "object", + "properties": { + "truncate": { + "$ref": "#/components/schemas/ml._types:TokenizationTruncate" + }, + "span": { + "description": "Span options to apply", + "type": "number" + } + } + }, + "ml._types:ZeroShotClassificationInferenceUpdateOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "multi_label": { + "description": "Update the configured multi label option. Indicates if more than one true label exists. Defaults to the configured value.", + "type": "boolean" + }, + "labels": { + "description": "The labels to predict.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + }, + "ml._types:FillMaskInferenceUpdateOptions": { + "type": "object", + "properties": { + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:NerInferenceUpdateOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:PassThroughInferenceUpdateOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:TextEmbeddingInferenceUpdateOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:TextExpansionInferenceUpdateOptions": { + "type": "object", + "properties": { + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + } + } + }, + "ml._types:QuestionAnsweringInferenceUpdateOptions": { + "type": "object", + "properties": { + "question": { + "description": "The question to answer given the inference context", + "type": "string" + }, + "num_top_classes": { + "description": "Specifies the number of top class predictions to return. Defaults to 0.", + "type": "number" + }, + "tokenization": { + "$ref": "#/components/schemas/ml._types:NlpTokenizationUpdateOptions" + }, + "results_field": { + "description": "The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value.", + "type": "string" + }, + "max_answer_length": { + "description": "The maximum answer length to consider for extraction", + "type": "number" + } + }, + "required": [ + "question" + ] + }, + "ml._types:InferenceResponseResult": { + "type": "object", + "properties": { + "entities": { + "description": "If the model is trained for named entity recognition (NER) tasks, the response contains the recognized entities.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TrainedModelEntities" + } + }, + "is_truncated": { + "description": "Indicates whether the input text was truncated to meet the model's maximum sequence length limit. This property\nis present only when it is true.", + "type": "boolean" + }, + "predicted_value": { + "description": "If the model is trained for a text classification or zero shot classification task, the response is the\npredicted class.\nFor named entity recognition (NER) tasks, it contains the annotated text output.\nFor fill mask tasks, it contains the top prediction for replacing the mask token.\nFor text embedding tasks, it contains the raw numerical text embedding values.\nFor regression models, its a numerical value\nFor classification models, it may be an integer, double, boolean or string depending on prediction type", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:PredictedValue" + } + }, + "predicted_value_sequence": { + "description": "For fill mask tasks, the response contains the input text sequence with the mask token replaced by the predicted\nvalue.\nAdditionally", + "type": "string" + }, + "prediction_probability": { + "description": "Specifies a probability for the predicted value.", + "type": "number" + }, + "prediction_score": { + "description": "Specifies a confidence score for the predicted value.", + "type": "number" + }, + "top_classes": { + "description": "For fill mask, text classification, and zero shot classification tasks, the response contains a list of top\nclass entries.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TopClassEntry" + } + }, + "warning": { + "description": "If the request failed, the response contains the reason for the failure.", + "type": "string" + }, + "feature_importance": { + "description": "The feature importance for the inference results. Relevant only for classification or regression models", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TrainedModelInferenceFeatureImportance" + } + } + } + }, + "ml._types:TrainedModelEntities": { + "type": "object", + "properties": { + "class_name": { + "type": "string" + }, + "class_probability": { + "type": "number" + }, + "entity": { + "type": "string" + }, + "start_pos": { + "type": "number" + }, + "end_pos": { + "type": "number" + } + }, + "required": [ + "class_name", + "class_probability", + "entity", + "start_pos", + "end_pos" + ] + }, + "ml._types:PredictedValue": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "ml._types:TopClassEntry": { + "type": "object", + "properties": { + "class_name": { + "type": "string" + }, + "class_probability": { + "type": "number" + }, + "class_score": { + "type": "number" + } + }, + "required": [ + "class_name", + "class_probability", + "class_score" + ] + }, + "ml._types:TrainedModelInferenceFeatureImportance": { + "type": "object", + "properties": { + "feature_name": { + "type": "string" + }, + "importance": { + "type": "number" + }, + "classes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:TrainedModelInferenceClassImportance" + } + } + }, + "required": [ + "feature_name" + ] + }, + "ml._types:TrainedModelInferenceClassImportance": { + "type": "object", + "properties": { + "class_name": { + "type": "string" + }, + "importance": { + "type": "number" + } + }, + "required": [ + "class_name", + "importance" + ] + }, + "ml.preview_data_frame_analytics:DataframePreviewConfig": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/ml._types:DataframeAnalyticsSource" + }, + "analysis": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisContainer" + }, + "model_memory_limit": { + "type": "string" + }, + "max_num_threads": { + "type": "number" + }, + "analyzed_fields": { + "$ref": "#/components/schemas/ml._types:DataframeAnalysisAnalyzedFields" + } + }, + "required": [ + "source", + "analysis" + ] + }, + "ml._types:DatafeedConfig": { + "type": "object", + "properties": { + "aggregations": { + "description": "If set, the datafeed performs aggregation searches. Support for aggregations is limited and should be used only with low cardinality data.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "chunking_config": { + "$ref": "#/components/schemas/ml._types:ChunkingConfig" + }, + "datafeed_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "delayed_data_check_config": { + "$ref": "#/components/schemas/ml._types:DelayedDataCheckConfig" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "indices": { + "description": "An array of index names. Wildcards are supported. If any indices are in remote clusters, the machine learning nodes must have the `remote_cluster_client` role.", + "type": "array", + "items": { + "type": "string" + } + }, + "indices_options": { + "$ref": "#/components/schemas/_types:IndicesOptions" + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "max_empty_searches": { + "description": "If a real-time datafeed has never seen any data (including during any initial training period) then it will automatically stop itself and close its associated job after this many real-time searches that return no documents. In other words, it will stop after `frequency` times `max_empty_searches` of real-time operation. If not set then a datafeed with no end time that sees no data will remain started until it is explicitly stopped.", + "type": "number" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "query_delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "script_fields": { + "description": "Specifies scripts that evaluate custom expressions and returns script fields to the datafeed. The detector configuration objects in a job can contain functions that use these script fields.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "scroll_size": { + "description": "The size parameter that is used in Elasticsearch searches when the datafeed does not use aggregations. The maximum value is the value of `index.max_result_window`, which is 10,000 by default.", + "type": "number" + } + } + }, + "ml._types:JobConfig": { + "type": "object", + "properties": { + "allow_lazy_open": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html" + }, + "description": "Advanced configuration option. Specifies whether this job can open when there is insufficient machine learning node capacity for it to be immediately assigned to a node.", + "type": "boolean" + }, + "analysis_config": { + "$ref": "#/components/schemas/ml._types:AnalysisConfig" + }, + "analysis_limits": { + "$ref": "#/components/schemas/ml._types:AnalysisLimits" + }, + "background_persist_interval": { + "$ref": "#/components/schemas/_types:Duration" + }, + "custom_settings": { + "$ref": "#/components/schemas/ml._types:CustomSettings" + }, + "daily_model_snapshot_retention_after_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job.\nIt specifies a period of time (in days) after which only the first snapshot per day is retained.\nThis period is relative to the timestamp of the most recent snapshot for this job.", + "type": "number" + }, + "data_description": { + "$ref": "#/components/schemas/ml._types:DataDescription" + }, + "datafeed_config": { + "$ref": "#/components/schemas/ml._types:DatafeedConfig" + }, + "description": { + "description": "A description of the job.", + "type": "string" + }, + "groups": { + "description": "A list of job groups. A job can belong to no groups or many.", + "type": "array", + "items": { + "type": "string" + } + }, + "job_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "job_type": { + "description": "Reserved for future use, currently set to `anomaly_detector`.", + "type": "string" + }, + "model_plot_config": { + "$ref": "#/components/schemas/ml._types:ModelPlotConfig" + }, + "model_snapshot_retention_days": { + "description": "Advanced configuration option, which affects the automatic removal of old model snapshots for this job.\nIt specifies the maximum period of time (in days) that snapshots are retained.\nThis period is relative to the timestamp of the most recent snapshot for this job.\nThe default value is `10`, which means snapshots ten days older than the newest snapshot are deleted.", + "type": "number" + }, + "renormalization_window_days": { + "description": "Advanced configuration option.\nThe period over which adjustments to the score are applied, as new data is seen.\nThe default value is the longer of 30 days or 100 `bucket_spans`.", + "type": "number" + }, + "results_index_name": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "results_retention_days": { + "description": "Advanced configuration option.\nThe period of time (in days) that results are retained.\nAge is calculated relative to the timestamp of the latest bucket result.\nIf this property has a non-null value, once per day at 00:30 (server time), results that are the specified number of days older than the latest bucket result are deleted from Elasticsearch.\nThe default value is null, which means all results are retained.\nAnnotations generated by the system also count as results for retention purposes; they are deleted after the same number of days as results.\nAnnotations added by users are retained forever.", + "type": "number" + } + }, + "required": [ + "analysis_config", + "data_description" + ] + }, + "_types:HttpHeaders": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + } + }, + "ml._types:AnalysisConfigRead": { + "type": "object", + "properties": { + "bucket_span": { + "$ref": "#/components/schemas/_types:Duration" + }, + "categorization_analyzer": { + "$ref": "#/components/schemas/ml._types:CategorizationAnalyzer" + }, + "categorization_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "categorization_filters": { + "description": "If `categorization_field_name` is specified, you can also define optional filters.\nThis property expects an array of regular expressions.\nThe expressions are used to filter out matching sequences from the categorization field values.", + "type": "array", + "items": { + "type": "string" + } + }, + "detectors": { + "description": "An array of detector configuration objects.\nDetector configuration objects specify which data fields a job analyzes.\nThey also specify which analytical functions are used.\nYou can specify multiple detectors for a job.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DetectorRead" + } + }, + "influencers": { + "description": "A comma separated list of influencer field names.\nTypically these can be the by, over, or partition fields that are used in the detector configuration.\nYou might also want to use a field name that is not specifically named in a detector, but is available as part of the input data.\nWhen you use multiple detectors, the use of influencers is recommended as it aggregates results for each influencer entity.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "model_prune_window": { + "$ref": "#/components/schemas/_types:Duration" + }, + "latency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "multivariate_by_fields": { + "description": "This functionality is reserved for internal use.\nIt is not supported for use in customer environments and is not subject to the support SLA of official GA features.\nIf set to `true`, the analysis will automatically find correlations between metrics for a given by field value and report anomalies when those correlations cease to hold.", + "type": "boolean" + }, + "per_partition_categorization": { + "$ref": "#/components/schemas/ml._types:PerPartitionCategorization" + }, + "summary_count_field_name": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "bucket_span", + "detectors", + "influencers" + ] + }, + "ml._types:DetectorRead": { + "type": "object", + "properties": { + "by_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "custom_rules": { + "description": "An array of custom rule objects, which enable you to customize the way detectors operate.\nFor example, a rule may dictate to the detector conditions under which results should be skipped.\nKibana refers to custom rules as job rules.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml._types:DetectionRule" + } + }, + "detector_description": { + "description": "A description of the detector.", + "type": "string" + }, + "detector_index": { + "description": "A unique identifier for the detector.\nThis identifier is based on the order of the detectors in the `analysis_config`, starting at zero.", + "type": "number" + }, + "exclude_frequent": { + "$ref": "#/components/schemas/ml._types:ExcludeFrequent" + }, + "field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "function": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/machine-learning/current/ml-functions.html" + }, + "description": "The analysis function that is used.\nFor example, `count`, `rare`, `mean`, `min`, `max`, and `sum`.", + "type": "string" + }, + "over_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "partition_field_name": { + "$ref": "#/components/schemas/_types:Field" + }, + "use_null": { + "description": "Defines whether a new series is used as the null series when there is no value for the by or partition fields.", + "type": "boolean" + } + }, + "required": [ + "function" + ] + }, + "ml.put_trained_model:Definition": { + "type": "object", + "properties": { + "preprocessors": { + "description": "Collection of preprocessors", + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.put_trained_model:Preprocessor" + } + }, + "trained_model": { + "$ref": "#/components/schemas/ml.put_trained_model:TrainedModel" + } + }, + "required": [ + "trained_model" + ] + }, + "ml.put_trained_model:Preprocessor": { + "type": "object", + "properties": { + "frequency_encoding": { + "$ref": "#/components/schemas/ml.put_trained_model:FrequencyEncodingPreprocessor" + }, + "one_hot_encoding": { + "$ref": "#/components/schemas/ml.put_trained_model:OneHotEncodingPreprocessor" + }, + "target_mean_encoding": { + "$ref": "#/components/schemas/ml.put_trained_model:TargetMeanEncodingPreprocessor" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "ml.put_trained_model:FrequencyEncodingPreprocessor": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "feature_name": { + "type": "string" + }, + "frequency_map": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "required": [ + "field", + "feature_name", + "frequency_map" + ] + }, + "ml.put_trained_model:OneHotEncodingPreprocessor": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "hot_map": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "field", + "hot_map" + ] + }, + "ml.put_trained_model:TargetMeanEncodingPreprocessor": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "feature_name": { + "type": "string" + }, + "target_map": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "default_value": { + "type": "number" + } + }, + "required": [ + "field", + "feature_name", + "target_map", + "default_value" + ] + }, + "ml.put_trained_model:TrainedModel": { + "type": "object", + "properties": { + "tree": { + "$ref": "#/components/schemas/ml.put_trained_model:TrainedModelTree" + }, + "tree_node": { + "$ref": "#/components/schemas/ml.put_trained_model:TrainedModelTreeNode" + }, + "ensemble": { + "$ref": "#/components/schemas/ml.put_trained_model:Ensemble" + } + } + }, + "ml.put_trained_model:TrainedModelTree": { + "type": "object", + "properties": { + "classification_labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "feature_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "target_type": { + "type": "string" + }, + "tree_structure": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.put_trained_model:TrainedModelTreeNode" + } + } + }, + "required": [ + "feature_names", + "tree_structure" + ] + }, + "ml.put_trained_model:TrainedModelTreeNode": { + "type": "object", + "properties": { + "decision_type": { + "type": "string" + }, + "default_left": { + "type": "boolean" + }, + "leaf_value": { + "type": "number" + }, + "left_child": { + "type": "number" + }, + "node_index": { + "type": "number" + }, + "right_child": { + "type": "number" + }, + "split_feature": { + "type": "number" + }, + "split_gain": { + "type": "number" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "node_index" + ] + }, + "ml.put_trained_model:Ensemble": { + "type": "object", + "properties": { + "aggregate_output": { + "$ref": "#/components/schemas/ml.put_trained_model:AggregateOutput" + }, + "classification_labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "feature_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "target_type": { + "type": "string" + }, + "trained_models": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ml.put_trained_model:TrainedModel" + } + } + }, + "required": [ + "trained_models" + ] + }, + "ml.put_trained_model:AggregateOutput": { + "type": "object", + "properties": { + "logistic_regression": { + "$ref": "#/components/schemas/ml.put_trained_model:Weights" + }, + "weighted_sum": { + "$ref": "#/components/schemas/ml.put_trained_model:Weights" + }, + "weighted_mode": { + "$ref": "#/components/schemas/ml.put_trained_model:Weights" + }, + "exponent": { + "$ref": "#/components/schemas/ml.put_trained_model:Weights" + } + } + }, + "ml.put_trained_model:Weights": { + "type": "object", + "properties": { + "weights": { + "type": "number" + } + }, + "required": [ + "weights" + ] + }, + "ml.put_trained_model:Input": { + "type": "object", + "properties": { + "field_names": { + "$ref": "#/components/schemas/_types:Names" + } + }, + "required": [ + "field_names" + ] + }, + "_types:NodeIds": { + "oneOf": [ + { + "$ref": "#/components/schemas/_types:NodeId" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:NodeId" + } + } + ] + }, + "ml._types:TrainingPriority": { + "type": "string", + "enum": [ + "normal", + "low" + ] + }, + "ml._types:TrainedModelAssignment": { + "type": "object", + "properties": { + "assignment_state": { + "$ref": "#/components/schemas/ml._types:DeploymentAssignmentState" + }, + "max_assigned_allocations": { + "type": "number" + }, + "routing_table": { + "description": "The allocation state for each node.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ml._types:TrainedModelAssignmentRoutingTable" + } + }, + "start_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "task_parameters": { + "$ref": "#/components/schemas/ml._types:TrainedModelAssignmentTaskParameters" + } + }, + "required": [ + "assignment_state", + "routing_table", + "start_time", + "task_parameters" + ] + }, + "ml._types:DeploymentAssignmentState": { + "type": "string", + "enum": [ + "starting", + "started", + "stopping", + "failed" + ] + }, + "ml._types:TrainedModelAssignmentTaskParameters": { + "type": "object", + "properties": { + "model_bytes": { + "description": "The size of the trained model in bytes.", + "type": "number" + }, + "model_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "deployment_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "cache_size": { + "$ref": "#/components/schemas/_types:ByteSize" + }, + "number_of_allocations": { + "description": "The total number of allocations this model is assigned across ML nodes.", + "type": "number" + }, + "priority": { + "$ref": "#/components/schemas/ml._types:TrainingPriority" + }, + "queue_capacity": { + "description": "Number of inference requests are allowed in the queue at a time.", + "type": "number" + }, + "threads_per_allocation": { + "description": "Number of threads per allocation.", + "type": "number" + } + }, + "required": [ + "model_bytes", + "model_id", + "deployment_id", + "cache_size", + "number_of_allocations", + "priority", + "queue_capacity", + "threads_per_allocation" + ] + }, + "ml._types:AnalysisMemoryLimit": { + "type": "object", + "properties": { + "model_memory_limit": { + "description": "Limits can be applied for the resources required to hold the mathematical models in memory. These limits are approximate and can be set per job. They do not control the memory used by other processes, for example the Elasticsearch Java processes.", + "type": "string" + } + }, + "required": [ + "model_memory_limit" + ] + }, + "_global.msearch:RequestItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.msearch:MultisearchHeader" + }, + { + "$ref": "#/components/schemas/_global.msearch:MultisearchBody" + } + ] + }, + "_global.msearch:MultisearchHeader": { + "type": "object", + "properties": { + "allow_no_indices": { + "type": "boolean" + }, + "expand_wildcards": { + "$ref": "#/components/schemas/_types:ExpandWildcards" + }, + "ignore_unavailable": { + "type": "boolean" + }, + "index": { + "$ref": "#/components/schemas/_types:Indices" + }, + "preference": { + "type": "string" + }, + "request_cache": { + "type": "boolean" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "search_type": { + "$ref": "#/components/schemas/_types:SearchType" + }, + "ccs_minimize_roundtrips": { + "type": "boolean" + }, + "allow_partial_search_results": { + "type": "boolean" + }, + "ignore_throttled": { + "type": "boolean" + } + } + }, + "_global.msearch:MultisearchBody": { + "type": "object", + "properties": { + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "collapse": { + "$ref": "#/components/schemas/_global.search._types:FieldCollapse" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "explain": { + "description": "If true, returns detailed information about score computation as part of a hit.", + "type": "boolean" + }, + "ext": { + "description": "Configuration of search extensions defined by Elasticsearch plugins.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "stored_fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "docvalue_fields": { + "description": "Array of wildcard (*) patterns. The request returns doc values for field\nnames matching these patterns in the hits.fields property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "knn": { + "description": "Defines the approximate kNN search to run.", + "oneOf": [ + { + "$ref": "#/components/schemas/_types:KnnQuery" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:KnnQuery" + } + } + ] + }, + "from": { + "description": "Starting document offset. By default, you cannot page through more than 10,000\nhits using the from and size parameters. To page through more hits, use the\nsearch_after parameter.", + "type": "number" + }, + "highlight": { + "$ref": "#/components/schemas/_global.search._types:Highlight" + }, + "indices_boost": { + "description": "Boosts the _score of documents from specified indices.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + }, + "min_score": { + "description": "Minimum _score for matching documents. Documents with a lower _score are\nnot included in the search results.", + "type": "number" + }, + "post_filter": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "profile": { + "type": "boolean" + }, + "rescore": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.search._types:Rescore" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Rescore" + } + } + ] + }, + "script_fields": { + "description": "Retrieve a script evaluation (based on different fields) for each hit.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types:ScriptField" + } + }, + "search_after": { + "$ref": "#/components/schemas/_types:SortResults" + }, + "size": { + "description": "The number of hits to return. By default, you cannot page through more\nthan 10,000 hits using the from and size parameters. To page through more\nhits, use the search_after parameter.", + "type": "number" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_global.search._types:SourceConfig" + }, + "fields": { + "description": "Array of wildcard (*) patterns. The request returns values for field names\nmatching these patterns in the hits.fields property of the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:FieldAndFormat" + } + }, + "terminate_after": { + "description": "Maximum number of documents to collect for each shard. If a query reaches this\nlimit, Elasticsearch terminates the query early. Elasticsearch collects documents\nbefore sorting. Defaults to 0, which does not terminate query execution early.", + "type": "number" + }, + "stats": { + "description": "Stats groups to associate with the search. Each group maintains a statistics\naggregation for its associated searches. You can retrieve these stats using\nthe indices stats API.", + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "description": "Specifies the period of time to wait for a response from each shard. If no response\nis received before the timeout expires, the request fails and returns an error.\nDefaults to no timeout.", + "type": "string" + }, + "track_scores": { + "description": "If true, calculate and return document scores, even if the scores are not used for sorting.", + "type": "boolean" + }, + "track_total_hits": { + "$ref": "#/components/schemas/_global.search._types:TrackHits" + }, + "version": { + "description": "If true, returns document version as part of a hit.", + "type": "boolean" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + }, + "seq_no_primary_term": { + "description": "If true, returns sequence number and primary term of the last modification\nof each hit. See Optimistic concurrency control.", + "type": "boolean" + }, + "pit": { + "$ref": "#/components/schemas/_global.search._types:PointInTimeReference" + }, + "suggest": { + "$ref": "#/components/schemas/_global.search._types:Suggester" + } + } + }, + "_global.msearch:MultiSearchResult": { + "type": "object", + "properties": { + "took": { + "type": "number" + }, + "responses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.msearch:ResponseItem" + } + } + }, + "required": [ + "took", + "responses" + ] + }, + "_global.msearch:ResponseItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.msearch:MultiSearchItem" + }, + { + "$ref": "#/components/schemas/_types:ErrorResponseBase" + } + ] + }, + "_global.msearch:MultiSearchItem": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.search:ResponseBody" + }, + { + "type": "object", + "properties": { + "status": { + "type": "number" + } + } + } + ] + }, + "_global.search:ResponseBody": { + "type": "object", + "properties": { + "took": { + "type": "number" + }, + "timed_out": { + "type": "boolean" + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + }, + "hits": { + "$ref": "#/components/schemas/_global.search._types:HitsMetadata" + }, + "aggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:Aggregate" + } + }, + "_clusters": { + "$ref": "#/components/schemas/_types:ClusterStatistics" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "max_score": { + "type": "number" + }, + "num_reduce_phases": { + "type": "number" + }, + "profile": { + "$ref": "#/components/schemas/_global.search._types:Profile" + }, + "pit_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_scroll_id": { + "$ref": "#/components/schemas/_types:ScrollId" + }, + "suggest": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.search._types:Suggest" + } + } + }, + "terminated_early": { + "type": "boolean" + } + }, + "required": [ + "took", + "timed_out", + "_shards", + "hits" + ] + }, + "_types:ErrorResponseBase": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/_types:ErrorCause" + }, + "status": { + "type": "number" + } + }, + "required": [ + "error", + "status" + ] + }, + "_global.msearch_template:RequestItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/_global.msearch:MultisearchHeader" + }, + { + "$ref": "#/components/schemas/_global.msearch_template:TemplateConfig" + } + ] + }, + "_global.msearch_template:TemplateConfig": { + "type": "object", + "properties": { + "explain": { + "description": "If `true`, returns detailed information about score calculation as part of each hit.", + "type": "boolean" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "params": { + "description": "Key-value pairs used to replace Mustache variables in the template.\nThe key is the variable name.\nThe value is the variable value.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "profile": { + "description": "If `true`, the query execution is profiled.", + "type": "boolean" + }, + "source": { + "description": "An inline search template. Supports the same parameters as the search API's\nrequest body. Also supports Mustache variables. If no id is specified, this\nparameter is required.", + "type": "string" + } + } + }, + "_global.mtermvectors:Operation": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "doc": { + "description": "An artificial document (a document not present in the index) for which you want to retrieve term vectors.", + "type": "object" + }, + "fields": { + "$ref": "#/components/schemas/_types:Fields" + }, + "field_statistics": { + "description": "If `true`, the response includes the document count, sum of document frequencies, and sum of total term frequencies.", + "type": "boolean" + }, + "filter": { + "$ref": "#/components/schemas/_global.termvectors:Filter" + }, + "offsets": { + "description": "If `true`, the response includes term offsets.", + "type": "boolean" + }, + "payloads": { + "description": "If `true`, the response includes term payloads.", + "type": "boolean" + }, + "positions": { + "description": "If `true`, the response includes term positions.", + "type": "boolean" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "term_statistics": { + "description": "If true, the response includes term frequency and document frequency.", + "type": "boolean" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + }, + "required": [ + "_id" + ] + }, + "_global.termvectors:Filter": { + "type": "object", + "properties": { + "max_doc_freq": { + "description": "Ignore words which occur in more than this many docs.\nDefaults to unbounded.", + "type": "number" + }, + "max_num_terms": { + "description": "Maximum number of terms that must be returned per field.", + "type": "number" + }, + "max_term_freq": { + "description": "Ignore words with more than this frequency in the source doc.\nDefaults to unbounded.", + "type": "number" + }, + "max_word_length": { + "description": "The maximum word length above which words will be ignored.\nDefaults to unbounded.", + "type": "number" + }, + "min_doc_freq": { + "description": "Ignore terms which do not occur in at least this many docs.", + "type": "number" + }, + "min_term_freq": { + "description": "Ignore words with less than this frequency in the source doc.", + "type": "number" + }, + "min_word_length": { + "description": "The minimum word length below which words will be ignored.", + "type": "number" + } + } + }, + "_global.mtermvectors:TermVectorsResult": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_version": { + "$ref": "#/components/schemas/_types:VersionNumber" + }, + "took": { + "type": "number" + }, + "found": { + "type": "boolean" + }, + "term_vectors": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.termvectors:TermVector" + } + }, + "error": { + "$ref": "#/components/schemas/_types:ErrorCause" + } + }, + "required": [ + "_id", + "_index" + ] + }, + "_global.termvectors:TermVector": { + "type": "object", + "properties": { + "field_statistics": { + "$ref": "#/components/schemas/_global.termvectors:FieldStatistics" + }, + "terms": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_global.termvectors:Term" + } + } + }, + "required": [ + "field_statistics", + "terms" + ] + }, + "_global.termvectors:FieldStatistics": { + "type": "object", + "properties": { + "doc_count": { + "type": "number" + }, + "sum_doc_freq": { + "type": "number" + }, + "sum_ttf": { + "type": "number" + } + }, + "required": [ + "doc_count", + "sum_doc_freq", + "sum_ttf" + ] + }, + "_global.termvectors:Term": { + "type": "object", + "properties": { + "doc_freq": { + "type": "number" + }, + "score": { + "type": "number" + }, + "term_freq": { + "type": "number" + }, + "tokens": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.termvectors:Token" + } + }, + "ttf": { + "type": "number" + } + }, + "required": [ + "term_freq" + ] + }, + "_global.termvectors:Token": { + "type": "object", + "properties": { + "end_offset": { + "type": "number" + }, + "payload": { + "type": "string" + }, + "position": { + "type": "number" + }, + "start_offset": { + "type": "number" + } + }, + "required": [ + "position" + ] + }, + "query_ruleset._types:QueryRuleset": { + "type": "object", + "properties": { + "ruleset_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "rules": { + "description": "Rules associated with the query ruleset", + "type": "array", + "items": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRule" + } + } + }, + "required": [ + "ruleset_id", + "rules" + ] + }, + "query_ruleset._types:QueryRule": { + "type": "object", + "properties": { + "rule_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "type": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRuleType" + }, + "criteria": { + "type": "array", + "items": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRuleCriteria" + } + }, + "actions": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRuleActions" + } + }, + "required": [ + "rule_id", + "type", + "criteria", + "actions" + ] + }, + "query_ruleset._types:QueryRuleType": { + "type": "string", + "enum": [ + "pinned" + ] + }, + "query_ruleset._types:QueryRuleCriteria": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/query_ruleset._types:QueryRuleCriteriaType" + }, + "metadata": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "type", + "metadata" + ] + }, + "query_ruleset._types:QueryRuleCriteriaType": { + "type": "string", + "enum": [ + "global", + "exact", + "exact_fuzzy", + "prefix", + "suffix", + "contains", + "lt", + "lte", + "gt", + "gte" + ] + }, + "query_ruleset._types:QueryRuleActions": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Id" + } + }, + "docs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/_types.query_dsl:PinnedDoc" + } + } + } + }, + "query_ruleset.list:QueryRulesetListItem": { + "type": "object", + "properties": { + "ruleset_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "rules_count": { + "description": "The number of rules associated with this ruleset", + "type": "number" + } + }, + "required": [ + "ruleset_id", + "rules_count" + ] + }, + "_global.rank_eval:RankEvalRequestItem": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "request": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalQuery" + }, + "ratings": { + "description": "List of document ratings", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.rank_eval:DocumentRating" + } + }, + "template_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "params": { + "description": "The search template parameters.", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "required": [ + "id", + "ratings" + ] + }, + "_global.rank_eval:RankEvalQuery": { + "type": "object", + "properties": { + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "size": { + "type": "number" + } + }, + "required": [ + "query" + ] + }, + "_global.rank_eval:DocumentRating": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "rating": { + "description": "The document’s relevance with regard to this search request.", + "type": "number" + } + }, + "required": [ + "_id", + "_index", + "rating" + ] + }, + "_global.rank_eval:RankEvalMetric": { + "type": "object", + "properties": { + "precision": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricPrecision" + }, + "recall": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricRecall" + }, + "mean_reciprocal_rank": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricMeanReciprocalRank" + }, + "dcg": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricDiscountedCumulativeGain" + }, + "expected_reciprocal_rank": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricExpectedReciprocalRank" + } + } + }, + "_global.rank_eval:RankEvalMetricPrecision": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricRatingTreshold" + }, + { + "type": "object", + "properties": { + "ignore_unlabeled": { + "description": "Controls how unlabeled documents in the search results are counted. If set to true, unlabeled documents are ignored and neither count as relevant or irrelevant. Set to false (the default), they are treated as irrelevant.", + "type": "boolean" + } + } + } + ] + }, + "_global.rank_eval:RankEvalMetricRatingTreshold": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricBase" + }, + { + "type": "object", + "properties": { + "relevant_rating_threshold": { + "description": "Sets the rating threshold above which documents are considered to be \"relevant\".", + "type": "number" + } + } + } + ] + }, + "_global.rank_eval:RankEvalMetricBase": { + "type": "object", + "properties": { + "k": { + "description": "Sets the maximum number of documents retrieved per query. This value will act in place of the usual size parameter in the query.", + "type": "number" + } + } + }, + "_global.rank_eval:RankEvalMetricRecall": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricRatingTreshold" + }, + { + "type": "object" + } + ] + }, + "_global.rank_eval:RankEvalMetricMeanReciprocalRank": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricRatingTreshold" + }, + { + "type": "object" + } + ] + }, + "_global.rank_eval:RankEvalMetricDiscountedCumulativeGain": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricBase" + }, + { + "type": "object", + "properties": { + "normalize": { + "externalDocs": { + "url": "https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG" + }, + "description": "If set to true, this metric will calculate the Normalized DCG.", + "type": "boolean" + } + } + } + ] + }, + "_global.rank_eval:RankEvalMetricExpectedReciprocalRank": { + "allOf": [ + { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalMetricBase" + }, + { + "type": "object", + "properties": { + "maximum_relevance": { + "description": "The highest relevance grade used in the user-supplied relevance judgments.", + "type": "number" + } + }, + "required": [ + "maximum_relevance" + ] + } + ] + }, + "_global.rank_eval:RankEvalMetricDetail": { + "type": "object", + "properties": { + "metric_score": { + "description": "The metric_score in the details section shows the contribution of this query to the global quality metric score", + "type": "number" + }, + "unrated_docs": { + "description": "The unrated_docs section contains an _index and _id entry for each document in the search result for this query that didn’t have a ratings value. This can be used to ask the user to supply ratings for these documents", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.rank_eval:UnratedDocument" + } + }, + "hits": { + "description": "The hits section shows a grouping of the search results with their supplied ratings", + "type": "array", + "items": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalHitItem" + } + }, + "metric_details": { + "description": "The metric_details give additional information about the calculated quality metric (e.g. how many of the retrieved documents were relevant). The content varies for each metric but allows for better interpretation of the results", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "required": [ + "metric_score", + "unrated_docs", + "hits", + "metric_details" + ] + }, + "_global.rank_eval:UnratedDocument": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "_id", + "_index" + ] + }, + "_global.rank_eval:RankEvalHitItem": { + "type": "object", + "properties": { + "hit": { + "$ref": "#/components/schemas/_global.rank_eval:RankEvalHit" + }, + "rating": { + "oneOf": [ + { + "type": "number" + }, + { + "nullable": true, + "type": "string" + } + ] + } + }, + "required": [ + "hit" + ] + }, + "_global.rank_eval:RankEvalHit": { + "type": "object", + "properties": { + "_id": { + "$ref": "#/components/schemas/_types:Id" + }, + "_index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "_score": { + "type": "number" + } + }, + "required": [ + "_id", + "_index", + "_score" + ] + }, + "_global.reindex:Destination": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "op_type": { + "$ref": "#/components/schemas/_types:OpType" + }, + "pipeline": { + "description": "The name of the pipeline to use.", + "type": "string" + }, + "routing": { + "$ref": "#/components/schemas/_types:Routing" + }, + "version_type": { + "$ref": "#/components/schemas/_types:VersionType" + } + }, + "required": [ + "index" + ] + }, + "_global.reindex:Source": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:Indices" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "remote": { + "$ref": "#/components/schemas/_global.reindex:RemoteSource" + }, + "size": { + "description": "The number of documents to index per batch.\nUse when indexing from remote to ensure that the batches fit within the on-heap buffer, which defaults to a maximum size of 100 MB.", + "type": "number" + }, + "slice": { + "$ref": "#/components/schemas/_types:SlicedScroll" + }, + "sort": { + "$ref": "#/components/schemas/_types:Sort" + }, + "_source": { + "$ref": "#/components/schemas/_types:Fields" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + } + }, + "required": [ + "index" + ] + }, + "_global.reindex:RemoteSource": { + "type": "object", + "properties": { + "connect_timeout": { + "$ref": "#/components/schemas/_types:Duration" + }, + "headers": { + "description": "An object containing the headers of the request.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "host": { + "$ref": "#/components/schemas/_types:Host" + }, + "username": { + "$ref": "#/components/schemas/_types:Username" + }, + "password": { + "$ref": "#/components/schemas/_types:Password" + }, + "socket_timeout": { + "$ref": "#/components/schemas/_types:Duration" + } + }, + "required": [ + "host" + ] + }, + "_types:Host": { + "type": "string" + }, + "_types:Username": { + "type": "string" + }, + "_types:Password": { + "type": "string" + }, + "_global.scripts_painless_execute:PainlessContextSetup": { + "type": "object", + "properties": { + "document": { + "description": "Document that’s temporarily indexed in-memory and accessible from the script.", + "type": "object" + }, + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + }, + "required": [ + "document", + "index", + "query" + ] + }, + "_types:RankContainer": { + "type": "object", + "properties": { + "rrf": { + "$ref": "#/components/schemas/_types:RrfRank" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "_types:RrfRank": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:RankBase" + }, + { + "type": "object", + "properties": { + "rank_constant": { + "description": "How much influence documents in individual result sets per query have over the final ranked result set", + "type": "number" + }, + "window_size": { + "description": "Size of the individual result sets per query", + "type": "number" + } + } + } + ] + }, + "_types:RankBase": { + "type": "object" + }, + "search_application._types:SearchApplication": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "indices": { + "description": "Indices that are part of the Search Application.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "updated_at_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "analytics_collection_name": { + "$ref": "#/components/schemas/_types:Name" + }, + "template": { + "$ref": "#/components/schemas/search_application._types:SearchApplicationTemplate" + } + }, + "required": [ + "name", + "indices", + "updated_at_millis" + ] + }, + "search_application._types:SearchApplicationTemplate": { + "type": "object", + "properties": { + "script": { + "$ref": "#/components/schemas/_types:InlineScript" + } + }, + "required": [ + "script" + ] + }, + "search_application._types:AnalyticsCollection": { + "type": "object", + "properties": { + "event_data_stream": { + "$ref": "#/components/schemas/search_application._types:EventDataStream" + } + }, + "required": [ + "event_data_stream" + ] + }, + "search_application._types:EventDataStream": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "required": [ + "name" + ] + }, + "search_application.list:SearchApplicationListItem": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "indices": { + "description": "Indices that are part of the Search Application", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:IndexName" + } + }, + "updated_at_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "analytics_collection_name": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "required": [ + "name", + "indices", + "updated_at_millis" + ] + }, + "search_application.put_behavioral_analytics:AnalyticsAcknowledgeResponseBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:AcknowledgedResponseBase" + }, + { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + } + }, + "required": [ + "name" + ] + } + ] + }, + "_global.search_mvt._types:ZoomLevel": { + "type": "number" + }, + "_global.search_mvt._types:Coordinate": { + "type": "number" + }, + "_global.search_mvt._types:GridAggregationType": { + "type": "string", + "enum": [ + "geotile", + "geohex" + ] + }, + "_global.search_mvt._types:GridType": { + "type": "string", + "enum": [ + "grid", + "point", + "centroid" + ] + }, + "_types:MapboxVectorTiles": { + "type": "object" + }, + "security._types:ApiKey": { + "type": "object", + "properties": { + "creation": { + "description": "Creation time for the API key in milliseconds.", + "type": "number" + }, + "expiration": { + "description": "Expiration time for the API key in milliseconds.", + "type": "number" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "invalidated": { + "description": "Invalidation status for the API key.\nIf the key has been invalidated, it has a value of `true`. Otherwise, it is `false`.", + "type": "boolean" + }, + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "realm": { + "description": "Realm name of the principal for which this API key was created.", + "type": "string" + }, + "username": { + "$ref": "#/components/schemas/_types:Username" + }, + "metadata": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "role_descriptors": { + "description": "The role descriptors assigned to this API key when it was created or last updated.\nAn empty role descriptor means the API key inherits the owner user’s permissions.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security._types:RoleDescriptor" + } + }, + "limited_by": { + "description": "The owner user’s permissions associated with the API key.\nIt is a point-in-time snapshot captured at creation and subsequent updates.\nAn API key’s effective permissions are an intersection of its assigned privileges and the owner user’s permissions.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security._types:RoleDescriptor" + } + } + }, + "_sort": { + "$ref": "#/components/schemas/_types:SortResults" + } + }, + "required": [ + "id", + "name" + ] + }, + "security._types:RoleDescriptor": { + "type": "object", + "properties": { + "cluster": { + "description": "A list of cluster privileges. These privileges define the cluster level actions that API keys are able to execute.", + "type": "array", + "items": { + "type": "string" + } + }, + "indices": { + "description": "A list of indices permissions entries.", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:IndicesPrivileges" + } + }, + "global": { + "description": "An object defining global privileges. A global privilege is a form of cluster privilege that is request-aware. Support for global privileges is currently limited to the management of application privileges.", + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:GlobalPrivilege" + } + }, + { + "$ref": "#/components/schemas/security._types:GlobalPrivilege" + } + ] + }, + "applications": { + "description": "A list of application privilege entries", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:ApplicationPrivileges" + } + }, + "metadata": { + "$ref": "#/components/schemas/_types:Metadata" + }, + "run_as": { + "externalDocs": { + "url": "https://www.elastic.co/guide/en/elasticsearch/reference/current/run-as-privilege.html" + }, + "description": "A list of users that the API keys can impersonate.", + "type": "array", + "items": { + "type": "string" + } + }, + "transient_metadata": { + "$ref": "#/components/schemas/security._types:TransientMetadataConfig" + } + } + }, + "security._types:IndicesPrivileges": { + "type": "object", + "properties": { + "field_security": { + "$ref": "#/components/schemas/security._types:FieldSecurity" + }, + "names": { + "$ref": "#/components/schemas/_types:Indices" + }, + "privileges": { + "description": "The index level privileges that owners of the role have on the specified indices.", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:IndexPrivilege" + } + }, + "query": { + "$ref": "#/components/schemas/security._types:IndicesPrivilegesQuery" + }, + "allow_restricted_indices": { + "description": "Set to `true` if using wildcard or regular expressions for patterns that cover restricted indices. Implicitly, restricted indices have limited privileges that can cause pattern tests to fail. If restricted indices are explicitly included in the `names` list, Elasticsearch checks privileges against these indices regardless of the value set for `allow_restricted_indices`.", + "type": "boolean" + } + }, + "required": [ + "names", + "privileges" + ] + }, + "security._types:FieldSecurity": { + "type": "object", + "properties": { + "except": { + "$ref": "#/components/schemas/_types:Fields" + }, + "grant": { + "$ref": "#/components/schemas/_types:Fields" + } + } + }, + "security._types:IndexPrivilege": { + "type": "string", + "enum": [ + "none", + "all", + "auto_configure", + "create", + "create_doc", + "create_index", + "delete", + "delete_index", + "index", + "maintenance", + "manage", + "manage_follow_index", + "manage_ilm", + "manage_leader_index", + "monitor", + "read", + "read_cross_cluster", + "view_index_metadata", + "write" + ] + }, + "security._types:IndicesPrivilegesQuery": { + "description": "While creating or updating a role you can provide either a JSON structure or a string to the API.\nHowever, the response provided by Elasticsearch will only be string with a json-as-text content.\n\nSince this is embedded in `IndicesPrivileges`, the same structure is used for clarity in both contexts.", + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + { + "$ref": "#/components/schemas/security._types:RoleTemplateQuery" + } + ] + }, + "security._types:RoleTemplateQuery": { + "type": "object", + "properties": { + "template": { + "$ref": "#/components/schemas/security._types:RoleTemplateScript" + } + } + }, + "security._types:RoleTemplateScript": { + "oneOf": [ + { + "$ref": "#/components/schemas/security._types:RoleTemplateInlineScript" + }, + { + "$ref": "#/components/schemas/_types:StoredScriptId" + } + ] + }, + "security._types:RoleTemplateInlineScript": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:ScriptBase" + }, + { + "type": "object", + "properties": { + "lang": { + "$ref": "#/components/schemas/_types:ScriptLanguage" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "source": { + "$ref": "#/components/schemas/security._types:RoleTemplateInlineQuery" + } + }, + "required": [ + "source" + ] + } + ] + }, + "security._types:RoleTemplateInlineQuery": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + } + ] + }, + "security._types:GlobalPrivilege": { + "type": "object", + "properties": { + "application": { + "$ref": "#/components/schemas/security._types:ApplicationGlobalUserPrivileges" + } + }, + "required": [ + "application" + ] + }, + "security._types:ApplicationGlobalUserPrivileges": { + "type": "object", + "properties": { + "manage": { + "$ref": "#/components/schemas/security._types:ManageUserPrivileges" + } + }, + "required": [ + "manage" + ] + }, + "security._types:ManageUserPrivileges": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "applications" + ] + }, + "security._types:ApplicationPrivileges": { + "type": "object", + "properties": { + "application": { + "description": "The name of the application to which this entry applies.", + "type": "string" + }, + "privileges": { + "description": "A list of strings, where each element is the name of an application privilege or action.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "A list resources to which the privileges are applied.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "application", + "privileges", + "resources" + ] + }, + "security._types:TransientMetadataConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + }, + "security._types:RealmInfo": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + }, + "security.authenticate:Token": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "security.has_privileges:ApplicationPrivilegesCheck": { + "type": "object", + "properties": { + "application": { + "description": "The name of the application.", + "type": "string" + }, + "privileges": { + "description": "A list of the privileges that you want to check for the specified resources. May be either application privilege names, or the names of actions that are granted by those privileges", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "A list of resource names against which the privileges should be checked", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "application", + "privileges", + "resources" + ] + }, + "security._types:ClusterPrivilege": { + "type": "string", + "enum": [ + "all", + "cancel_task", + "create_snapshot", + "grant_api_key", + "manage", + "manage_api_key", + "manage_ccr", + "manage_enrich", + "manage_ilm", + "manage_index_templates", + "manage_ingest_pipelines", + "manage_logstash_pipelines", + "manage_ml", + "manage_oidc", + "manage_own_api_key", + "manage_pipeline", + "manage_rollup", + "manage_saml", + "manage_security", + "manage_service_account", + "manage_slm", + "manage_token", + "manage_transform", + "manage_user_profile", + "manage_watcher", + "monitor", + "monitor_ml", + "monitor_rollup", + "monitor_snapshot", + "monitor_text_structure", + "monitor_transform", + "monitor_watcher", + "read_ccr", + "read_ilm", + "read_pipeline", + "read_slm", + "transport_client" + ] + }, + "security.has_privileges:IndexPrivilegesCheck": { + "type": "object", + "properties": { + "names": { + "$ref": "#/components/schemas/_types:Indices" + }, + "privileges": { + "description": "A list of the privileges that you want to check for the specified indices.", + "type": "array", + "items": { + "$ref": "#/components/schemas/security._types:IndexPrivilege" + } + }, + "allow_restricted_indices": { + "description": "This needs to be set to true (default is false) if using wildcards or regexps for patterns that cover restricted indices.\nImplicitly, restricted indices do not match index patterns because restricted indices usually have limited privileges and including them in pattern tests would render most such tests false.\nIf restricted indices are explicitly included in the names list, privileges will be checked against them regardless of the value of allow_restricted_indices.", + "type": "boolean" + } + }, + "required": [ + "names", + "privileges" + ] + }, + "security.has_privileges:ApplicationsPrivileges": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security.has_privileges:ResourcePrivileges" + } + }, + "security.has_privileges:ResourcePrivileges": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security.has_privileges:Privileges" + } + }, + "security.has_privileges:Privileges": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "sql:Column": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/_types:Name" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + }, + "sql:Row": { + "type": "array", + "items": { + "type": "object" + } + }, + "synonyms._types:SynonymsUpdateResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/_types:Result" + }, + "reload_analyzers_details": { + "$ref": "#/components/schemas/indices.reload_search_analyzers:ReloadResult" + } + }, + "required": [ + "result", + "reload_analyzers_details" + ] + }, + "indices.reload_search_analyzers:ReloadResult": { + "type": "object", + "properties": { + "reload_details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/indices.reload_search_analyzers:ReloadDetails" + } + }, + "_shards": { + "$ref": "#/components/schemas/_types:ShardStatistics" + } + }, + "required": [ + "reload_details", + "_shards" + ] + }, + "indices.reload_search_analyzers:ReloadDetails": { + "type": "object", + "properties": { + "index": { + "type": "string" + }, + "reloaded_analyzers": { + "type": "array", + "items": { + "type": "string" + } + }, + "reloaded_node_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "index", + "reloaded_analyzers", + "reloaded_node_ids" + ] + }, + "synonyms._types:SynonymRuleRead": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "synonyms": { + "$ref": "#/components/schemas/synonyms._types:SynonymString" + } + }, + "required": [ + "id", + "synonyms" + ] + }, + "synonyms._types:SynonymString": { + "type": "string" + }, + "synonyms.get_synonyms_sets:SynonymsSetItem": { + "type": "object", + "properties": { + "synonyms_set": { + "$ref": "#/components/schemas/_types:Id" + }, + "count": { + "description": "Number of synonym rules that the synonym set contains", + "type": "number" + } + }, + "required": [ + "synonyms_set", + "count" + ] + }, + "synonyms._types:SynonymRule": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "synonyms": { + "$ref": "#/components/schemas/synonyms._types:SynonymString" + } + }, + "required": [ + "synonyms" + ] + }, + "transform.get_transform:TransformSummary": { + "type": "object", + "properties": { + "authorization": { + "$ref": "#/components/schemas/ml._types:TransformAuthorization" + }, + "create_time": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "description": { + "description": "Free text description of the transform.", + "type": "string" + }, + "dest": { + "$ref": "#/components/schemas/_global.reindex:Destination" + }, + "frequency": { + "$ref": "#/components/schemas/_types:Duration" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "latest": { + "$ref": "#/components/schemas/transform._types:Latest" + }, + "pivot": { + "$ref": "#/components/schemas/transform._types:Pivot" + }, + "retention_policy": { + "$ref": "#/components/schemas/transform._types:RetentionPolicyContainer" + }, + "settings": { + "$ref": "#/components/schemas/transform._types:Settings" + }, + "source": { + "$ref": "#/components/schemas/transform._types:Source" + }, + "sync": { + "$ref": "#/components/schemas/transform._types:SyncContainer" + }, + "version": { + "$ref": "#/components/schemas/_types:VersionString" + }, + "_meta": { + "$ref": "#/components/schemas/_types:Metadata" + } + }, + "required": [ + "dest", + "id", + "source" + ] + }, + "ml._types:TransformAuthorization": { + "type": "object", + "properties": { + "api_key": { + "$ref": "#/components/schemas/ml._types:ApiKeyAuthorization" + }, + "roles": { + "description": "If a user ID was used for the most recent update to the transform, its roles at the time of the update are listed in the response.", + "type": "array", + "items": { + "type": "string" + } + }, + "service_account": { + "description": "If a service account was used for the most recent update to the transform, the account name is listed in the response.", + "type": "string" + } + } + }, + "transform._types:Latest": { + "type": "object", + "properties": { + "sort": { + "$ref": "#/components/schemas/_types:Field" + }, + "unique_key": { + "description": "Specifies an array of one or more fields that are used to group the data.", + "type": "array", + "items": { + "$ref": "#/components/schemas/_types:Field" + } + } + }, + "required": [ + "sort", + "unique_key" + ] + }, + "transform._types:Pivot": { + "type": "object", + "properties": { + "aggregations": { + "description": "Defines how to aggregate the grouped data. The following aggregations are currently supported: average, bucket\nscript, bucket selector, cardinality, filter, geo bounds, geo centroid, geo line, max, median absolute deviation,\nmin, missing, percentiles, rare terms, scripted metric, stats, sum, terms, top metrics, value count, weighted\naverage.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/_types.aggregations:AggregationContainer" + } + }, + "group_by": { + "description": "Defines how to group the data. More than one grouping can be defined per pivot. The following groupings are\ncurrently supported: date histogram, geotile grid, histogram, terms.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/transform._types:PivotGroupByContainer" + } + } + } + }, + "transform._types:PivotGroupByContainer": { + "type": "object", + "properties": { + "date_histogram": { + "$ref": "#/components/schemas/_types.aggregations:DateHistogramAggregation" + }, + "geotile_grid": { + "$ref": "#/components/schemas/_types.aggregations:GeoTileGridAggregation" + }, + "histogram": { + "$ref": "#/components/schemas/_types.aggregations:HistogramAggregation" + }, + "terms": { + "$ref": "#/components/schemas/_types.aggregations:TermsAggregation" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "transform._types:RetentionPolicyContainer": { + "type": "object", + "properties": { + "time": { + "$ref": "#/components/schemas/transform._types:RetentionPolicy" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "transform._types:RetentionPolicy": { + "type": "object", + "properties": { + "field": { + "$ref": "#/components/schemas/_types:Field" + }, + "max_age": { + "$ref": "#/components/schemas/_types:Duration" + } + }, + "required": [ + "field", + "max_age" + ] + }, + "transform._types:Settings": { + "type": "object", + "properties": { + "align_checkpoints": { + "description": "Specifies whether the transform checkpoint ranges should be optimized for performance. Such optimization can align\ncheckpoint ranges with the date histogram interval when date histogram is specified as a group source in the\ntransform config. As a result, less document updates in the destination index will be performed thus improving\noverall performance.", + "type": "boolean" + }, + "dates_as_epoch_millis": { + "description": "Defines if dates in the ouput should be written as ISO formatted string or as millis since epoch. epoch_millis was\nthe default for transforms created before version 7.11. For compatible output set this value to `true`.", + "type": "boolean" + }, + "deduce_mappings": { + "description": "Specifies whether the transform should deduce the destination index mappings from the transform configuration.", + "type": "boolean" + }, + "docs_per_second": { + "description": "Specifies a limit on the number of input documents per second. This setting throttles the transform by adding a\nwait time between search requests. The default value is null, which disables throttling.", + "type": "number" + }, + "max_page_search_size": { + "description": "Defines the initial page size to use for the composite aggregation for each checkpoint. If circuit breaker\nexceptions occur, the page size is dynamically adjusted to a lower value. The minimum value is `10` and the\nmaximum is `65,536`.", + "type": "number" + }, + "unattended": { + "description": "If `true`, the transform runs in unattended mode. In unattended mode, the transform retries indefinitely in case\nof an error which means the transform never fails. Setting the number of retries other than infinite fails in\nvalidation.", + "type": "boolean" + } + } + }, + "transform._types:Source": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:Indices" + }, + "query": { + "$ref": "#/components/schemas/_types.query_dsl:QueryContainer" + }, + "runtime_mappings": { + "$ref": "#/components/schemas/_types.mapping:RuntimeFields" + } + }, + "required": [ + "index" + ] + }, + "transform._types:SyncContainer": { + "type": "object", + "properties": { + "time": { + "$ref": "#/components/schemas/transform._types:TimeSync" + } + }, + "minProperties": 1, + "maxProperties": 1 + }, + "transform._types:TimeSync": { + "type": "object", + "properties": { + "delay": { + "$ref": "#/components/schemas/_types:Duration" + }, + "field": { + "$ref": "#/components/schemas/_types:Field" + } + }, + "required": [ + "field" + ] + }, + "transform.get_transform_stats:TransformStats": { + "type": "object", + "properties": { + "checkpointing": { + "$ref": "#/components/schemas/transform.get_transform_stats:Checkpointing" + }, + "health": { + "$ref": "#/components/schemas/transform.get_transform_stats:TransformStatsHealth" + }, + "id": { + "$ref": "#/components/schemas/_types:Id" + }, + "reason": { + "type": "string" + }, + "state": { + "type": "string" + }, + "stats": { + "$ref": "#/components/schemas/transform.get_transform_stats:TransformIndexerStats" + } + }, + "required": [ + "checkpointing", + "id", + "state", + "stats" + ] + }, + "transform.get_transform_stats:Checkpointing": { + "type": "object", + "properties": { + "changes_last_detected_at": { + "type": "number" + }, + "changes_last_detected_at_date_time": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "last": { + "$ref": "#/components/schemas/transform.get_transform_stats:CheckpointStats" + }, + "next": { + "$ref": "#/components/schemas/transform.get_transform_stats:CheckpointStats" + }, + "operations_behind": { + "type": "number" + }, + "last_search_time": { + "type": "number" + } + }, + "required": [ + "last" + ] + }, + "transform.get_transform_stats:CheckpointStats": { + "type": "object", + "properties": { + "checkpoint": { + "type": "number" + }, + "checkpoint_progress": { + "$ref": "#/components/schemas/transform.get_transform_stats:TransformProgress" + }, + "timestamp": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "timestamp_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "time_upper_bound": { + "$ref": "#/components/schemas/_types:DateTime" + }, + "time_upper_bound_millis": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + } + }, + "required": [ + "checkpoint" + ] + }, + "transform.get_transform_stats:TransformProgress": { + "type": "object", + "properties": { + "docs_indexed": { + "type": "number" + }, + "docs_processed": { + "type": "number" + }, + "docs_remaining": { + "type": "number" + }, + "percent_complete": { + "type": "number" + }, + "total_docs": { + "type": "number" + } + }, + "required": [ + "docs_indexed", + "docs_processed", + "docs_remaining", + "percent_complete", + "total_docs" + ] + }, + "transform.get_transform_stats:TransformStatsHealth": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/_types:HealthStatus" + } + }, + "required": [ + "status" + ] + }, + "transform.get_transform_stats:TransformIndexerStats": { + "type": "object", + "properties": { + "delete_time_in_ms": { + "$ref": "#/components/schemas/_types:EpochTimeUnitMillis" + }, + "documents_indexed": { + "type": "number" + }, + "documents_deleted": { + "type": "number" + }, + "documents_processed": { + "type": "number" + }, + "exponential_avg_checkpoint_duration_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitFloatMillis" + }, + "exponential_avg_documents_indexed": { + "type": "number" + }, + "exponential_avg_documents_processed": { + "type": "number" + }, + "index_failures": { + "type": "number" + }, + "index_time_in_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "index_total": { + "type": "number" + }, + "pages_processed": { + "type": "number" + }, + "processing_time_in_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "processing_total": { + "type": "number" + }, + "search_failures": { + "type": "number" + }, + "search_time_in_ms": { + "$ref": "#/components/schemas/_types:DurationValueUnitMillis" + }, + "search_total": { + "type": "number" + }, + "trigger_count": { + "type": "number" + } + }, + "required": [ + "documents_indexed", + "documents_processed", + "exponential_avg_checkpoint_duration_ms", + "exponential_avg_documents_indexed", + "exponential_avg_documents_processed", + "index_failures", + "index_time_in_ms", + "index_total", + "pages_processed", + "processing_time_in_ms", + "processing_total", + "search_failures", + "search_time_in_ms", + "search_total", + "trigger_count" + ] + }, + "transform._types:Destination": { + "type": "object", + "properties": { + "index": { + "$ref": "#/components/schemas/_types:IndexName" + }, + "pipeline": { + "description": "The unique identifier for an ingest pipeline.", + "type": "string" + } + } + }, + "_global.update:UpdateWriteResponseBase": { + "allOf": [ + { + "$ref": "#/components/schemas/_types:WriteResponseBase" + }, + { + "type": "object", + "properties": { + "get": { + "$ref": "#/components/schemas/_types:InlineGet" + } + } + } + ] + } + } + } +} \ No newline at end of file