diff --git a/.buildkite/pipelines/artifacts.yml b/.buildkite/pipelines/artifacts.yml
index 7d3f794fb9510..cce4ae9cfc525 100644
--- a/.buildkite/pipelines/artifacts.yml
+++ b/.buildkite/pipelines/artifacts.yml
@@ -6,7 +6,7 @@ steps:
imageProject: elastic-images-qa
provider: gcp
machineType: c2-standard-16
- timeout_in_minutes: 60
+ timeout_in_minutes: 75
retry:
automatic:
- exit_status: '*'
@@ -92,6 +92,19 @@ steps:
- exit_status: '*'
limit: 1
+ - command: KIBANA_DOCKER_CONTEXT=chainguard .buildkite/scripts/steps/artifacts/docker_context.sh
+ label: 'Docker Context Verification'
+ agents:
+ image: family/kibana-ubuntu-2004
+ imageProject: elastic-images-qa
+ provider: gcp
+ machineType: n2-standard-2
+ timeout_in_minutes: 30
+ retry:
+ automatic:
+ - exit_status: '*'
+ limit: 1
+
- command: KIBANA_DOCKER_CONTEXT=ironbank .buildkite/scripts/steps/artifacts/docker_context.sh
label: 'Docker Context Verification'
agents:
diff --git a/.buildkite/scripts/build_kibana.sh b/.buildkite/scripts/build_kibana.sh
index da709ee6eb08c..bb86b0abf8d45 100755
--- a/.buildkite/scripts/build_kibana.sh
+++ b/.buildkite/scripts/build_kibana.sh
@@ -32,6 +32,7 @@ if is_pr_with_label "ci:build-cloud-image"; then
--skip-docker-ubi \
--skip-docker-fips \
--skip-docker-ubuntu \
+ --skip-docker-chainguard \
--skip-docker-serverless \
--skip-docker-contexts
diff --git a/.buildkite/scripts/common/vault_fns.sh b/.buildkite/scripts/common/vault_fns.sh
index a7b92a4b05d6d..022a22541d6bf 100644
--- a/.buildkite/scripts/common/vault_fns.sh
+++ b/.buildkite/scripts/common/vault_fns.sh
@@ -65,3 +65,23 @@ vault_kv_set() {
vault kv put "$VAULT_KV_PREFIX/$kv_path" "${fields[@]}"
}
+
+function get_vault_role_id() {
+ if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
+ VAULT_ROLE_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-role-id)"
+ else
+ VAULT_ROLE_ID="$(vault_get kibana-buildkite-vault-credentials role-id)"
+ fi
+
+ echo "$VAULT_ROLE_ID"
+}
+
+function get_vault_secret_id() {
+ if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
+ VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)"
+ else
+ VAULT_SECRET_ID="$(vault_get kibana-buildkite-vault-credentials secret-id)"
+ fi
+
+ echo "$VAULT_SECRET_ID"
+}
diff --git a/.buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh b/.buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
index 968938a629ae6..5a47026f7cced 100644
--- a/.buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
+++ b/.buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
@@ -34,6 +34,7 @@ node scripts/build \
--docker-namespace="kibana-ci" \
--docker-tag="$KIBANA_IMAGE_TAG" \
--skip-docker-ubuntu \
+ --skip-docker-chainguard \
--skip-docker-ubi \
--skip-docker-cloud \
--skip-docker-contexts \
diff --git a/.buildkite/scripts/steps/artifacts/docker_context.sh b/.buildkite/scripts/steps/artifacts/docker_context.sh
index ad09e00124ab1..8ee1c0ba2a438 100755
--- a/.buildkite/scripts/steps/artifacts/docker_context.sh
+++ b/.buildkite/scripts/steps/artifacts/docker_context.sh
@@ -20,6 +20,9 @@ case $KIBANA_DOCKER_CONTEXT in
default)
DOCKER_CONTEXT_FILE="kibana-$FULL_VERSION-docker-build-context.tar.gz"
;;
+ chainguard)
+ DOCKER_CONTEXT_FILE="kibana-chainguard-$FULL_VERSION-docker-build-context.tar.gz"
+ ;;
cloud)
DOCKER_CONTEXT_FILE="kibana-cloud-$FULL_VERSION-docker-build-context.tar.gz"
;;
diff --git a/.buildkite/scripts/steps/artifacts/docker_image.sh b/.buildkite/scripts/steps/artifacts/docker_image.sh
index 8a482a341867f..308b391118b77 100755
--- a/.buildkite/scripts/steps/artifacts/docker_image.sh
+++ b/.buildkite/scripts/steps/artifacts/docker_image.sh
@@ -32,10 +32,10 @@ node scripts/build \
--docker-namespace="kibana-ci" \
--docker-tag="$KIBANA_IMAGE_TAG" \
--skip-docker-ubuntu \
+ --skip-docker-chainguard \
--skip-docker-ubi \
--skip-docker-fips \
- --skip-docker-cloud \
- --skip-docker-contexts
+ --skip-docker-cloud
echo "--- Tag images"
docker rmi "$KIBANA_IMAGE"
@@ -101,8 +101,9 @@ ts-node "$(git rev-parse --show-toplevel)/.buildkite/scripts/steps/artifacts/val
echo "--- Upload archives"
buildkite-agent artifact upload "kibana-$BASE_VERSION-linux-x86_64.tar.gz"
buildkite-agent artifact upload "kibana-$BASE_VERSION-linux-aarch64.tar.gz"
-buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image.tar.gz"
-buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image-aarch64.tar.gz"
+buildkite-agent artifact upload "kibana-serverless-$BASE_VERSION-docker-image.tar.gz"
+buildkite-agent artifact upload "kibana-serverless-$BASE_VERSION-docker-image-aarch64.tar.gz"
+buildkite-agent artifact upload "kibana-serverless-$BASE_VERSION-docker-build-context.tar.gz"
buildkite-agent artifact upload "kibana-$BASE_VERSION-cdn-assets.tar.gz"
buildkite-agent artifact upload "dependencies-$GIT_ABBREV_COMMIT.csv"
diff --git a/.buildkite/scripts/steps/artifacts/publish.sh b/.buildkite/scripts/steps/artifacts/publish.sh
index 8aba9e941e3c0..40ea04fc33fea 100644
--- a/.buildkite/scripts/steps/artifacts/publish.sh
+++ b/.buildkite/scripts/steps/artifacts/publish.sh
@@ -53,8 +53,8 @@ docker pull docker.elastic.co/infra/release-manager:latest
echo "--- Publish artifacts"
if [[ "$BUILDKITE_BRANCH" == "$KIBANA_BASE_BRANCH" ]]; then
- export VAULT_ROLE_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-role-id)"
- export VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)"
+ export VAULT_ROLE_ID="$(get_vault_role_id)"
+ export VAULT_SECRET_ID="$(get_vault_secret_id)"
export VAULT_ADDR="https://secrets.elastic.co:8200"
download_artifact beats_manifest.json /tmp --build "${KIBANA_BUILD_ID:-$BUILDKITE_BUILD_ID}"
diff --git a/.buildkite/scripts/steps/cloud/build_and_deploy.sh b/.buildkite/scripts/steps/cloud/build_and_deploy.sh
index 8b269e2438977..8c5e0a0d2c635 100755
--- a/.buildkite/scripts/steps/cloud/build_and_deploy.sh
+++ b/.buildkite/scripts/steps/cloud/build_and_deploy.sh
@@ -43,6 +43,7 @@ else
--skip-docker-ubi \
--skip-docker-fips \
--skip-docker-ubuntu \
+ --skip-docker-chainguard \
--skip-docker-serverless \
--skip-docker-contexts
fi
@@ -80,13 +81,13 @@ if [ -z "${CLOUD_DEPLOYMENT_ID}" ] || [ "${CLOUD_DEPLOYMENT_ID}" = 'null' ]; the
CLOUD_DEPLOYMENT_STATUS_MESSAGES=$(jq --slurp '[.[]|select(.resources == null)]' "$ECCTL_LOGS")
echo "Writing to vault..."
- VAULT_ROLE_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-role-id)"
- VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)"
- VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID")
- retry 5 30 vault login -no-print "$VAULT_TOKEN"
# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done
if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
+ VAULT_ROLE_ID="$(get_vault_role_id)"
+ VAULT_SECRET_ID="$(get_vault_secret_id)"
+ VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID")
+ retry 5 30 vault login -no-print "$VAULT_TOKEN"
vault_set "cloud-deploy/$CLOUD_DEPLOYMENT_NAME" username="$CLOUD_DEPLOYMENT_USERNAME" password="$CLOUD_DEPLOYMENT_PASSWORD"
else
vault_kv_set "cloud-deploy/$CLOUD_DEPLOYMENT_NAME" username="$CLOUD_DEPLOYMENT_USERNAME" password="$CLOUD_DEPLOYMENT_PASSWORD"
@@ -122,9 +123,6 @@ else
ecctl deployment update "$CLOUD_DEPLOYMENT_ID" --track --output json --file /tmp/deploy.json > "$ECCTL_LOGS"
fi
-CLOUD_DEPLOYMENT_KIBANA_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.kibana[0].info.metadata.aliased_url')
-CLOUD_DEPLOYMENT_ELASTICSEARCH_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.elasticsearch[0].info.metadata.aliased_url')
-
# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done
if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
VAULT_READ_COMMAND="vault read $VAULT_PATH_PREFIX/cloud-deploy/$CLOUD_DEPLOYMENT_NAME"
@@ -132,6 +130,9 @@ else
VAULT_READ_COMMAND="vault kv get $VAULT_KV_PREFIX/cloud-deploy/$CLOUD_DEPLOYMENT_NAME"
fi
+CLOUD_DEPLOYMENT_KIBANA_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.kibana[0].info.metadata.aliased_url')
+CLOUD_DEPLOYMENT_ELASTICSEARCH_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.elasticsearch[0].info.metadata.aliased_url')
+
cat << EOF | buildkite-agent annotate --style "info" --context cloud
### Cloud Deployment
diff --git a/.buildkite/scripts/steps/fips/build.sh b/.buildkite/scripts/steps/fips/build.sh
index e7d359b1cc2ae..0dfebdf2a6de1 100755
--- a/.buildkite/scripts/steps/fips/build.sh
+++ b/.buildkite/scripts/steps/fips/build.sh
@@ -23,6 +23,7 @@ node scripts/build \
--docker-push \
--skip-docker-ubi \
--skip-docker-ubuntu \
+ --skip-docker-chainguard \
--skip-docker-cloud \
--skip-docker-serverless \
--skip-docker-contexts
diff --git a/.buildkite/scripts/steps/fips/smoke_test.sh b/.buildkite/scripts/steps/fips/smoke_test.sh
index 7026c7bab941c..5c70e8c2057df 100755
--- a/.buildkite/scripts/steps/fips/smoke_test.sh
+++ b/.buildkite/scripts/steps/fips/smoke_test.sh
@@ -36,9 +36,9 @@ for config in "${configs[@]}"; do
echo "^^^ +++"
if [[ "$failedConfigs" ]]; then
- failedConfigs="${failedConfigs}"$'\n'"$config"
+ failedConfigs="${failedConfigs}"$'\n'"- ${config}"
else
- failedConfigs="$config"
+ failedConfigs="### Failed FTR Configs"$'\n'"- ${config}"
fi
fi
done
diff --git a/.buildkite/scripts/steps/package_testing/test.sh b/.buildkite/scripts/steps/package_testing/test.sh
index 99750529815c8..4917932e05228 100755
--- a/.buildkite/scripts/steps/package_testing/test.sh
+++ b/.buildkite/scripts/steps/package_testing/test.sh
@@ -58,12 +58,16 @@ trap "echoKibanaLogs" EXIT
if [[ "$TEST_PACKAGE" == "fips" ]]; then
set +e
vagrant ssh $TEST_PACKAGE -t -c "/home/vagrant/kibana/.buildkite/scripts/steps/fips/smoke_test.sh"
+ exitCode=$?
+
vagrant ssh $TEST_PACKAGE -t -c "cat /home/vagrant/ftr_failed_configs 2>/dev/null" >ftr_failed_configs
set -e
if [ -s ftr_failed_configs ]; then
- buildkite-agent meta-data set "ftr-failed-configs" <./ftr_failed_configs
+ cat ftr_failed_configs | buildkite-agent annotate --style "error"
fi
+
+ exit $exitCode
else
vagrant provision "$TEST_PACKAGE"
diff --git a/.buildkite/scripts/steps/serverless/deploy.sh b/.buildkite/scripts/steps/serverless/deploy.sh
index 11191e803509c..5accef8f53797 100644
--- a/.buildkite/scripts/steps/serverless/deploy.sh
+++ b/.buildkite/scripts/steps/serverless/deploy.sh
@@ -43,15 +43,18 @@ deploy() {
}'
echo "--- Create $PROJECT_TYPE_LABEL project"
- DEPLOY_LOGS=$(mktemp --suffix ".json")
echo "Checking if project already exists..."
+ PROJECT_DEPLOY_LOGS=$(mktemp --suffix ".json")
+ PROJECT_EXISTS_LOGS=$(mktemp --suffix ".json")
+ PROJECT_INFO_LOGS=$(mktemp --suffix ".json")
+
curl -s \
-H "Authorization: ApiKey $PROJECT_API_KEY" \
"${PROJECT_API_DOMAIN}/api/v1/serverless/projects/${PROJECT_TYPE}" \
- -XGET &>> $DEPLOY_LOGS
+ -XGET &> $PROJECT_EXISTS_LOGS
- PROJECT_ID=$(jq -r --slurp '[.[0].items[] | select(.name == "'$PROJECT_NAME'")] | .[0].id' $DEPLOY_LOGS)
+ PROJECT_ID=$(jq -r '[.items[] | select(.name == "'$PROJECT_NAME'")] | .[0].id' $PROJECT_EXISTS_LOGS)
if is_pr_with_label "ci:project-redeploy"; then
if [ -z "${PROJECT_ID}" ]; then
echo "No project to remove"
@@ -72,30 +75,25 @@ deploy() {
-H "Authorization: ApiKey $PROJECT_API_KEY" \
-H "Content-Type: application/json" \
"${PROJECT_API_DOMAIN}/api/v1/serverless/projects/${PROJECT_TYPE}" \
- -XPOST -d "$PROJECT_CREATE_CONFIGURATION" &>> $DEPLOY_LOGS
+ -XPOST -d "$PROJECT_CREATE_CONFIGURATION" &> $PROJECT_DEPLOY_LOGS
- PROJECT_ID=$(jq -r --slurp '.[1].id' $DEPLOY_LOGS)
+ PROJECT_ID=$(jq -r '.id' $PROJECT_DEPLOY_LOGS)
if [ -z "${PROJECT_ID}" ] || [ "$PROJECT_ID" = 'null' ]; then
echo "Failed to create project. Deploy logs:"
- cat $DEPLOY_LOGS
+ cat $PROJECT_DEPLOY_LOGS
exit 1
fi
-
- echo "Get credentials..."
- curl -s -XPOST -H "Authorization: ApiKey $PROJECT_API_KEY" \
- "${PROJECT_API_DOMAIN}/api/v1/serverless/projects/${PROJECT_TYPE}/${PROJECT_ID}/_reset-internal-credentials" &>> $DEPLOY_LOGS
-
- PROJECT_USERNAME=$(jq -r --slurp '.[2].username' $DEPLOY_LOGS)
- PROJECT_PASSWORD=$(jq -r --slurp '.[2].password' $DEPLOY_LOGS)
+ PROJECT_USERNAME=$(jq -r '.credentials.username' $PROJECT_DEPLOY_LOGS)
+ PROJECT_PASSWORD=$(jq -r '.credentials.password' $PROJECT_DEPLOY_LOGS)
echo "Write to vault..."
- VAULT_ROLE_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-role-id)"
- VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)"
- VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID")
- retry 5 30 vault login -no-print "$VAULT_TOKEN"
# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done
if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
+ VAULT_ROLE_ID="$(get_vault_role_id)"
+ VAULT_SECRET_ID="$(get_vault_secret_id)"
+ VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID")
+ retry 5 30 vault login -no-print "$VAULT_TOKEN"
vault_set "cloud-deploy/$VAULT_KEY_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID"
else
vault_kv_set "cloud-deploy/$VAULT_KEY_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID"
@@ -107,12 +105,18 @@ deploy() {
-H "Authorization: ApiKey $PROJECT_API_KEY" \
-H "Content-Type: application/json" \
"${PROJECT_API_DOMAIN}/api/v1/serverless/projects/${PROJECT_TYPE}/${PROJECT_ID}" \
- -XPUT -d "$PROJECT_UPDATE_CONFIGURATION" &>> $DEPLOY_LOGS
+ -XPUT -d "$PROJECT_UPDATE_CONFIGURATION" &> $PROJECT_DEPLOY_LOGS
fi
- PROJECT_KIBANA_URL=$(jq -r --slurp '.[1].endpoints.kibana' $DEPLOY_LOGS)
+ echo "Getting project info..."
+ curl -s \
+ -H "Authorization: ApiKey $PROJECT_API_KEY" \
+ "${PROJECT_API_DOMAIN}/api/v1/serverless/projects/${PROJECT_TYPE}/${PROJECT_ID}" \
+ -XGET &> $PROJECT_INFO_LOGS
+
+ PROJECT_KIBANA_URL=$(jq -r '.endpoints.kibana' $PROJECT_INFO_LOGS)
PROJECT_KIBANA_LOGIN_URL="${PROJECT_KIBANA_URL}/login"
- PROJECT_ELASTICSEARCH_URL=$(jq -r --slurp '.[1].endpoints.elasticsearch' $DEPLOY_LOGS)
+ PROJECT_ELASTICSEARCH_URL=$(jq -r '.endpoints.elasticsearch' $PROJECT_INFO_LOGS)
# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done
if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then
@@ -142,7 +146,7 @@ create_github_issue_oblt_test_environments() {
echo "--- Create GitHub issue for deploying in the oblt test env"
-GITHUB_ISSUE=$(mktemp --suffix ".md")
+GITHUB_ISSUE=$(mktemp --suffix ".md")
cat < "$GITHUB_ISSUE"
### Kibana image
diff --git a/.eslintrc.js b/.eslintrc.js
index 44a6870a78d49..f6ca3908bc086 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -177,6 +177,7 @@ const DEV_PATTERNS = [
'x-pack/performance/**/*',
'src/setup_node_env/index.js',
'src/cli/dev.js',
+ 'packages/kbn-esql-validation-autocomplete/scripts/**/*',
];
/** Restricted imports with suggested alternatives */
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index ed4759629b659..726e9c2223d39 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1565,6 +1565,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/
## Security Solution sub teams - security-defend-workflows
/x-pack/plugins/security_solution/public/management/ @elastic/security-defend-workflows
/x-pack/plugins/security_solution/public/common/lib/endpoint*/ @elastic/security-defend-workflows
+/x-pack/plugins/security_solution/public/common/components/agents/ @elastic/security-defend-workflows
/x-pack/plugins/security_solution/public/common/components/endpoint/ @elastic/security-defend-workflows
/x-pack/plugins/security_solution/common/endpoint/ @elastic/security-defend-workflows
/x-pack/plugins/security_solution/server/endpoint/ @elastic/security-defend-workflows
diff --git a/.github/workflows/project-assigner.yml b/.github/workflows/project-assigner.yml
index 8c381dd1ecdef..a5fe7c736ad3a 100644
--- a/.github/workflows/project-assigner.yml
+++ b/.github/workflows/project-assigner.yml
@@ -13,7 +13,6 @@ jobs:
with:
issue-mappings: |
[
- {"label": "Feature:Lens", "projectNumber": 32, "columnName": "Long-term goals"},
{"label": "Team:DataDiscovery", "projectNumber": 44, "columnName": "Inbox"},
{"label": "Feature:Canvas", "projectNumber": 38, "columnName": "Inbox"},
{"label": "Feature:Dashboard", "projectNumber": 68, "columnName": "Inbox"},
diff --git a/.node-version b/.node-version
index 87834047a6fa6..f203ab89b795f 100644
--- a/.node-version
+++ b/.node-version
@@ -1 +1 @@
-20.12.2
+20.13.1
diff --git a/.nvmrc b/.nvmrc
index 87834047a6fa6..f203ab89b795f 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-20.12.2
+20.13.1
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index 4be7fa6a9848e..2b03b20803bd7 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -22,13 +22,13 @@ load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install
# Setup the Node.js toolchain for the architectures we want to support
node_repositories(
node_repositories = {
- "20.12.2-darwin_amd64": ("node-v20.12.2-darwin-x64.tar.gz", "node-v20.12.2-darwin-x64", "cd5e9a80a38ccffc036a87b232a5402339c7bf8fa9a494ae0731a1a671687718"),
- "20.12.2-darwin_arm64": ("node-v20.12.2-darwin-arm64.tar.gz", "node-v20.12.2-darwin-arm64", "98eb624b52efec2530079e1d11296ec0ac20771b94b087d21649250339cf5332"),
- "20.12.2-linux_arm64": ("node-v20.12.2-linux-arm64.tar.xz", "node-v20.12.2-linux-arm64", "26f6dfac78a119e088458c1e6f2beb6c546a170d916060a23c92075718f92966"),
- "20.12.2-linux_amd64": ("node-v20.12.2-linux-x64.tar.xz", "node-v20.12.2-linux-x64", "37756bc241b099e7435e20ba088dd9c13f39c6dc4235661c807cdd7b361371ef"),
- "20.12.2-windows_amd64": ("node-v20.12.2-win-x64.zip", "node-v20.12.2-win-x64", "66dda1717cae30a13be6bb17ad96ee54b69f2c23c85acd9c3299b095fa26b452"),
+ "20.13.1-darwin_amd64": ("node-v20.13.1-darwin-x64.tar.gz", "node-v20.13.1-darwin-x64", "80bde95dc976b84db5ca566738c07305087ae578f5f3b05191e0e6ff54aaeaf2"),
+ "20.13.1-darwin_arm64": ("node-v20.13.1-darwin-arm64.tar.gz", "node-v20.13.1-darwin-arm64", "c30fe595f59dcd2c5158da6bf8bc251ffc85ca37304afa89db150fb3c62c4507"),
+ "20.13.1-linux_arm64": ("node-v20.13.1-linux-arm64.tar.xz", "node-v20.13.1-linux-arm64", "5a41797a5815f42e0e9e4d2185d07d5d395386dc681a5a914563586c735ae31f"),
+ "20.13.1-linux_amd64": ("node-v20.13.1-linux-x64.tar.xz", "node-v20.13.1-linux-x64", "eb449c4db6c5769c4219fdbfa1c7cbc8b367b9f8c7be1eb534dc8f6a3c80a97f"),
+ "20.13.1-windows_amd64": ("node-v20.13.1-win-x64.zip", "node-v20.13.1-win-x64", "555a55c0c7441cb90e441115c81f610fca712dd5b192034d5eaafd7c29924425"),
},
- node_version = "20.12.2",
+ node_version = "20.13.1",
node_urls = [
"https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v{version}/{filename}",
],
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index 510ab0a516cad..bd4c6daf1fec6 100644
--- a/api_docs/actions.mdx
+++ b/api_docs/actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions
title: "actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the actions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions']
---
import actionsObj from './actions.devdocs.json';
diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx
index 4088abc565351..09e4690e3fdd6 100644
--- a/api_docs/advanced_settings.mdx
+++ b/api_docs/advanced_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings
title: "advancedSettings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the advancedSettings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings']
---
import advancedSettingsObj from './advanced_settings.devdocs.json';
diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx
index ea75f1e5173df..bc1c1d15d84a6 100644
--- a/api_docs/ai_assistant_management_selection.mdx
+++ b/api_docs/ai_assistant_management_selection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection
title: "aiAssistantManagementSelection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiAssistantManagementSelection plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementSelection']
---
import aiAssistantManagementSelectionObj from './ai_assistant_management_selection.devdocs.json';
diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx
index 44a225ead70a3..3aace4647dc51 100644
--- a/api_docs/aiops.mdx
+++ b/api_docs/aiops.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops
title: "aiops"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiops plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops']
---
import aiopsObj from './aiops.devdocs.json';
diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx
index 81b4ca2cb4174..e7bd15cb4ae46 100644
--- a/api_docs/alerting.mdx
+++ b/api_docs/alerting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting
title: "alerting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the alerting plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting']
---
import alertingObj from './alerting.devdocs.json';
diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json
index d7cac23f6082c..6931292f8d133 100644
--- a/api_docs/apm.devdocs.json
+++ b/api_docs/apm.devdocs.json
@@ -5675,9 +5675,55 @@
"Type",
"; end: ",
"Type",
- "; }>]>; }> | undefined; handler: ({}: ",
+ "; }>, ",
+ "TypeC",
+ "<{ documentType: ",
+ "UnionC",
+ "<[",
+ "LiteralC",
+ "<",
+ "ApmDocumentType",
+ ".ServiceTransactionMetric>, ",
+ "LiteralC",
+ "<",
+ "ApmDocumentType",
+ ".TransactionMetric>, ",
+ "LiteralC",
+ "<",
+ "ApmDocumentType",
+ ".TransactionEvent>]>; rollupInterval: ",
+ "UnionC",
+ "<[",
+ "LiteralC",
+ "<",
+ "RollupInterval",
+ ".OneMinute>, ",
+ "LiteralC",
+ "<",
+ "RollupInterval",
+ ".TenMinutes>, ",
+ "LiteralC",
+ "<",
+ "RollupInterval",
+ ".SixtyMinutes>, ",
+ "LiteralC",
+ "<",
+ "RollupInterval",
+ ".None>]>; }>, ",
+ "TypeC",
+ "<{ useDurationSummary: ",
+ "Type",
+ "; }>]>; }> | undefined; handler: ({}: ",
"APMRouteHandlerResources",
- " & { params: { query: { kuery: string; } & { start: number; end: number; }; }; }) => Promise<",
+ " & { params: { query: { kuery: string; } & { start: number; end: number; } & { documentType: ",
+ "ApmDocumentType",
+ ".TransactionMetric | ",
+ "ApmDocumentType",
+ ".ServiceTransactionMetric | ",
+ "ApmDocumentType",
+ ".TransactionEvent; rollupInterval: ",
+ "RollupInterval",
+ "; } & { useDurationSummary: boolean; }; }; }) => Promise<",
"AssetServicesResponse",
">; } & ",
"APMRouteCreateOptions",
diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx
index 88cced128c607..a64ba108febbb 100644
--- a/api_docs/apm.mdx
+++ b/api_docs/apm.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm
title: "apm"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apm plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm']
---
import apmObj from './apm.devdocs.json';
diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx
index 6f8a76cda6c42..3eb0fb077b621 100644
--- a/api_docs/apm_data_access.mdx
+++ b/api_docs/apm_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess
title: "apmDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apmDataAccess plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess']
---
import apmDataAccessObj from './apm_data_access.devdocs.json';
diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx
index e730763d6774b..6a9910f2e96be 100644
--- a/api_docs/asset_manager.mdx
+++ b/api_docs/asset_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager
title: "assetManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the assetManager plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager']
---
import assetManagerObj from './asset_manager.devdocs.json';
diff --git a/api_docs/assets_data_access.mdx b/api_docs/assets_data_access.mdx
index ea4be50611012..3fee86c44aa02 100644
--- a/api_docs/assets_data_access.mdx
+++ b/api_docs/assets_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetsDataAccess
title: "assetsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the assetsDataAccess plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetsDataAccess']
---
import assetsDataAccessObj from './assets_data_access.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index 015a3ce9ca0a9..c6ab529c57b83 100644
--- a/api_docs/banners.mdx
+++ b/api_docs/banners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners
title: "banners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the banners plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners']
---
import bannersObj from './banners.devdocs.json';
diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx
index 55edd6dce5adf..c2b9f25fab6bb 100644
--- a/api_docs/bfetch.mdx
+++ b/api_docs/bfetch.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch
title: "bfetch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the bfetch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch']
---
import bfetchObj from './bfetch.devdocs.json';
diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx
index 506b2f3811330..63cc7252173ce 100644
--- a/api_docs/canvas.mdx
+++ b/api_docs/canvas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas
title: "canvas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the canvas plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas']
---
import canvasObj from './canvas.devdocs.json';
diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx
index 7486f3767189e..6f8b7d61134c7 100644
--- a/api_docs/cases.mdx
+++ b/api_docs/cases.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases
title: "cases"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cases plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases']
---
import casesObj from './cases.devdocs.json';
diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx
index bbe4308a5e620..fe35f776247fc 100644
--- a/api_docs/charts.mdx
+++ b/api_docs/charts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts
title: "charts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the charts plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts']
---
import chartsObj from './charts.devdocs.json';
diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx
index f998b37f6a854..23e62de0022b3 100644
--- a/api_docs/cloud.mdx
+++ b/api_docs/cloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud
title: "cloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloud plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud']
---
import cloudObj from './cloud.devdocs.json';
diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx
index 7e98cca66e086..7feb497f580a1 100644
--- a/api_docs/cloud_data_migration.mdx
+++ b/api_docs/cloud_data_migration.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration
title: "cloudDataMigration"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDataMigration plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration']
---
import cloudDataMigrationObj from './cloud_data_migration.devdocs.json';
diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx
index ecc45443d2d53..6b18520da551e 100644
--- a/api_docs/cloud_defend.mdx
+++ b/api_docs/cloud_defend.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend
title: "cloudDefend"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDefend plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend']
---
import cloudDefendObj from './cloud_defend.devdocs.json';
diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx
index c14fe3cf31f06..b21626de958e8 100644
--- a/api_docs/cloud_experiments.mdx
+++ b/api_docs/cloud_experiments.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments
title: "cloudExperiments"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudExperiments plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments']
---
import cloudExperimentsObj from './cloud_experiments.devdocs.json';
diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx
index a7643a7676a0f..e140dabf9ab3e 100644
--- a/api_docs/cloud_security_posture.mdx
+++ b/api_docs/cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture
title: "cloudSecurityPosture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudSecurityPosture plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture']
---
import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json';
diff --git a/api_docs/console.devdocs.json b/api_docs/console.devdocs.json
index 5aa8157a41915..986e786eca067 100644
--- a/api_docs/console.devdocs.json
+++ b/api_docs/console.devdocs.json
@@ -359,7 +359,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "src/plugins/console/public/types/plugin_dependencies.ts",
"deprecated": false,
diff --git a/api_docs/console.mdx b/api_docs/console.mdx
index 54917b6e3a79a..59c564b3f8047 100644
--- a/api_docs/console.mdx
+++ b/api_docs/console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console
title: "console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the console plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console']
---
import consoleObj from './console.devdocs.json';
diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx
index ae514605f8b58..6116675bb8397 100644
--- a/api_docs/content_management.mdx
+++ b/api_docs/content_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement
title: "contentManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the contentManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement']
---
import contentManagementObj from './content_management.devdocs.json';
diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx
index 71c4c87c9c9b2..c21fd05767f82 100644
--- a/api_docs/controls.mdx
+++ b/api_docs/controls.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls
title: "controls"
image: https://source.unsplash.com/400x175/?github
description: API docs for the controls plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls']
---
import controlsObj from './controls.devdocs.json';
diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx
index e10274577dde8..57bc015bc7f73 100644
--- a/api_docs/custom_integrations.mdx
+++ b/api_docs/custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations
title: "customIntegrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the customIntegrations plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations']
---
import customIntegrationsObj from './custom_integrations.devdocs.json';
diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx
index 4a471f586a436..9f709be16a1c4 100644
--- a/api_docs/dashboard.mdx
+++ b/api_docs/dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard
title: "dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboard plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard']
---
import dashboardObj from './dashboard.devdocs.json';
diff --git a/api_docs/dashboard_enhanced.devdocs.json b/api_docs/dashboard_enhanced.devdocs.json
index a2a75a84fb2fd..56c455e6df7ac 100644
--- a/api_docs/dashboard_enhanced.devdocs.json
+++ b/api_docs/dashboard_enhanced.devdocs.json
@@ -684,7 +684,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "x-pack/plugins/dashboard_enhanced/public/plugin.ts",
"deprecated": false,
diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx
index c7db0883c506e..6be582e182c80 100644
--- a/api_docs/dashboard_enhanced.mdx
+++ b/api_docs/dashboard_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced
title: "dashboardEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboardEnhanced plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced']
---
import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json';
diff --git a/api_docs/data.mdx b/api_docs/data.mdx
index 6cf38ffdb89ca..7e8e9eed0172e 100644
--- a/api_docs/data.mdx
+++ b/api_docs/data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data
title: "data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index ff97dea637e89..4cb3068d7056a 100644
--- a/api_docs/data_query.mdx
+++ b/api_docs/data_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query
title: "data.query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.query plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query']
---
import dataQueryObj from './data_query.devdocs.json';
diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx
index 81ca93f2827ea..f69f1c34659a9 100644
--- a/api_docs/data_search.mdx
+++ b/api_docs/data_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search
title: "data.search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.search plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search']
---
import dataSearchObj from './data_search.devdocs.json';
diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx
index f27aedf8d67b9..31b7853e199cd 100644
--- a/api_docs/data_view_editor.mdx
+++ b/api_docs/data_view_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor
title: "dataViewEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewEditor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor']
---
import dataViewEditorObj from './data_view_editor.devdocs.json';
diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx
index 02d02cb19da75..e7837b9a482cb 100644
--- a/api_docs/data_view_field_editor.mdx
+++ b/api_docs/data_view_field_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor
title: "dataViewFieldEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewFieldEditor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor']
---
import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json';
diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx
index 0ee6d1160f909..936c8ac9463bc 100644
--- a/api_docs/data_view_management.mdx
+++ b/api_docs/data_view_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement
title: "dataViewManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement']
---
import dataViewManagementObj from './data_view_management.devdocs.json';
diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx
index 885a0c1bb8cd9..d9f103a31e961 100644
--- a/api_docs/data_views.mdx
+++ b/api_docs/data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews
title: "dataViews"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViews plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews']
---
import dataViewsObj from './data_views.devdocs.json';
diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx
index df7477b20950e..3aa500f2d848e 100644
--- a/api_docs/data_visualizer.mdx
+++ b/api_docs/data_visualizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer
title: "dataVisualizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataVisualizer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/dataset_quality.devdocs.json b/api_docs/dataset_quality.devdocs.json
index face187eedf5d..aab9fca4ec849 100644
--- a/api_docs/dataset_quality.devdocs.json
+++ b/api_docs/dataset_quality.devdocs.json
@@ -161,24 +161,6 @@
"DatasetQualityRouteHandlerResources",
" & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; }; }; }) => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ path: string; src: string; } & { title?: string | undefined; size?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; dashboards?: { id: string; title: string; }[] | undefined; })[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
- "; \"GET /internal/dataset_quality/data_streams/estimated_data\": { endpoint: \"GET /internal/dataset_quality/data_streams/estimated_data\"; params?: ",
- "TypeC",
- "<{ query: ",
- "IntersectionC",
- "<[",
- "PartialC",
- "<{ type: ",
- "KeyofC",
- "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>, ",
- "TypeC",
- "<{ start: ",
- "Type",
- "; end: ",
- "Type",
- "; }>]>; }> | undefined; handler: ({}: ",
- "DatasetQualityRouteHandlerResources",
- " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { start: number; end: number; }; }; }) => Promise<{ estimatedDataInBytes: number | null; }>; } & ",
- "DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ",
"TypeC",
"<{ path: ",
@@ -205,6 +187,28 @@
"DatasetQualityRouteHandlerResources",
" & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; }>; } & ",
"DatasetQualityRouteCreateOptions",
+ "; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/non_aggregatable\"; params?: ",
+ "TypeC",
+ "<{ query: ",
+ "IntersectionC",
+ "<[",
+ "TypeC",
+ "<{ start: ",
+ "Type",
+ "; end: ",
+ "Type",
+ "; }>, ",
+ "PartialC",
+ "<{ type: ",
+ "KeyofC",
+ "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>, ",
+ "PartialC",
+ "<{ dataStream: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
+ "DatasetQualityRouteHandlerResources",
+ " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { dataStream?: string | undefined; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ",
+ "DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ",
"TypeC",
"<{ query: ",
@@ -225,7 +229,7 @@
"StringC",
"; }>]>; }> | undefined; handler: ({}: ",
"DatasetQualityRouteHandlerResources",
- " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; totalDocs: number; percentage: number; }[]; }>; } & ",
+ " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ",
"TypeC",
@@ -241,7 +245,7 @@
"StringC",
"; }>]>; }> | undefined; handler: ({}: ",
"DatasetQualityRouteHandlerResources",
- " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ dataStreamsStats: ({ name: string; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; })[]; }>; } & ",
+ " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ dataStreamsStats: ({ name: string; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
"; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ",
{
@@ -296,24 +300,6 @@
"DatasetQualityRouteHandlerResources",
" & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; }; }; }) => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ path: string; src: string; } & { title?: string | undefined; size?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; dashboards?: { id: string; title: string; }[] | undefined; })[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
- "; \"GET /internal/dataset_quality/data_streams/estimated_data\": { endpoint: \"GET /internal/dataset_quality/data_streams/estimated_data\"; params?: ",
- "TypeC",
- "<{ query: ",
- "IntersectionC",
- "<[",
- "PartialC",
- "<{ type: ",
- "KeyofC",
- "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>, ",
- "TypeC",
- "<{ start: ",
- "Type",
- "; end: ",
- "Type",
- "; }>]>; }> | undefined; handler: ({}: ",
- "DatasetQualityRouteHandlerResources",
- " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { start: number; end: number; }; }; }) => Promise<{ estimatedDataInBytes: number | null; }>; } & ",
- "DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ",
"TypeC",
"<{ path: ",
@@ -340,6 +326,28 @@
"DatasetQualityRouteHandlerResources",
" & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; }>; } & ",
"DatasetQualityRouteCreateOptions",
+ "; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/non_aggregatable\"; params?: ",
+ "TypeC",
+ "<{ query: ",
+ "IntersectionC",
+ "<[",
+ "TypeC",
+ "<{ start: ",
+ "Type",
+ "; end: ",
+ "Type",
+ "; }>, ",
+ "PartialC",
+ "<{ type: ",
+ "KeyofC",
+ "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>, ",
+ "PartialC",
+ "<{ dataStream: ",
+ "StringC",
+ "; }>]>; }> | undefined; handler: ({}: ",
+ "DatasetQualityRouteHandlerResources",
+ " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { dataStream?: string | undefined; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ",
+ "DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ",
"TypeC",
"<{ query: ",
@@ -360,7 +368,7 @@
"StringC",
"; }>]>; }> | undefined; handler: ({}: ",
"DatasetQualityRouteHandlerResources",
- " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; totalDocs: number; percentage: number; }[]; }>; } & ",
+ " & { params: { query: { start: number; end: number; } & { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
"; \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ",
"TypeC",
@@ -376,7 +384,7 @@
"StringC",
"; }>]>; }> | undefined; handler: ({}: ",
"DatasetQualityRouteHandlerResources",
- " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ dataStreamsStats: ({ name: string; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; })[]; }>; } & ",
+ " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ dataStreamsStats: ({ name: string; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ",
"DatasetQualityRouteCreateOptions",
"; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ",
"ServerRouteCreateOptions",
diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx
index 93904e83903af..1fbe2ddba8870 100644
--- a/api_docs/dataset_quality.mdx
+++ b/api_docs/dataset_quality.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality
title: "datasetQuality"
image: https://source.unsplash.com/400x175/?github
description: API docs for the datasetQuality plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality']
---
import datasetQualityObj from './dataset_quality.devdocs.json';
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index 5033403d6b0b5..3484b1ce59e17 100644
--- a/api_docs/deprecations_by_api.mdx
+++ b/api_docs/deprecations_by_api.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api
title: Deprecated API usage by API
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -61,6 +61,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | @kbn/monaco, securitySolution | - |
| | fleet, cloudSecurityPosture, exploratoryView, osquery, synthetics | - |
| | actions, alerting | - |
+| | discover, @kbn/reporting-public | - |
| | data, discover, imageEmbeddable, embeddable | - |
| | @kbn/core-plugins-browser-internal, @kbn/core-root-browser-internal, home, savedObjects, unifiedSearch, visualizations, fileUpload, dashboardEnhanced, transform, dashboard, discover, dataVisualizer | - |
| | @kbn/core-saved-objects-browser-mocks, discover, @kbn/core-saved-objects-browser-internal | - |
@@ -121,7 +122,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | unifiedSearch | - |
| | embeddableEnhanced | - |
| | embeddableEnhanced | - |
-| | infra, metricsDataAccess, apm, observabilityOnboarding | - |
| | uiActionsEnhanced | - |
| | observabilityShared | - |
| | canvas | - |
@@ -139,9 +139,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | visTypePie | - |
| | @kbn/core-logging-server-internal, security | - |
| | spaces, savedObjectsManagement | - |
-| | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, enterpriseSearch, observabilityOnboarding, console | - |
| | @kbn/react-kibana-context-styled, kibanaReact | - |
| | enterpriseSearch | - |
+| | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, enterpriseSearch, observabilityOnboarding, console | - |
| | encryptedSavedObjects | - |
| | @kbn/content-management-table-list-view, filesManagement | - |
| | @kbn/core | - |
@@ -211,6 +211,7 @@ Safe to remove.
| | expressions |
| | home |
| | kibanaReact |
+| | kibanaReact |
| | kibanaReact |
| | licensing |
| | licensing |
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index 88ee873651a42..d3e015c7dfb5e 100644
--- a/api_docs/deprecations_by_plugin.mdx
+++ b/api_docs/deprecations_by_plugin.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin
title: Deprecated API usage by plugin
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -373,6 +373,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
+## @kbn/reporting-public
+
+| Deprecated API | Reference location(s) | Remove By |
+| ---------------|-----------|-----------|
+| | [register_pdf_png_modal_reporting.tsx](https://github.com/elastic/kibana/tree/main/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx#:~:text=shareableUrlForSavedObject), [register_pdf_png_modal_reporting.tsx](https://github.com/elastic/kibana/tree/main/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx#:~:text=shareableUrlForSavedObject) | - |
+
+
+
## @kbn/securitysolution-data-table
| Deprecated API | Reference location(s) | Remove By |
@@ -442,7 +450,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Deprecated API | Reference location(s) | Remove By |
| ---------------|-----------|-----------|
| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/public/plugin.ts#:~:text=environment) | 8.8.0 |
-| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/public/application/index.tsx#:~:text=KibanaThemeProvider) | - |
| | [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | 8.8.0 |
| | [license_context.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/public/context/license/license_context.tsx#:~:text=license%24) | 8.8.0 |
| | [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | 8.8.0 |
@@ -636,6 +643,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - |
| | [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/plugin.tsx#:~:text=registerEmbeddableFactory) | - |
| | [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 |
+| | [get_top_nav_links.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx#:~:text=shareableUrlForSavedObject) | - |
| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions) | - |
| | [discover_state.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/state_management/discover_state.test.ts#:~:text=savedObjects) | - |
| | [discover_state.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/discover/public/application/main/state_management/discover_state.test.ts#:~:text=resolve) | - |
@@ -812,7 +820,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Deprecated API | Reference location(s) | Remove By |
| ---------------|-----------|-----------|
| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/plugin.ts#:~:text=registerEmbeddableFactory) | - |
-| | [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider) | - |
| | [saved_object_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/infra/server/lib/sources/saved_object_type.ts#:~:text=migrations) | - |
@@ -961,14 +968,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
-## metricsDataAccess
-
-| Deprecated API | Reference location(s) | Remove By |
-| ---------------|-----------|-----------|
-| | [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider) | - |
-
-
-
## ml
| Deprecated API | Reference location(s) | Remove By |
@@ -998,7 +997,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Deprecated API | Reference location(s) | Remove By |
| ---------------|-----------|-----------|
-| | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx#:~:text=KibanaThemeProvider) | - |
| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/observability_solution/observability_onboarding/server/plugin.ts#:~:text=legacy) | - |
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index 1ac11a04b1ea0..2f894b503ca2e 100644
--- a/api_docs/deprecations_by_team.mdx
+++ b/api_docs/deprecations_by_team.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam
slug: /kibana-dev-docs/api-meta/deprecations-due-by-team
title: Deprecated APIs due to be removed, by team
description: Lists the teams that are referencing deprecated APIs with a remove by date.
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index 49b04472e93bf..c5d5c207bb7e5 100644
--- a/api_docs/dev_tools.mdx
+++ b/api_docs/dev_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools
title: "devTools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the devTools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools']
---
import devToolsObj from './dev_tools.devdocs.json';
diff --git a/api_docs/discover.devdocs.json b/api_docs/discover.devdocs.json
index fc1fe785c87e6..7952724d9e5d0 100644
--- a/api_docs/discover.devdocs.json
+++ b/api_docs/discover.devdocs.json
@@ -259,15 +259,16 @@
},
{
"parentPluginId": "discover",
- "id": "def-public.DiscoverAppState.index",
- "type": "string",
+ "id": "def-public.DiscoverAppState.dataSource",
+ "type": "CompoundType",
"tags": [],
- "label": "index",
+ "label": "dataSource",
"description": [
- "\nid of the used data view"
+ "\nThe current data source"
],
"signature": [
- "string | undefined"
+ "DiscoverDataSource",
+ " | undefined"
],
"path": "src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts",
"deprecated": false,
diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx
index f008b80b21e8e..a573d3acffed7 100644
--- a/api_docs/discover.mdx
+++ b/api_docs/discover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover
title: "discover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discover plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover']
---
import discoverObj from './discover.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 148 | 0 | 101 | 27 |
+| 148 | 0 | 101 | 28 |
## Client
diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx
index 2ac1b9c858a08..39a7df34b14a9 100644
--- a/api_docs/discover_enhanced.mdx
+++ b/api_docs/discover_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced
title: "discoverEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverEnhanced plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/discover_shared.mdx b/api_docs/discover_shared.mdx
index 36ab4a31b0c69..9bb1f8432c587 100644
--- a/api_docs/discover_shared.mdx
+++ b/api_docs/discover_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverShared
title: "discoverShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverShared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverShared']
---
import discoverSharedObj from './discover_shared.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index 4e2da5d4b2473..6f35f8bcd50ff 100644
--- a/api_docs/ecs_data_quality_dashboard.mdx
+++ b/api_docs/ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard
title: "ecsDataQualityDashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ecsDataQualityDashboard plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard']
---
import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/elastic_assistant.devdocs.json b/api_docs/elastic_assistant.devdocs.json
index aa0c1898b03bc..305f009d109af 100644
--- a/api_docs/elastic_assistant.devdocs.json
+++ b/api_docs/elastic_assistant.devdocs.json
@@ -1469,6 +1469,20 @@
"deprecated": false,
"trackAdoption": false
},
+ {
+ "parentPluginId": "elasticAssistant",
+ "id": "def-server.AssistantToolParams.langChainTimeout",
+ "type": "number",
+ "tags": [],
+ "label": "langChainTimeout",
+ "description": [],
+ "signature": [
+ "number | undefined"
+ ],
+ "path": "x-pack/plugins/elastic_assistant/server/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "elasticAssistant",
"id": "def-server.AssistantToolParams.llm",
diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx
index eb80a63f764dc..d19fec0143b78 100644
--- a/api_docs/elastic_assistant.mdx
+++ b/api_docs/elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant
title: "elasticAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the elasticAssistant plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant']
---
import elasticAssistantObj from './elastic_assistant.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 45 | 0 | 31 | 0 |
+| 46 | 0 | 32 | 0 |
## Server
diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx
index 04febed709e1c..31852010bdf93 100644
--- a/api_docs/embeddable.mdx
+++ b/api_docs/embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable
title: "embeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddable plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable']
---
import embeddableObj from './embeddable.devdocs.json';
diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx
index 18cc1b23e4a44..8b5df61a78310 100644
--- a/api_docs/embeddable_enhanced.mdx
+++ b/api_docs/embeddable_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced
title: "embeddableEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddableEnhanced plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced']
---
import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json';
diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx
index d0fd3cc102bbc..f873b8b7ea452 100644
--- a/api_docs/encrypted_saved_objects.mdx
+++ b/api_docs/encrypted_saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects
title: "encryptedSavedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the encryptedSavedObjects plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects']
---
import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json';
diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx
index 7f1d62a5295e2..12f63298f1e8a 100644
--- a/api_docs/enterprise_search.mdx
+++ b/api_docs/enterprise_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch
title: "enterpriseSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the enterpriseSearch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch']
---
import enterpriseSearchObj from './enterprise_search.devdocs.json';
diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx
index 702889620fffb..38f793e6e3cf3 100644
--- a/api_docs/es_ui_shared.mdx
+++ b/api_docs/es_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared
title: "esUiShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esUiShared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared']
---
import esUiSharedObj from './es_ui_shared.devdocs.json';
diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx
index d85d967d3a951..4b58558077372 100644
--- a/api_docs/event_annotation.mdx
+++ b/api_docs/event_annotation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation
title: "eventAnnotation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotation plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation']
---
import eventAnnotationObj from './event_annotation.devdocs.json';
diff --git a/api_docs/event_annotation_listing.mdx b/api_docs/event_annotation_listing.mdx
index b86b4f6e011cf..c4e36759ebcb0 100644
--- a/api_docs/event_annotation_listing.mdx
+++ b/api_docs/event_annotation_listing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing
title: "eventAnnotationListing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotationListing plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing']
---
import eventAnnotationListingObj from './event_annotation_listing.devdocs.json';
diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx
index 278ae87b2defa..aa4cac38c3367 100644
--- a/api_docs/event_log.mdx
+++ b/api_docs/event_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog
title: "eventLog"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventLog plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog']
---
import eventLogObj from './event_log.devdocs.json';
diff --git a/api_docs/exploratory_view.devdocs.json b/api_docs/exploratory_view.devdocs.json
index 80f8f25a04aef..c497dbbb713bf 100644
--- a/api_docs/exploratory_view.devdocs.json
+++ b/api_docs/exploratory_view.devdocs.json
@@ -879,7 +879,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "x-pack/plugins/observability_solution/exploratory_view/public/plugin.ts",
"deprecated": false,
diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx
index a0bf52dd7c4ff..d5c33b0355bfd 100644
--- a/api_docs/exploratory_view.mdx
+++ b/api_docs/exploratory_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView
title: "exploratoryView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the exploratoryView plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView']
---
import exploratoryViewObj from './exploratory_view.devdocs.json';
diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx
index 66bb82a46b19f..92fb61102ed82 100644
--- a/api_docs/expression_error.mdx
+++ b/api_docs/expression_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError
title: "expressionError"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionError plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError']
---
import expressionErrorObj from './expression_error.devdocs.json';
diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx
index fcb9278e642cc..64c30900fea0e 100644
--- a/api_docs/expression_gauge.mdx
+++ b/api_docs/expression_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge
title: "expressionGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionGauge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge']
---
import expressionGaugeObj from './expression_gauge.devdocs.json';
diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx
index cfd1135173710..97ce394d13297 100644
--- a/api_docs/expression_heatmap.mdx
+++ b/api_docs/expression_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap
title: "expressionHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionHeatmap plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap']
---
import expressionHeatmapObj from './expression_heatmap.devdocs.json';
diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx
index e7226942e262e..f999ef8c264a3 100644
--- a/api_docs/expression_image.mdx
+++ b/api_docs/expression_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage
title: "expressionImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionImage plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage']
---
import expressionImageObj from './expression_image.devdocs.json';
diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx
index 952a810f9a61c..3e85f5c33d4f7 100644
--- a/api_docs/expression_legacy_metric_vis.mdx
+++ b/api_docs/expression_legacy_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis
title: "expressionLegacyMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionLegacyMetricVis plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis']
---
import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json';
diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx
index 10792ca866c8b..f44bd480a43a8 100644
--- a/api_docs/expression_metric.mdx
+++ b/api_docs/expression_metric.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric
title: "expressionMetric"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetric plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric']
---
import expressionMetricObj from './expression_metric.devdocs.json';
diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx
index 2fc3c3b7c3926..9fde2f242ea24 100644
--- a/api_docs/expression_metric_vis.mdx
+++ b/api_docs/expression_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis
title: "expressionMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetricVis plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis']
---
import expressionMetricVisObj from './expression_metric_vis.devdocs.json';
diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx
index 43de95e7c6de3..9b2d015678da7 100644
--- a/api_docs/expression_partition_vis.mdx
+++ b/api_docs/expression_partition_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis
title: "expressionPartitionVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionPartitionVis plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis']
---
import expressionPartitionVisObj from './expression_partition_vis.devdocs.json';
diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx
index acf07de3ff939..ee9bed795bece 100644
--- a/api_docs/expression_repeat_image.mdx
+++ b/api_docs/expression_repeat_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage
title: "expressionRepeatImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRepeatImage plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage']
---
import expressionRepeatImageObj from './expression_repeat_image.devdocs.json';
diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx
index 40cb044d47199..4ff15f37e6ce1 100644
--- a/api_docs/expression_reveal_image.mdx
+++ b/api_docs/expression_reveal_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage
title: "expressionRevealImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRevealImage plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage']
---
import expressionRevealImageObj from './expression_reveal_image.devdocs.json';
diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx
index 32f6691a16c07..ba12b8c7a6dbe 100644
--- a/api_docs/expression_shape.mdx
+++ b/api_docs/expression_shape.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape
title: "expressionShape"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionShape plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape']
---
import expressionShapeObj from './expression_shape.devdocs.json';
diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx
index 58c7359a46616..da8162d419510 100644
--- a/api_docs/expression_tagcloud.mdx
+++ b/api_docs/expression_tagcloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud
title: "expressionTagcloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionTagcloud plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud']
---
import expressionTagcloudObj from './expression_tagcloud.devdocs.json';
diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx
index 948f4e28fdf21..b365a68b9e3ba 100644
--- a/api_docs/expression_x_y.mdx
+++ b/api_docs/expression_x_y.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY
title: "expressionXY"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionXY plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY']
---
import expressionXYObj from './expression_x_y.devdocs.json';
diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx
index 7578aa1cb3512..24d787922f307 100644
--- a/api_docs/expressions.mdx
+++ b/api_docs/expressions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions
title: "expressions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions']
---
import expressionsObj from './expressions.devdocs.json';
diff --git a/api_docs/features.mdx b/api_docs/features.mdx
index 6d4ef81379eb0..af9e00aea4fa7 100644
--- a/api_docs/features.mdx
+++ b/api_docs/features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features
title: "features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the features plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features']
---
import featuresObj from './features.devdocs.json';
diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx
index 2854e94d6ec43..e28bd87d9bf89 100644
--- a/api_docs/field_formats.mdx
+++ b/api_docs/field_formats.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats
title: "fieldFormats"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldFormats plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats']
---
import fieldFormatsObj from './field_formats.devdocs.json';
diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx
index 6a2b0086a3da8..ae49a90838b4f 100644
--- a/api_docs/file_upload.mdx
+++ b/api_docs/file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload
title: "fileUpload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fileUpload plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload']
---
import fileUploadObj from './file_upload.devdocs.json';
diff --git a/api_docs/files.mdx b/api_docs/files.mdx
index 5cc88f1d6a657..bacb2f50b06c8 100644
--- a/api_docs/files.mdx
+++ b/api_docs/files.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files
title: "files"
image: https://source.unsplash.com/400x175/?github
description: API docs for the files plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files']
---
import filesObj from './files.devdocs.json';
diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx
index 6baa360c50aa1..ae74197ed4f54 100644
--- a/api_docs/files_management.mdx
+++ b/api_docs/files_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement
title: "filesManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the filesManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement']
---
import filesManagementObj from './files_management.devdocs.json';
diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json
index 6c794a3b912e8..06263703c93a7 100644
--- a/api_docs/fleet.devdocs.json
+++ b/api_docs/fleet.devdocs.json
@@ -18903,6 +18903,54 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "fleet",
+ "id": "def-common.isValidDataset",
+ "type": "Function",
+ "tags": [],
+ "label": "isValidDataset",
+ "description": [],
+ "signature": [
+ "(dataset: string, allowBlank: boolean | undefined) => { valid: boolean; error?: string | undefined; }"
+ ],
+ "path": "x-pack/plugins/fleet/common/services/is_valid_namespace.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "fleet",
+ "id": "def-common.isValidDataset.$1",
+ "type": "string",
+ "tags": [],
+ "label": "dataset",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "x-pack/plugins/fleet/common/services/is_valid_namespace.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "fleet",
+ "id": "def-common.isValidDataset.$2",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "allowBlank",
+ "description": [],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "x-pack/plugins/fleet/common/services/is_valid_namespace.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "fleet",
"id": "def-common.isValidNamespace",
diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx
index 2335a2bea99c8..751cbae29e833 100644
--- a/api_docs/fleet.mdx
+++ b/api_docs/fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet
title: "fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fleet plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet']
---
import fleetObj from './fleet.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questi
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 1302 | 5 | 1181 | 66 |
+| 1305 | 5 | 1184 | 66 |
## Client
diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx
index 7f85ddc753d39..5c7dc5d236ad4 100644
--- a/api_docs/global_search.mdx
+++ b/api_docs/global_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch
title: "globalSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the globalSearch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch']
---
import globalSearchObj from './global_search.devdocs.json';
diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx
index 1421c444bf0bd..ed6a32669c69a 100644
--- a/api_docs/guided_onboarding.mdx
+++ b/api_docs/guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding
title: "guidedOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the guidedOnboarding plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding']
---
import guidedOnboardingObj from './guided_onboarding.devdocs.json';
diff --git a/api_docs/home.mdx b/api_docs/home.mdx
index 2a44994bcdd76..d926b11b5e58b 100644
--- a/api_docs/home.mdx
+++ b/api_docs/home.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home
title: "home"
image: https://source.unsplash.com/400x175/?github
description: API docs for the home plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home']
---
import homeObj from './home.devdocs.json';
diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx
index be66cbed2a19d..3b22ff101a23f 100644
--- a/api_docs/image_embeddable.mdx
+++ b/api_docs/image_embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable
title: "imageEmbeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the imageEmbeddable plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable']
---
import imageEmbeddableObj from './image_embeddable.devdocs.json';
diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx
index 49d3b1161f9b2..b828ecd95544b 100644
--- a/api_docs/index_lifecycle_management.mdx
+++ b/api_docs/index_lifecycle_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement
title: "indexLifecycleManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexLifecycleManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement']
---
import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json';
diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx
index dac48750787fa..b04192c743b00 100644
--- a/api_docs/index_management.mdx
+++ b/api_docs/index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement
title: "indexManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement']
---
import indexManagementObj from './index_management.devdocs.json';
diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx
index d1fefb6bb7778..61b4b7618a6c7 100644
--- a/api_docs/infra.mdx
+++ b/api_docs/infra.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra
title: "infra"
image: https://source.unsplash.com/400x175/?github
description: API docs for the infra plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra']
---
import infraObj from './infra.devdocs.json';
diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx
index b634ac627b559..a5715b95db34c 100644
--- a/api_docs/ingest_pipelines.mdx
+++ b/api_docs/ingest_pipelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines
title: "ingestPipelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ingestPipelines plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines']
---
import ingestPipelinesObj from './ingest_pipelines.devdocs.json';
diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx
index 99f71c3032cbc..c5cd5225f7637 100644
--- a/api_docs/inspector.mdx
+++ b/api_docs/inspector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector
title: "inspector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inspector plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector']
---
import inspectorObj from './inspector.devdocs.json';
diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx
index b6a4dd65e2727..ddd13e1a073ba 100644
--- a/api_docs/interactive_setup.mdx
+++ b/api_docs/interactive_setup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup
title: "interactiveSetup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the interactiveSetup plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup']
---
import interactiveSetupObj from './interactive_setup.devdocs.json';
diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx
index e84d5e434ceb1..30f7ce873c9ae 100644
--- a/api_docs/kbn_ace.mdx
+++ b/api_docs/kbn_ace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace
title: "@kbn/ace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ace plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace']
---
import kbnAceObj from './kbn_ace.devdocs.json';
diff --git a/api_docs/kbn_actions_types.mdx b/api_docs/kbn_actions_types.mdx
index dacb477aaed68..03d955a3b37de 100644
--- a/api_docs/kbn_actions_types.mdx
+++ b/api_docs/kbn_actions_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types
title: "@kbn/actions-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/actions-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/actions-types']
---
import kbnActionsTypesObj from './kbn_actions_types.devdocs.json';
diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx
index 48fcb74c9829a..46642c9d949dc 100644
--- a/api_docs/kbn_aiops_components.mdx
+++ b/api_docs/kbn_aiops_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components
title: "@kbn/aiops-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx
index 284e5f0b761e1..6f0457631edbe 100644
--- a/api_docs/kbn_aiops_log_pattern_analysis.mdx
+++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis
title: "@kbn/aiops-log-pattern-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-pattern-analysis plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis']
---
import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json';
diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx
index f029b9f5b5202..24fc602af53b6 100644
--- a/api_docs/kbn_aiops_log_rate_analysis.mdx
+++ b/api_docs/kbn_aiops_log_rate_analysis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis
title: "@kbn/aiops-log-rate-analysis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-log-rate-analysis plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis']
---
import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json';
diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx
index 5a67d2166917b..2670f7c9dd54a 100644
--- a/api_docs/kbn_alerting_api_integration_helpers.mdx
+++ b/api_docs/kbn_alerting_api_integration_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers
title: "@kbn/alerting-api-integration-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-api-integration-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers']
---
import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 33b913afab0e6..0cc112d0e9d9d 100644
--- a/api_docs/kbn_alerting_state_types.mdx
+++ b/api_docs/kbn_alerting_state_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types
title: "@kbn/alerting-state-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-state-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx
index 2b25bd73bd39c..f2d2d22d9d8e7 100644
--- a/api_docs/kbn_alerting_types.mdx
+++ b/api_docs/kbn_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types
title: "@kbn/alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types']
---
import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index 094d2b9eb3a99..7732611408b01 100644
--- a/api_docs/kbn_alerts_as_data_utils.mdx
+++ b/api_docs/kbn_alerts_as_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils
title: "@kbn/alerts-as-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-as-data-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils']
---
import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json';
diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx
index 8320ad42c3301..8d6ebe5c7762f 100644
--- a/api_docs/kbn_alerts_ui_shared.mdx
+++ b/api_docs/kbn_alerts_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared
title: "@kbn/alerts-ui-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-ui-shared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared']
---
import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json';
diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx
index aac6b9ef9d70c..9fcffd5e7be8b 100644
--- a/api_docs/kbn_analytics.mdx
+++ b/api_docs/kbn_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics
title: "@kbn/analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics']
---
import kbnAnalyticsObj from './kbn_analytics.devdocs.json';
diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx
index 88b4e47e1ea77..5a88ed83b0aba 100644
--- a/api_docs/kbn_analytics_client.mdx
+++ b/api_docs/kbn_analytics_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client
title: "@kbn/analytics-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-client plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client']
---
import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json';
diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx
index 3b0513fcf6d17..81601781c2317 100644
--- a/api_docs/kbn_analytics_collection_utils.mdx
+++ b/api_docs/kbn_analytics_collection_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils
title: "@kbn/analytics-collection-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-collection-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils']
---
import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
index e97da217a8cde..0d56eae4685f7 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser
title: "@kbn/analytics-shippers-elastic-v3-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser']
---
import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
index a2568fc638e0c..f786c68a5ff22 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common
title: "@kbn/analytics-shippers-elastic-v3-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common']
---
import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
index 9316a72e2d00d..9fc226fb8f7cc 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server
title: "@kbn/analytics-shippers-elastic-v3-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server']
---
import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx
index c396f95b3bce8..f32cc8f9bd387 100644
--- a/api_docs/kbn_analytics_shippers_fullstory.mdx
+++ b/api_docs/kbn_analytics_shippers_fullstory.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory
title: "@kbn/analytics-shippers-fullstory"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-fullstory plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory']
---
import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index ac4e3b64abcf6..e2ea3e17b41fd 100644
--- a/api_docs/kbn_apm_config_loader.mdx
+++ b/api_docs/kbn_apm_config_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader
title: "@kbn/apm-config-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-config-loader plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader']
---
import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json';
diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx
index 113d0597bfbf0..f8eb7ad7e13ac 100644
--- a/api_docs/kbn_apm_data_view.mdx
+++ b/api_docs/kbn_apm_data_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view
title: "@kbn/apm-data-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-data-view plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view']
---
import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index 4b7d6a314ab47..a36fffb38f5ac 100644
--- a/api_docs/kbn_apm_synthtrace.mdx
+++ b/api_docs/kbn_apm_synthtrace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace
title: "@kbn/apm-synthtrace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace']
---
import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json
index 8b1bb3e1fbd0f..935496013d4fc 100644
--- a/api_docs/kbn_apm_synthtrace_client.devdocs.json
+++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json
@@ -2632,7 +2632,9 @@
" | ",
"PodMetricsDocument",
" | ",
- "ContainerMetricsDocument"
+ "DockerContainerMetricsDocument",
+ " | ",
+ "K8sContainerMetricsDocument"
],
"path": "packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts",
"deprecated": false,
@@ -2926,14 +2928,43 @@
},
{
"parentPluginId": "@kbn/apm-synthtrace-client",
- "id": "def-common.infra.container",
+ "id": "def-common.infra.dockerContainer",
+ "type": "Function",
+ "tags": [],
+ "label": "dockerContainer",
+ "description": [],
+ "signature": [
+ "(id: string) => ",
+ "DockerContainer"
+ ],
+ "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/apm-synthtrace-client",
+ "id": "def-common.infra.dockerContainer.$1",
+ "type": "string",
+ "tags": [],
+ "label": "id",
+ "description": [],
+ "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/docker_container.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
+ {
+ "parentPluginId": "@kbn/apm-synthtrace-client",
+ "id": "def-common.infra.k8sContainer",
"type": "Function",
"tags": [],
- "label": "container",
+ "label": "k8sContainer",
"description": [],
"signature": [
"(id: string, uid: string, nodeName: string) => ",
- "Container"
+ "K8sContainer"
],
"path": "packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts",
"deprecated": false,
@@ -2942,34 +2973,34 @@
"children": [
{
"parentPluginId": "@kbn/apm-synthtrace-client",
- "id": "def-common.infra.container.$1",
+ "id": "def-common.infra.k8sContainer.$1",
"type": "string",
"tags": [],
"label": "id",
"description": [],
- "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts",
+ "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts",
"deprecated": false,
"trackAdoption": false
},
{
"parentPluginId": "@kbn/apm-synthtrace-client",
- "id": "def-common.infra.container.$2",
+ "id": "def-common.infra.k8sContainer.$2",
"type": "string",
"tags": [],
"label": "uid",
"description": [],
- "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts",
+ "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts",
"deprecated": false,
"trackAdoption": false
},
{
"parentPluginId": "@kbn/apm-synthtrace-client",
- "id": "def-common.infra.container.$3",
+ "id": "def-common.infra.k8sContainer.$3",
"type": "string",
"tags": [],
"label": "nodeName",
"description": [],
- "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts",
+ "path": "packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts",
"deprecated": false,
"trackAdoption": false
}
diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx
index 09df181be55cf..924b71a3c3b58 100644
--- a/api_docs/kbn_apm_synthtrace_client.mdx
+++ b/api_docs/kbn_apm_synthtrace_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client
title: "@kbn/apm-synthtrace-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace-client plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client']
---
import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/te
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 191 | 0 | 191 | 28 |
+| 193 | 0 | 193 | 30 |
## Common
diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx
index 9f6fa72f758dc..34610cc4c7edc 100644
--- a/api_docs/kbn_apm_utils.mdx
+++ b/api_docs/kbn_apm_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils
title: "@kbn/apm-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils']
---
import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json';
diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx
index df23e8eda195a..50e6cc3ef7c2f 100644
--- a/api_docs/kbn_axe_config.mdx
+++ b/api_docs/kbn_axe_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config
title: "@kbn/axe-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/axe-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_bfetch_error.mdx b/api_docs/kbn_bfetch_error.mdx
index 2e1196bfd6897..5cd5ec708a014 100644
--- a/api_docs/kbn_bfetch_error.mdx
+++ b/api_docs/kbn_bfetch_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error
title: "@kbn/bfetch-error"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/bfetch-error plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/bfetch-error']
---
import kbnBfetchErrorObj from './kbn_bfetch_error.devdocs.json';
diff --git a/api_docs/kbn_calculate_auto.mdx b/api_docs/kbn_calculate_auto.mdx
index d3e963e4b569d..7afaf74f92c67 100644
--- a/api_docs/kbn_calculate_auto.mdx
+++ b/api_docs/kbn_calculate_auto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto
title: "@kbn/calculate-auto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-auto plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-auto']
---
import kbnCalculateAutoObj from './kbn_calculate_auto.devdocs.json';
diff --git a/api_docs/kbn_calculate_width_from_char_count.mdx b/api_docs/kbn_calculate_width_from_char_count.mdx
index 637196ad026ae..7851e09d50cd7 100644
--- a/api_docs/kbn_calculate_width_from_char_count.mdx
+++ b/api_docs/kbn_calculate_width_from_char_count.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count
title: "@kbn/calculate-width-from-char-count"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/calculate-width-from-char-count plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/calculate-width-from-char-count']
---
import kbnCalculateWidthFromCharCountObj from './kbn_calculate_width_from_char_count.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index 2cd5bc5f6c1fc..83778f073195a 100644
--- a/api_docs/kbn_cases_components.mdx
+++ b/api_docs/kbn_cases_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components
title: "@kbn/cases-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cases-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components']
---
import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json';
diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx
index dc373ce301c4e..87e310c222a71 100644
--- a/api_docs/kbn_cell_actions.mdx
+++ b/api_docs/kbn_cell_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions
title: "@kbn/cell-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cell-actions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions']
---
import kbnCellActionsObj from './kbn_cell_actions.devdocs.json';
diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx
index e41551c6da05c..e7d049233b283 100644
--- a/api_docs/kbn_chart_expressions_common.mdx
+++ b/api_docs/kbn_chart_expressions_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common
title: "@kbn/chart-expressions-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-expressions-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common']
---
import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json';
diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx
index 0f60fddec6ba7..2c0ebb2d261c8 100644
--- a/api_docs/kbn_chart_icons.mdx
+++ b/api_docs/kbn_chart_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons
title: "@kbn/chart-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-icons plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons']
---
import kbnChartIconsObj from './kbn_chart_icons.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx
index ebd45c0190bfd..52da0031d1edd 100644
--- a/api_docs/kbn_ci_stats_core.mdx
+++ b/api_docs/kbn_ci_stats_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core
title: "@kbn/ci-stats-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-core plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core']
---
import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx
index 0b948edfda2bc..f79e1e4960232 100644
--- a/api_docs/kbn_ci_stats_performance_metrics.mdx
+++ b/api_docs/kbn_ci_stats_performance_metrics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics
title: "@kbn/ci-stats-performance-metrics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-performance-metrics plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics']
---
import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx
index ca223a4a28060..d1ca6d47206ab 100644
--- a/api_docs/kbn_ci_stats_reporter.mdx
+++ b/api_docs/kbn_ci_stats_reporter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter
title: "@kbn/ci-stats-reporter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-reporter plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter']
---
import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json';
diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx
index ba702fa529590..832c857a3c70a 100644
--- a/api_docs/kbn_cli_dev_mode.mdx
+++ b/api_docs/kbn_cli_dev_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode
title: "@kbn/cli-dev-mode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cli-dev-mode plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode']
---
import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json';
diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx
index 60ed22a3484d7..e8c7440314002 100644
--- a/api_docs/kbn_code_editor.mdx
+++ b/api_docs/kbn_code_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor
title: "@kbn/code-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx
index 35555086b1343..23f3964423438 100644
--- a/api_docs/kbn_code_editor_mock.mdx
+++ b/api_docs/kbn_code_editor_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock
title: "@kbn/code-editor-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor-mock plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock']
---
import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json';
diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx
index 56f79bee10934..864375cf36638 100644
--- a/api_docs/kbn_code_owners.mdx
+++ b/api_docs/kbn_code_owners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners
title: "@kbn/code-owners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-owners plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners']
---
import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index b0130daa99edc..075b3a5ace7a1 100644
--- a/api_docs/kbn_coloring.mdx
+++ b/api_docs/kbn_coloring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring
title: "@kbn/coloring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/coloring plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring']
---
import kbnColoringObj from './kbn_coloring.devdocs.json';
diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx
index 87b7802c61342..53a6425bbae11 100644
--- a/api_docs/kbn_config.mdx
+++ b/api_docs/kbn_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config
title: "@kbn/config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config']
---
import kbnConfigObj from './kbn_config.devdocs.json';
diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx
index e8151e0123030..ec1939de9dd08 100644
--- a/api_docs/kbn_config_mocks.mdx
+++ b/api_docs/kbn_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks
title: "@kbn/config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks']
---
import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx
index 31127c625bc9e..f52378ce30825 100644
--- a/api_docs/kbn_config_schema.mdx
+++ b/api_docs/kbn_config_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema
title: "@kbn/config-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-schema plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema']
---
import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx
index 4a72d6cb8deba..78a5af84bc23d 100644
--- a/api_docs/kbn_content_management_content_editor.mdx
+++ b/api_docs/kbn_content_management_content_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor
title: "@kbn/content-management-content-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-editor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor']
---
import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json';
diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
index fb51cfe06c96f..eb5ad8fe281c2 100644
--- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx
+++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view
title: "@kbn/content-management-tabbed-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-tabbed-table-list-view plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-tabbed-table-list-view']
---
import kbnContentManagementTabbedTableListViewObj from './kbn_content_management_tabbed_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view.mdx b/api_docs/kbn_content_management_table_list_view.mdx
index e542b0fc76d7f..39f5af2044f3d 100644
--- a/api_docs/kbn_content_management_table_list_view.mdx
+++ b/api_docs/kbn_content_management_table_list_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view
title: "@kbn/content-management-table-list-view"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view']
---
import kbnContentManagementTableListViewObj from './kbn_content_management_table_list_view.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_common.mdx b/api_docs/kbn_content_management_table_list_view_common.mdx
index 5ba40d22b899c..5645e2aed47af 100644
--- a/api_docs/kbn_content_management_table_list_view_common.mdx
+++ b/api_docs/kbn_content_management_table_list_view_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common
title: "@kbn/content-management-table-list-view-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common']
---
import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx
index ca2d0e2058da0..102af47f1424f 100644
--- a/api_docs/kbn_content_management_table_list_view_table.mdx
+++ b/api_docs/kbn_content_management_table_list_view_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table
title: "@kbn/content-management-table-list-view-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list-view-table plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table']
---
import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json';
diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx
index 648c06885b99d..debaedfd82209 100644
--- a/api_docs/kbn_content_management_utils.mdx
+++ b/api_docs/kbn_content_management_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils
title: "@kbn/content-management-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils']
---
import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx
index 762783970bdee..e20b8d790ce59 100644
--- a/api_docs/kbn_core_analytics_browser.mdx
+++ b/api_docs/kbn_core_analytics_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser
title: "@kbn/core-analytics-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser']
---
import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx
index af3a2c1a18505..b0ce2b675bdc7 100644
--- a/api_docs/kbn_core_analytics_browser_internal.mdx
+++ b/api_docs/kbn_core_analytics_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal
title: "@kbn/core-analytics-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal']
---
import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx
index 23b248d40c068..58eee0729b485 100644
--- a/api_docs/kbn_core_analytics_browser_mocks.mdx
+++ b/api_docs/kbn_core_analytics_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks
title: "@kbn/core-analytics-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks']
---
import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx
index b3a7795ec3f9f..287e16f66f98c 100644
--- a/api_docs/kbn_core_analytics_server.mdx
+++ b/api_docs/kbn_core_analytics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server
title: "@kbn/core-analytics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server']
---
import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx
index 22092c4e6b319..1d41d6166b9c9 100644
--- a/api_docs/kbn_core_analytics_server_internal.mdx
+++ b/api_docs/kbn_core_analytics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal
title: "@kbn/core-analytics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal']
---
import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx
index ed5661e35569d..e2fb6d368d8a9 100644
--- a/api_docs/kbn_core_analytics_server_mocks.mdx
+++ b/api_docs/kbn_core_analytics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks
title: "@kbn/core-analytics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks']
---
import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx
index 0764cccf04b44..2d973e83c6272 100644
--- a/api_docs/kbn_core_application_browser.mdx
+++ b/api_docs/kbn_core_application_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser
title: "@kbn/core-application-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser']
---
import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx
index 1f92a5b2ae6e3..a12850d472dfa 100644
--- a/api_docs/kbn_core_application_browser_internal.mdx
+++ b/api_docs/kbn_core_application_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal
title: "@kbn/core-application-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal']
---
import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx
index 305879dc14fa6..fae52641dd835 100644
--- a/api_docs/kbn_core_application_browser_mocks.mdx
+++ b/api_docs/kbn_core_application_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks
title: "@kbn/core-application-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks']
---
import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx
index 818bbb5870a9b..145c7dc0bfadd 100644
--- a/api_docs/kbn_core_application_common.mdx
+++ b/api_docs/kbn_core_application_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common
title: "@kbn/core-application-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common']
---
import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx
index c5e80dde12ba9..2801523677cc4 100644
--- a/api_docs/kbn_core_apps_browser_internal.mdx
+++ b/api_docs/kbn_core_apps_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal
title: "@kbn/core-apps-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal']
---
import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx
index 5ca8d67d561ab..bc570e7bf164e 100644
--- a/api_docs/kbn_core_apps_browser_mocks.mdx
+++ b/api_docs/kbn_core_apps_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks
title: "@kbn/core-apps-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks']
---
import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx
index b17a4a2cb49b4..9b3cbf61aa6ca 100644
--- a/api_docs/kbn_core_apps_server_internal.mdx
+++ b/api_docs/kbn_core_apps_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal
title: "@kbn/core-apps-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal']
---
import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx
index 2594a2ec36680..7627419367883 100644
--- a/api_docs/kbn_core_base_browser_mocks.mdx
+++ b/api_docs/kbn_core_base_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks
title: "@kbn/core-base-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks']
---
import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx
index 3417611659db9..f08d68804083b 100644
--- a/api_docs/kbn_core_base_common.mdx
+++ b/api_docs/kbn_core_base_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common
title: "@kbn/core-base-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common']
---
import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx
index 0e3a0802ebbeb..57ce3a2178cb1 100644
--- a/api_docs/kbn_core_base_server_internal.mdx
+++ b/api_docs/kbn_core_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal
title: "@kbn/core-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal']
---
import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx
index e639af4296a4a..d1cf83c623e6e 100644
--- a/api_docs/kbn_core_base_server_mocks.mdx
+++ b/api_docs/kbn_core_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks
title: "@kbn/core-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks']
---
import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx
index 578990d041aed..7a41e807c96ab 100644
--- a/api_docs/kbn_core_capabilities_browser_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks
title: "@kbn/core-capabilities-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks']
---
import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx
index fa76b94f14343..a62930001d10f 100644
--- a/api_docs/kbn_core_capabilities_common.mdx
+++ b/api_docs/kbn_core_capabilities_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common
title: "@kbn/core-capabilities-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common']
---
import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx
index 23ab9ffcd4294..952dc0d6c883d 100644
--- a/api_docs/kbn_core_capabilities_server.mdx
+++ b/api_docs/kbn_core_capabilities_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server
title: "@kbn/core-capabilities-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server']
---
import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx
index 5afc03cef90e0..54891af50baa5 100644
--- a/api_docs/kbn_core_capabilities_server_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks
title: "@kbn/core-capabilities-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks']
---
import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx
index 92c471bf044f7..6953f7d7d0f4f 100644
--- a/api_docs/kbn_core_chrome_browser.mdx
+++ b/api_docs/kbn_core_chrome_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser
title: "@kbn/core-chrome-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser']
---
import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx
index 8e78081ee99e7..b32e5193792ab 100644
--- a/api_docs/kbn_core_chrome_browser_mocks.mdx
+++ b/api_docs/kbn_core_chrome_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks
title: "@kbn/core-chrome-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks']
---
import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx
index 12a166446df15..890949aff2242 100644
--- a/api_docs/kbn_core_config_server_internal.mdx
+++ b/api_docs/kbn_core_config_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal
title: "@kbn/core-config-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-config-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal']
---
import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx
index 9f6d438e6e303..33d93db3c8073 100644
--- a/api_docs/kbn_core_custom_branding_browser.mdx
+++ b/api_docs/kbn_core_custom_branding_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser
title: "@kbn/core-custom-branding-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser']
---
import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx
index 497c8671a4359..53209feb48ce2 100644
--- a/api_docs/kbn_core_custom_branding_browser_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal
title: "@kbn/core-custom-branding-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal']
---
import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
index c2970970b70e2..165ad578c62fc 100644
--- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks
title: "@kbn/core-custom-branding-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks']
---
import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx
index 5195c1b06cf29..32b06c26014a2 100644
--- a/api_docs/kbn_core_custom_branding_common.mdx
+++ b/api_docs/kbn_core_custom_branding_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common
title: "@kbn/core-custom-branding-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common']
---
import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx
index abe961eb8b630..f4d974f9de9c6 100644
--- a/api_docs/kbn_core_custom_branding_server.mdx
+++ b/api_docs/kbn_core_custom_branding_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server
title: "@kbn/core-custom-branding-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server']
---
import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx
index 27a423e6bcafe..be2bf300e3925 100644
--- a/api_docs/kbn_core_custom_branding_server_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal
title: "@kbn/core-custom-branding-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal']
---
import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx
index 82bae15929f92..aa172000d1049 100644
--- a/api_docs/kbn_core_custom_branding_server_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks
title: "@kbn/core-custom-branding-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks']
---
import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx
index 6ade0fcb64d6b..aa5f0790d8f5f 100644
--- a/api_docs/kbn_core_deprecations_browser.mdx
+++ b/api_docs/kbn_core_deprecations_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser
title: "@kbn/core-deprecations-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser']
---
import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx
index e874ea371f622..eb4c341edb4ff 100644
--- a/api_docs/kbn_core_deprecations_browser_internal.mdx
+++ b/api_docs/kbn_core_deprecations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal
title: "@kbn/core-deprecations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal']
---
import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx
index eae8e7d3e9a56..f1090608dd2ae 100644
--- a/api_docs/kbn_core_deprecations_browser_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks
title: "@kbn/core-deprecations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks']
---
import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx
index e75c60b25ea83..baa21e365d46b 100644
--- a/api_docs/kbn_core_deprecations_common.mdx
+++ b/api_docs/kbn_core_deprecations_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common
title: "@kbn/core-deprecations-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common']
---
import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx
index a566f7be2696a..e24d0ef503027 100644
--- a/api_docs/kbn_core_deprecations_server.mdx
+++ b/api_docs/kbn_core_deprecations_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server
title: "@kbn/core-deprecations-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server']
---
import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx
index 0e18521bec8dc..2154818b01d8a 100644
--- a/api_docs/kbn_core_deprecations_server_internal.mdx
+++ b/api_docs/kbn_core_deprecations_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal
title: "@kbn/core-deprecations-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal']
---
import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx
index a671ed8669c52..dad4f89e0cccd 100644
--- a/api_docs/kbn_core_deprecations_server_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks
title: "@kbn/core-deprecations-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks']
---
import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx
index 57f761faa6958..2cd5268a964ef 100644
--- a/api_docs/kbn_core_doc_links_browser.mdx
+++ b/api_docs/kbn_core_doc_links_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser
title: "@kbn/core-doc-links-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser']
---
import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx
index 0e845f7a89fc3..b29ce0544b5e3 100644
--- a/api_docs/kbn_core_doc_links_browser_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks
title: "@kbn/core-doc-links-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks']
---
import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx
index f0debcb3d5776..86c9175ef6d95 100644
--- a/api_docs/kbn_core_doc_links_server.mdx
+++ b/api_docs/kbn_core_doc_links_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server
title: "@kbn/core-doc-links-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server']
---
import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx
index 0f78b182de88b..3613ecccc8385 100644
--- a/api_docs/kbn_core_doc_links_server_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks
title: "@kbn/core-doc-links-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks']
---
import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
index d837c929f7a8b..c40f3fc9c7b2d 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal
title: "@kbn/core-elasticsearch-client-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal']
---
import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
index b65f92f09a0c2..7dd24162f9d2e 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks
title: "@kbn/core-elasticsearch-client-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks']
---
import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx
index a9a021a239c19..ebc3b396b431f 100644
--- a/api_docs/kbn_core_elasticsearch_server.mdx
+++ b/api_docs/kbn_core_elasticsearch_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server
title: "@kbn/core-elasticsearch-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server']
---
import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx
index 35ecae07bd925..1caf9502145c0 100644
--- a/api_docs/kbn_core_elasticsearch_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal
title: "@kbn/core-elasticsearch-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal']
---
import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
index 42b6ebfeb8f4f..e164374cc04cf 100644
--- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks
title: "@kbn/core-elasticsearch-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks']
---
import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx
index 3b49f64ffcf3d..eec2b260e2a6e 100644
--- a/api_docs/kbn_core_environment_server_internal.mdx
+++ b/api_docs/kbn_core_environment_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal
title: "@kbn/core-environment-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal']
---
import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx
index 0c1509b21fc0f..c3bda240aeb4e 100644
--- a/api_docs/kbn_core_environment_server_mocks.mdx
+++ b/api_docs/kbn_core_environment_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks
title: "@kbn/core-environment-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks']
---
import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx
index 0dea2e5c8db23..fe4fab1c4dabb 100644
--- a/api_docs/kbn_core_execution_context_browser.mdx
+++ b/api_docs/kbn_core_execution_context_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser
title: "@kbn/core-execution-context-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser']
---
import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx
index 72f294c079c55..dd7325027af17 100644
--- a/api_docs/kbn_core_execution_context_browser_internal.mdx
+++ b/api_docs/kbn_core_execution_context_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal
title: "@kbn/core-execution-context-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal']
---
import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx
index 4880d46947b7d..197e043669fa3 100644
--- a/api_docs/kbn_core_execution_context_browser_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks
title: "@kbn/core-execution-context-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks']
---
import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx
index 5a4b5254d0257..ec0e3fddb3eaa 100644
--- a/api_docs/kbn_core_execution_context_common.mdx
+++ b/api_docs/kbn_core_execution_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common
title: "@kbn/core-execution-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common']
---
import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx
index 804fdddea375f..d1abda6c5e842 100644
--- a/api_docs/kbn_core_execution_context_server.mdx
+++ b/api_docs/kbn_core_execution_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server
title: "@kbn/core-execution-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server']
---
import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx
index 99b23e23c626f..466c3f1a1756a 100644
--- a/api_docs/kbn_core_execution_context_server_internal.mdx
+++ b/api_docs/kbn_core_execution_context_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal
title: "@kbn/core-execution-context-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal']
---
import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx
index d6cd6c371f56c..22b77ef36f28b 100644
--- a/api_docs/kbn_core_execution_context_server_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks
title: "@kbn/core-execution-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks']
---
import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx
index 0a2756db7b1a9..676cacaade35c 100644
--- a/api_docs/kbn_core_fatal_errors_browser.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser
title: "@kbn/core-fatal-errors-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser']
---
import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
index d8b7c0a637f24..9ea657253981e 100644
--- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks
title: "@kbn/core-fatal-errors-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks']
---
import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx
index 55a72aa89837f..c51d6a3cf4edf 100644
--- a/api_docs/kbn_core_http_browser.mdx
+++ b/api_docs/kbn_core_http_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser
title: "@kbn/core-http-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser']
---
import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx
index e7fbc3812f15b..9865b20124ab3 100644
--- a/api_docs/kbn_core_http_browser_internal.mdx
+++ b/api_docs/kbn_core_http_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal
title: "@kbn/core-http-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal']
---
import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx
index 030bba93ca6bd..3be1dda990d74 100644
--- a/api_docs/kbn_core_http_browser_mocks.mdx
+++ b/api_docs/kbn_core_http_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks
title: "@kbn/core-http-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks']
---
import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx
index ab62d84c5fabc..4844bcfeefb43 100644
--- a/api_docs/kbn_core_http_common.mdx
+++ b/api_docs/kbn_core_http_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common
title: "@kbn/core-http-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common']
---
import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json';
diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx
index 650cb7a275afb..f8aaf5607e0a8 100644
--- a/api_docs/kbn_core_http_context_server_mocks.mdx
+++ b/api_docs/kbn_core_http_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks
title: "@kbn/core-http-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-context-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks']
---
import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx
index e9dfc0711646d..5d6cee9bc751a 100644
--- a/api_docs/kbn_core_http_request_handler_context_server.mdx
+++ b/api_docs/kbn_core_http_request_handler_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server
title: "@kbn/core-http-request-handler-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-request-handler-context-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server']
---
import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx
index dc055da747895..1d09c57a356cb 100644
--- a/api_docs/kbn_core_http_resources_server.mdx
+++ b/api_docs/kbn_core_http_resources_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server
title: "@kbn/core-http-resources-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server']
---
import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx
index 8fa21b52a27ee..186c39943cc25 100644
--- a/api_docs/kbn_core_http_resources_server_internal.mdx
+++ b/api_docs/kbn_core_http_resources_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal
title: "@kbn/core-http-resources-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal']
---
import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx
index 639acc4e2cc5e..432112834ff9b 100644
--- a/api_docs/kbn_core_http_resources_server_mocks.mdx
+++ b/api_docs/kbn_core_http_resources_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks
title: "@kbn/core-http-resources-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks']
---
import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx
index ea3132a3be439..0e75476165972 100644
--- a/api_docs/kbn_core_http_router_server_internal.mdx
+++ b/api_docs/kbn_core_http_router_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal
title: "@kbn/core-http-router-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal']
---
import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx
index 9f935f4c676fc..48eb2177866fa 100644
--- a/api_docs/kbn_core_http_router_server_mocks.mdx
+++ b/api_docs/kbn_core_http_router_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks
title: "@kbn/core-http-router-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks']
---
import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json
index 35e4843e88499..67868d64c110c 100644
--- a/api_docs/kbn_core_http_server.devdocs.json
+++ b/api_docs/kbn_core_http_server.devdocs.json
@@ -3632,11 +3632,11 @@
},
{
"plugin": "security",
- "path": "x-pack/plugins/security/server/routes/indices/get_fields.ts"
+ "path": "x-pack/plugins/security/server/routes/feature_check/feature_check.ts"
},
{
"plugin": "security",
- "path": "x-pack/plugins/security/server/routes/role_mapping/feature_check.ts"
+ "path": "x-pack/plugins/security/server/routes/indices/get_fields.ts"
},
{
"plugin": "security",
@@ -4574,6 +4574,10 @@
"plugin": "serverlessSearch",
"path": "x-pack/plugins/serverless_search/server/routes/mapping_routes.ts"
},
+ {
+ "plugin": "serverlessSearch",
+ "path": "x-pack/plugins/serverless_search/server/routes/ingest_pipeline_routes.ts"
+ },
{
"plugin": "snapshotRestore",
"path": "x-pack/plugins/snapshot_restore/server/routes/api/app.ts"
@@ -5824,11 +5828,11 @@
},
{
"plugin": "security",
- "path": "x-pack/plugins/security/server/routes/indices/get_fields.test.ts"
+ "path": "x-pack/plugins/security/server/routes/feature_check/feature_check.test.ts"
},
{
"plugin": "security",
- "path": "x-pack/plugins/security/server/routes/role_mapping/feature_check.test.ts"
+ "path": "x-pack/plugins/security/server/routes/indices/get_fields.test.ts"
},
{
"plugin": "security",
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index 71e2407840758..4348a86af7122 100644
--- a/api_docs/kbn_core_http_server.mdx
+++ b/api_docs/kbn_core_http_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server
title: "@kbn/core-http-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server']
---
import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx
index 72eb55fec10ee..a47a274e52fd3 100644
--- a/api_docs/kbn_core_http_server_internal.mdx
+++ b/api_docs/kbn_core_http_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal
title: "@kbn/core-http-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal']
---
import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx
index 73226097dcfdd..afd0796644c50 100644
--- a/api_docs/kbn_core_http_server_mocks.mdx
+++ b/api_docs/kbn_core_http_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks
title: "@kbn/core-http-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks']
---
import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx
index cc54ae5b018b1..a9ff67fdf2bce 100644
--- a/api_docs/kbn_core_i18n_browser.mdx
+++ b/api_docs/kbn_core_i18n_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser
title: "@kbn/core-i18n-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser']
---
import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx
index 0529d64f0da13..63157c9ff0bc8 100644
--- a/api_docs/kbn_core_i18n_browser_mocks.mdx
+++ b/api_docs/kbn_core_i18n_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks
title: "@kbn/core-i18n-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks']
---
import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx
index 2b5c80ad6e427..9754f2c9aa01e 100644
--- a/api_docs/kbn_core_i18n_server.mdx
+++ b/api_docs/kbn_core_i18n_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server
title: "@kbn/core-i18n-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server']
---
import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx
index 953a0f3fe5a4c..56aca483c6266 100644
--- a/api_docs/kbn_core_i18n_server_internal.mdx
+++ b/api_docs/kbn_core_i18n_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal
title: "@kbn/core-i18n-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal']
---
import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx
index 7264b46857d17..f6e17011b4cdf 100644
--- a/api_docs/kbn_core_i18n_server_mocks.mdx
+++ b/api_docs/kbn_core_i18n_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks
title: "@kbn/core-i18n-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks']
---
import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
index dd8720669ec6b..cd0ae16dbba28 100644
--- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
+++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks
title: "@kbn/core-injected-metadata-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks']
---
import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx
index ff45047fdbb0f..6b9b52bfebf3b 100644
--- a/api_docs/kbn_core_integrations_browser_internal.mdx
+++ b/api_docs/kbn_core_integrations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal
title: "@kbn/core-integrations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal']
---
import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx
index f26416271e979..047cf3fc3c66e 100644
--- a/api_docs/kbn_core_integrations_browser_mocks.mdx
+++ b/api_docs/kbn_core_integrations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks
title: "@kbn/core-integrations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks']
---
import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx
index 4e66128a0e109..3b26e82d44729 100644
--- a/api_docs/kbn_core_lifecycle_browser.mdx
+++ b/api_docs/kbn_core_lifecycle_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser
title: "@kbn/core-lifecycle-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser']
---
import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
index 8d1a87ce49508..b04bc6a4a798d 100644
--- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks
title: "@kbn/core-lifecycle-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks']
---
import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx
index 4eee172efe10e..4f0893326e926 100644
--- a/api_docs/kbn_core_lifecycle_server.mdx
+++ b/api_docs/kbn_core_lifecycle_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server
title: "@kbn/core-lifecycle-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server']
---
import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx
index b7ee47e900532..1904590978be8 100644
--- a/api_docs/kbn_core_lifecycle_server_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks
title: "@kbn/core-lifecycle-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks']
---
import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx
index 2a92a45d3105d..c72c3bf34c9ca 100644
--- a/api_docs/kbn_core_logging_browser_mocks.mdx
+++ b/api_docs/kbn_core_logging_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks
title: "@kbn/core-logging-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks']
---
import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx
index 86185bd0aee01..1861471055c85 100644
--- a/api_docs/kbn_core_logging_common_internal.mdx
+++ b/api_docs/kbn_core_logging_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal
title: "@kbn/core-logging-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-common-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal']
---
import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx
index f3d70739d6fdf..d6a816663a6fc 100644
--- a/api_docs/kbn_core_logging_server.mdx
+++ b/api_docs/kbn_core_logging_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server
title: "@kbn/core-logging-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server']
---
import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx
index 07a5cbd80d403..f51c8fff6d086 100644
--- a/api_docs/kbn_core_logging_server_internal.mdx
+++ b/api_docs/kbn_core_logging_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal
title: "@kbn/core-logging-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal']
---
import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx
index 8bdbb93005403..07e970fc6205d 100644
--- a/api_docs/kbn_core_logging_server_mocks.mdx
+++ b/api_docs/kbn_core_logging_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks
title: "@kbn/core-logging-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks']
---
import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
index b9eeecd00caa1..d9d0308e46ac9 100644
--- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal
title: "@kbn/core-metrics-collectors-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal']
---
import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
index 2c2f9309f10ad..36cd196ca79d1 100644
--- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks
title: "@kbn/core-metrics-collectors-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks']
---
import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx
index 3aa85d53f61df..1cb761eec2aad 100644
--- a/api_docs/kbn_core_metrics_server.mdx
+++ b/api_docs/kbn_core_metrics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server
title: "@kbn/core-metrics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server']
---
import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx
index ba729dd932044..f998c39a8aa50 100644
--- a/api_docs/kbn_core_metrics_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal
title: "@kbn/core-metrics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal']
---
import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx
index 7574b5f14508b..97e4a3d7b4451 100644
--- a/api_docs/kbn_core_metrics_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks
title: "@kbn/core-metrics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks']
---
import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx
index 4c6f5b42adb7c..fe689c4044816 100644
--- a/api_docs/kbn_core_mount_utils_browser.mdx
+++ b/api_docs/kbn_core_mount_utils_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser
title: "@kbn/core-mount-utils-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-mount-utils-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser']
---
import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json';
diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx
index b2c6f83f0fa45..c96722cb19796 100644
--- a/api_docs/kbn_core_node_server.mdx
+++ b/api_docs/kbn_core_node_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server
title: "@kbn/core-node-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server']
---
import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx
index b162a0d1382a6..cf6b57c5a728d 100644
--- a/api_docs/kbn_core_node_server_internal.mdx
+++ b/api_docs/kbn_core_node_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal
title: "@kbn/core-node-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal']
---
import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx
index 9b65863dc52da..bf53167682f82 100644
--- a/api_docs/kbn_core_node_server_mocks.mdx
+++ b/api_docs/kbn_core_node_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks
title: "@kbn/core-node-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks']
---
import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx
index 825ed7c1e561b..4e86f9e5dd2d5 100644
--- a/api_docs/kbn_core_notifications_browser.mdx
+++ b/api_docs/kbn_core_notifications_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser
title: "@kbn/core-notifications-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser']
---
import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx
index 109127ea04adb..36da3408c86d0 100644
--- a/api_docs/kbn_core_notifications_browser_internal.mdx
+++ b/api_docs/kbn_core_notifications_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal
title: "@kbn/core-notifications-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal']
---
import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx
index 8b44f91e7719c..b312b6e0b56ed 100644
--- a/api_docs/kbn_core_notifications_browser_mocks.mdx
+++ b/api_docs/kbn_core_notifications_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks
title: "@kbn/core-notifications-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks']
---
import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx
index ce2d31cefd9f5..87b524dafa5f2 100644
--- a/api_docs/kbn_core_overlays_browser.mdx
+++ b/api_docs/kbn_core_overlays_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser
title: "@kbn/core-overlays-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser']
---
import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx
index fb708c23a7ee2..f4767a032fe97 100644
--- a/api_docs/kbn_core_overlays_browser_internal.mdx
+++ b/api_docs/kbn_core_overlays_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal
title: "@kbn/core-overlays-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal']
---
import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx
index 89882f1e9da74..01140f554987c 100644
--- a/api_docs/kbn_core_overlays_browser_mocks.mdx
+++ b/api_docs/kbn_core_overlays_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks
title: "@kbn/core-overlays-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks']
---
import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx
index c75fb828ead25..5518ab165afb8 100644
--- a/api_docs/kbn_core_plugins_browser.mdx
+++ b/api_docs/kbn_core_plugins_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser
title: "@kbn/core-plugins-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser']
---
import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx
index ab4d35a941252..cb728794046be 100644
--- a/api_docs/kbn_core_plugins_browser_mocks.mdx
+++ b/api_docs/kbn_core_plugins_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks
title: "@kbn/core-plugins-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks']
---
import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_browser.mdx b/api_docs/kbn_core_plugins_contracts_browser.mdx
index 8d8df019f722d..c5c5e1dc81d37 100644
--- a/api_docs/kbn_core_plugins_contracts_browser.mdx
+++ b/api_docs/kbn_core_plugins_contracts_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser
title: "@kbn/core-plugins-contracts-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-browser']
---
import kbnCorePluginsContractsBrowserObj from './kbn_core_plugins_contracts_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_contracts_server.mdx b/api_docs/kbn_core_plugins_contracts_server.mdx
index a0da9e7e038a7..9b7f1ce9a3408 100644
--- a/api_docs/kbn_core_plugins_contracts_server.mdx
+++ b/api_docs/kbn_core_plugins_contracts_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server
title: "@kbn/core-plugins-contracts-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-contracts-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-contracts-server']
---
import kbnCorePluginsContractsServerObj from './kbn_core_plugins_contracts_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx
index 2263258940d84..4d7a5ad49c4f9 100644
--- a/api_docs/kbn_core_plugins_server.mdx
+++ b/api_docs/kbn_core_plugins_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server
title: "@kbn/core-plugins-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server']
---
import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx
index 188639a5259b0..04dcec58add15 100644
--- a/api_docs/kbn_core_plugins_server_mocks.mdx
+++ b/api_docs/kbn_core_plugins_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks
title: "@kbn/core-plugins-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks']
---
import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx
index 89a823fb4f7f2..d3b7c99aa427a 100644
--- a/api_docs/kbn_core_preboot_server.mdx
+++ b/api_docs/kbn_core_preboot_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server
title: "@kbn/core-preboot-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server']
---
import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx
index 215c30a8b4d45..5a065851508cc 100644
--- a/api_docs/kbn_core_preboot_server_mocks.mdx
+++ b/api_docs/kbn_core_preboot_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks
title: "@kbn/core-preboot-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks']
---
import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx
index 5fe6b50baa593..7148a5d0e7aa7 100644
--- a/api_docs/kbn_core_rendering_browser_mocks.mdx
+++ b/api_docs/kbn_core_rendering_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks
title: "@kbn/core-rendering-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks']
---
import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx
index f9b7e75709b84..f3438dcafabec 100644
--- a/api_docs/kbn_core_rendering_server_internal.mdx
+++ b/api_docs/kbn_core_rendering_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal
title: "@kbn/core-rendering-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal']
---
import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx
index 8b492fde2394b..c5018fd07c5a3 100644
--- a/api_docs/kbn_core_rendering_server_mocks.mdx
+++ b/api_docs/kbn_core_rendering_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks
title: "@kbn/core-rendering-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks']
---
import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx
index 66b1125109f1f..0b5e4f399f08d 100644
--- a/api_docs/kbn_core_root_server_internal.mdx
+++ b/api_docs/kbn_core_root_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal
title: "@kbn/core-root-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-root-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal']
---
import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx
index 023727a5024ab..ee3bbc755c0ba 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_api_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser
title: "@kbn/core-saved-objects-api-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser']
---
import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json
index aedee305b452f..16b357ec819c6 100644
--- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json
@@ -3865,6 +3865,22 @@
"path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts",
"deprecated": false,
"trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/core-saved-objects-api-server",
+ "id": "def-common.SavedObjectsBulkUpdateObject.mergeAttributes",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "mergeAttributes",
+ "description": [
+ "\nBy default, update will merge the provided attributes with the ones present on the document\n(performing a standard partial update). Setting this option to `false` will change the behavior, performing\na \"full\" update instead, where the provided attributes will fully replace the existing ones.\nDefaults to `true`."
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts",
+ "deprecated": false,
+ "trackAdoption": false
}
],
"initialIsOpen": false
@@ -8041,6 +8057,22 @@
"path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts",
"deprecated": false,
"trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/core-saved-objects-api-server",
+ "id": "def-common.SavedObjectsUpdateOptions.mergeAttributes",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "mergeAttributes",
+ "description": [
+ "\nBy default, update will merge the provided attributes with the ones present on the document\n(performing a standard partial update). Setting this option to `false` will change the behavior, performing\na \"full\" update instead, where the provided attributes will fully replace the existing ones.\nDefaults to `true`."
+ ],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts",
+ "deprecated": false,
+ "trackAdoption": false
}
],
"initialIsOpen": false
diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx
index 8f08f3bbed754..de15923802341 100644
--- a/api_docs/kbn_core_saved_objects_api_server.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server
title: "@kbn/core-saved-objects-api-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server']
---
import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 354 | 1 | 5 | 2 |
+| 356 | 1 | 5 | 2 |
## Common
diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
index f33eb43715784..4346109d0559b 100644
--- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks
title: "@kbn/core-saved-objects-api-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks']
---
import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json
index 0aa3e7ceaa6a2..22752cea44fca 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json
@@ -2304,17 +2304,6 @@
"deprecated": false,
"trackAdoption": false
},
- {
- "parentPluginId": "@kbn/core-saved-objects-base-server-internal",
- "id": "def-common.HASH_TO_VERSION_MAP.ad_hoc_run_params6aa8806a2e27d3be492a1da0d7721845",
- "type": "string",
- "tags": [],
- "label": "'ad_hoc_run_params|6aa8806a2e27d3be492a1da0d7721845'",
- "description": [],
- "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts",
- "deprecated": false,
- "trackAdoption": false
- },
{
"parentPluginId": "@kbn/core-saved-objects-base-server-internal",
"id": "def-common.HASH_TO_VERSION_MAP.alert96a5a144778243a9f4fece0e71c2197f",
@@ -2878,10 +2867,10 @@
},
{
"parentPluginId": "@kbn/core-saved-objects-base-server-internal",
- "id": "def-common.HASH_TO_VERSION_MAP.ingestagentpolicies0ab9774bc7728d0c0f37d841570f2872",
+ "id": "def-common.HASH_TO_VERSION_MAP.ingestagentpolicies0fd93cd11c019b118e93a9157c22057b",
"type": "string",
"tags": [],
- "label": "'ingest-agent-policies|0ab9774bc7728d0c0f37d841570f2872'",
+ "label": "'ingest-agent-policies|0fd93cd11c019b118e93a9157c22057b'",
"description": [],
"path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts",
"deprecated": false,
@@ -2911,10 +2900,10 @@
},
{
"parentPluginId": "@kbn/core-saved-objects-base-server-internal",
- "id": "def-common.HASH_TO_VERSION_MAP.ingestpackagepoliciesca63c4c5a946704f045803a6b975dbc6",
+ "id": "def-common.HASH_TO_VERSION_MAP.ingestpackagepoliciesa1a074bad36e68d54f98d2158d60f879",
"type": "string",
"tags": [],
- "label": "'ingest-package-policies|ca63c4c5a946704f045803a6b975dbc6'",
+ "label": "'ingest-package-policies|a1a074bad36e68d54f98d2158d60f879'",
"description": [],
"path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts",
"deprecated": false,
diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
index 1fcbe52c1374c..e365514b2bab8 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal
title: "@kbn/core-saved-objects-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal']
---
import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 226 | 0 | 183 | 11 |
+| 225 | 0 | 182 | 11 |
## Common
diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
index c551caf3ccd39..93c5f03ec53b7 100644
--- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks
title: "@kbn/core-saved-objects-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks']
---
import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx
index 9f0ca5ba87c53..e53010fbd4dca 100644
--- a/api_docs/kbn_core_saved_objects_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser
title: "@kbn/core-saved-objects-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser']
---
import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx
index 79b49b04ff721..786c6f12754f0 100644
--- a/api_docs/kbn_core_saved_objects_browser_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal
title: "@kbn/core-saved-objects-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal']
---
import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
index cab15491226d7..c32e1807716e4 100644
--- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks
title: "@kbn/core-saved-objects-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks']
---
import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx
index b5e2d35998483..82c0f60dccfd2 100644
--- a/api_docs/kbn_core_saved_objects_common.mdx
+++ b/api_docs/kbn_core_saved_objects_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common
title: "@kbn/core-saved-objects-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common']
---
import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
index 59b345af0aae0..85edc07df625d 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal
title: "@kbn/core-saved-objects-import-export-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal']
---
import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
index 3b476f7f5e656..446f50d59ce73 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks
title: "@kbn/core-saved-objects-import-export-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks']
---
import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
index 9862278d14421..c2b8752a9447e 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal
title: "@kbn/core-saved-objects-migration-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal']
---
import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
index 683708bdd24fa..56bb789213994 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks
title: "@kbn/core-saved-objects-migration-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks']
---
import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx
index 6bee8e54c0284..69527cbfeb374 100644
--- a/api_docs/kbn_core_saved_objects_server.mdx
+++ b/api_docs/kbn_core_saved_objects_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server
title: "@kbn/core-saved-objects-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server']
---
import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx
index 8839fc0a5631c..75cefa3e46691 100644
--- a/api_docs/kbn_core_saved_objects_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal
title: "@kbn/core-saved-objects-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal']
---
import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx
index f0b2fa170696f..434d2739c0042 100644
--- a/api_docs/kbn_core_saved_objects_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks
title: "@kbn/core-saved-objects-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks']
---
import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx
index b2358d1d040ce..05b59b51d235c 100644
--- a/api_docs/kbn_core_saved_objects_utils_server.mdx
+++ b/api_docs/kbn_core_saved_objects_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server
title: "@kbn/core-saved-objects-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-utils-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server']
---
import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx
index f0c0cc03ba5e5..df94f80adfa8d 100644
--- a/api_docs/kbn_core_security_browser.mdx
+++ b/api_docs/kbn_core_security_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser
title: "@kbn/core-security-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser']
---
import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx
index 2f61969725730..7e2098d979b22 100644
--- a/api_docs/kbn_core_security_browser_internal.mdx
+++ b/api_docs/kbn_core_security_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal
title: "@kbn/core-security-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal']
---
import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx
index 2e57b239a4f8a..1b7ba91fc4441 100644
--- a/api_docs/kbn_core_security_browser_mocks.mdx
+++ b/api_docs/kbn_core_security_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks
title: "@kbn/core-security-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks']
---
import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx
index 7aad950f672b6..880bde21b83c8 100644
--- a/api_docs/kbn_core_security_common.mdx
+++ b/api_docs/kbn_core_security_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common
title: "@kbn/core-security-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common']
---
import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json';
diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx
index 360ecc15ef155..6b41a3fb8f7a5 100644
--- a/api_docs/kbn_core_security_server.mdx
+++ b/api_docs/kbn_core_security_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server
title: "@kbn/core-security-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server']
---
import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx
index 7403b761dc54a..7b70ea6f08071 100644
--- a/api_docs/kbn_core_security_server_internal.mdx
+++ b/api_docs/kbn_core_security_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal
title: "@kbn/core-security-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal']
---
import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx
index 5ca242eebc3ad..eb16fe4be2a99 100644
--- a/api_docs/kbn_core_security_server_mocks.mdx
+++ b/api_docs/kbn_core_security_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks
title: "@kbn/core-security-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-security-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks']
---
import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx
index e80d0ef43cdbd..bdc9fbd11e79d 100644
--- a/api_docs/kbn_core_status_common.mdx
+++ b/api_docs/kbn_core_status_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common
title: "@kbn/core-status-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common']
---
import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json';
diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx
index 22368fb0c34b1..df8dda07c1269 100644
--- a/api_docs/kbn_core_status_common_internal.mdx
+++ b/api_docs/kbn_core_status_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal
title: "@kbn/core-status-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal']
---
import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx
index 86652a07426e3..469c0e0159e26 100644
--- a/api_docs/kbn_core_status_server.mdx
+++ b/api_docs/kbn_core_status_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server
title: "@kbn/core-status-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server']
---
import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx
index 827f87128319b..30b1260c0babe 100644
--- a/api_docs/kbn_core_status_server_internal.mdx
+++ b/api_docs/kbn_core_status_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal
title: "@kbn/core-status-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal']
---
import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx
index cfae000fcc654..5262b060c6dfa 100644
--- a/api_docs/kbn_core_status_server_mocks.mdx
+++ b/api_docs/kbn_core_status_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks
title: "@kbn/core-status-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks']
---
import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
index 2909aa229f775..6d2fea0e23589 100644
--- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
+++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters
title: "@kbn/core-test-helpers-deprecations-getters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters']
---
import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
index 5a33c1e238896..6ce6b03042ffe 100644
--- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
+++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser
title: "@kbn/core-test-helpers-http-setup-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser']
---
import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx
index 4faa0ab8fc230..1f09345bf8401 100644
--- a/api_docs/kbn_core_test_helpers_kbn_server.mdx
+++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server
title: "@kbn/core-test-helpers-kbn-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-kbn-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server']
---
import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_model_versions.mdx b/api_docs/kbn_core_test_helpers_model_versions.mdx
index 30b17a3bedd68..c521630f019be 100644
--- a/api_docs/kbn_core_test_helpers_model_versions.mdx
+++ b/api_docs/kbn_core_test_helpers_model_versions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions
title: "@kbn/core-test-helpers-model-versions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-model-versions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-model-versions']
---
import kbnCoreTestHelpersModelVersionsObj from './kbn_core_test_helpers_model_versions.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
index 53ae68fca05d5..05065243419f9 100644
--- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
+++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer
title: "@kbn/core-test-helpers-so-type-serializer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer']
---
import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx
index 053bc7a129f90..ae3b7e33a1fff 100644
--- a/api_docs/kbn_core_test_helpers_test_utils.mdx
+++ b/api_docs/kbn_core_test_helpers_test_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils
title: "@kbn/core-test-helpers-test-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-test-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils']
---
import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx
index 00ec442a178dc..d6ad27b0af131 100644
--- a/api_docs/kbn_core_theme_browser.mdx
+++ b/api_docs/kbn_core_theme_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser
title: "@kbn/core-theme-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser']
---
import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx
index 8409cc4407812..0187203d4b3e7 100644
--- a/api_docs/kbn_core_theme_browser_mocks.mdx
+++ b/api_docs/kbn_core_theme_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks
title: "@kbn/core-theme-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks']
---
import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx
index ebf186192a3e4..282060792ed60 100644
--- a/api_docs/kbn_core_ui_settings_browser.mdx
+++ b/api_docs/kbn_core_ui_settings_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser
title: "@kbn/core-ui-settings-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser']
---
import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx
index f9901e31361fe..224063b850e52 100644
--- a/api_docs/kbn_core_ui_settings_browser_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal
title: "@kbn/core-ui-settings-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal']
---
import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
index a1b7ebcb52854..6b1cfbceb9a10 100644
--- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks
title: "@kbn/core-ui-settings-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks']
---
import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx
index 240c28ff8e059..0afaa87646663 100644
--- a/api_docs/kbn_core_ui_settings_common.mdx
+++ b/api_docs/kbn_core_ui_settings_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common
title: "@kbn/core-ui-settings-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common']
---
import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx
index 2f85174db613e..87fa68e2cb3bf 100644
--- a/api_docs/kbn_core_ui_settings_server.mdx
+++ b/api_docs/kbn_core_ui_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server
title: "@kbn/core-ui-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server']
---
import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx
index 22248ec03e7b3..794d8871b6f0a 100644
--- a/api_docs/kbn_core_ui_settings_server_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal
title: "@kbn/core-ui-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal']
---
import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx
index 998e9f2d0d658..d84d6557acc5d 100644
--- a/api_docs/kbn_core_ui_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks
title: "@kbn/core-ui-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks']
---
import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx
index 8f8b26327f765..8dfa3c5db3148 100644
--- a/api_docs/kbn_core_usage_data_server.mdx
+++ b/api_docs/kbn_core_usage_data_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server
title: "@kbn/core-usage-data-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server']
---
import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx
index 77e07a8acaf80..7b9a58a3db57d 100644
--- a/api_docs/kbn_core_usage_data_server_internal.mdx
+++ b/api_docs/kbn_core_usage_data_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal
title: "@kbn/core-usage-data-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal']
---
import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx
index 64dd2cc1f23dc..452f67b1e8759 100644
--- a/api_docs/kbn_core_usage_data_server_mocks.mdx
+++ b/api_docs/kbn_core_usage_data_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks
title: "@kbn/core-usage-data-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks']
---
import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx
index 24128cff496d1..b9f3503096a8b 100644
--- a/api_docs/kbn_core_user_profile_browser.mdx
+++ b/api_docs/kbn_core_user_profile_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser
title: "@kbn/core-user-profile-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser']
---
import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx
index 003dee8f9ebac..329f6a2930266 100644
--- a/api_docs/kbn_core_user_profile_browser_internal.mdx
+++ b/api_docs/kbn_core_user_profile_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal
title: "@kbn/core-user-profile-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal']
---
import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx
index abd2d354d3091..63d96666211dc 100644
--- a/api_docs/kbn_core_user_profile_browser_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks
title: "@kbn/core-user-profile-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-browser-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks']
---
import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx
index f068cb98dc18c..6062054a802a0 100644
--- a/api_docs/kbn_core_user_profile_common.mdx
+++ b/api_docs/kbn_core_user_profile_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-common
title: "@kbn/core-user-profile-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common']
---
import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx
index b1280783acf6f..d2429e6d7f155 100644
--- a/api_docs/kbn_core_user_profile_server.mdx
+++ b/api_docs/kbn_core_user_profile_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server
title: "@kbn/core-user-profile-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server']
---
import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx
index eedacaf2d57d4..981663e1a108d 100644
--- a/api_docs/kbn_core_user_profile_server_internal.mdx
+++ b/api_docs/kbn_core_user_profile_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal
title: "@kbn/core-user-profile-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-internal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal']
---
import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx
index 0a199df96d426..2f2e2e4613b71 100644
--- a/api_docs/kbn_core_user_profile_server_mocks.mdx
+++ b/api_docs/kbn_core_user_profile_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks
title: "@kbn/core-user-profile-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-profile-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks']
---
import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx
index 2a736205f47b7..7c345921fa97f 100644
--- a/api_docs/kbn_core_user_settings_server.mdx
+++ b/api_docs/kbn_core_user_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server
title: "@kbn/core-user-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server']
---
import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx
index 80172153eae2e..cac1a8d6199fa 100644
--- a/api_docs/kbn_core_user_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_user_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks
title: "@kbn/core-user-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-user-settings-server-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-mocks']
---
import kbnCoreUserSettingsServerMocksObj from './kbn_core_user_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx
index c399f7b09c96d..4bdd403edf949 100644
--- a/api_docs/kbn_crypto.mdx
+++ b/api_docs/kbn_crypto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto
title: "@kbn/crypto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto']
---
import kbnCryptoObj from './kbn_crypto.devdocs.json';
diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx
index 1b503b7483c82..3beb47205a28f 100644
--- a/api_docs/kbn_crypto_browser.mdx
+++ b/api_docs/kbn_crypto_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser
title: "@kbn/crypto-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser']
---
import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json';
diff --git a/api_docs/kbn_custom_icons.mdx b/api_docs/kbn_custom_icons.mdx
index 8a8744971bb7d..c324f27bff2f9 100644
--- a/api_docs/kbn_custom_icons.mdx
+++ b/api_docs/kbn_custom_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons
title: "@kbn/custom-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-icons plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-icons']
---
import kbnCustomIconsObj from './kbn_custom_icons.devdocs.json';
diff --git a/api_docs/kbn_custom_integrations.mdx b/api_docs/kbn_custom_integrations.mdx
index bd82a3faa7f54..0b0e8f68e8d65 100644
--- a/api_docs/kbn_custom_integrations.mdx
+++ b/api_docs/kbn_custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations
title: "@kbn/custom-integrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/custom-integrations plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/custom-integrations']
---
import kbnCustomIntegrationsObj from './kbn_custom_integrations.devdocs.json';
diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx
index f6379d1eb1f07..e7333d9b4fc7a 100644
--- a/api_docs/kbn_cypress_config.mdx
+++ b/api_docs/kbn_cypress_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config
title: "@kbn/cypress-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cypress-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx
index da6939aae876b..ff0526fa8d49b 100644
--- a/api_docs/kbn_data_forge.mdx
+++ b/api_docs/kbn_data_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge
title: "@kbn/data-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-forge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge']
---
import kbnDataForgeObj from './kbn_data_forge.devdocs.json';
diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx
index 99760046cae30..038fbc2c29c30 100644
--- a/api_docs/kbn_data_service.mdx
+++ b/api_docs/kbn_data_service.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service
title: "@kbn/data-service"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-service plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service']
---
import kbnDataServiceObj from './kbn_data_service.devdocs.json';
diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx
index 457a83f7a2e8f..3a65054db04e9 100644
--- a/api_docs/kbn_data_stream_adapter.mdx
+++ b/api_docs/kbn_data_stream_adapter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter
title: "@kbn/data-stream-adapter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-stream-adapter plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter']
---
import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json';
diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx
index d62bb433af09c..21943540887ec 100644
--- a/api_docs/kbn_data_view_utils.mdx
+++ b/api_docs/kbn_data_view_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils
title: "@kbn/data-view-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/data-view-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils']
---
import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index 1deb9e060bf48..211ebb9d30c6d 100644
--- a/api_docs/kbn_datemath.mdx
+++ b/api_docs/kbn_datemath.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath
title: "@kbn/datemath"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/datemath plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath']
---
import kbnDatemathObj from './kbn_datemath.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_analytics.mdx b/api_docs/kbn_deeplinks_analytics.mdx
index 373e4407c563c..6cd32e3a8216a 100644
--- a/api_docs/kbn_deeplinks_analytics.mdx
+++ b/api_docs/kbn_deeplinks_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics
title: "@kbn/deeplinks-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-analytics plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-analytics']
---
import kbnDeeplinksAnalyticsObj from './kbn_deeplinks_analytics.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_devtools.mdx b/api_docs/kbn_deeplinks_devtools.mdx
index e09a9ded4940e..0ebf82aed75c3 100644
--- a/api_docs/kbn_deeplinks_devtools.mdx
+++ b/api_docs/kbn_deeplinks_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools
title: "@kbn/deeplinks-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-devtools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools']
---
import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx
index 2e6caaa362bbb..6ecd0720cd545 100644
--- a/api_docs/kbn_deeplinks_fleet.mdx
+++ b/api_docs/kbn_deeplinks_fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet
title: "@kbn/deeplinks-fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-fleet plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet']
---
import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx
index ff258495b7b0d..338146ed02a70 100644
--- a/api_docs/kbn_deeplinks_management.mdx
+++ b/api_docs/kbn_deeplinks_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management
title: "@kbn/deeplinks-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-management plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management']
---
import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx
index 86b9f801c0bf6..b7a7df7ad0036 100644
--- a/api_docs/kbn_deeplinks_ml.mdx
+++ b/api_docs/kbn_deeplinks_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml
title: "@kbn/deeplinks-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-ml plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml']
---
import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx
index bc3336af694b3..8b9c5b52fc088 100644
--- a/api_docs/kbn_deeplinks_observability.mdx
+++ b/api_docs/kbn_deeplinks_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability
title: "@kbn/deeplinks-observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-observability plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability']
---
import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx
index db2d7e028e902..caca52bcbef5c 100644
--- a/api_docs/kbn_deeplinks_search.mdx
+++ b/api_docs/kbn_deeplinks_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search
title: "@kbn/deeplinks-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-search plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search']
---
import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx
index b7a6666b2aa5a..372ff59dc5a75 100644
--- a/api_docs/kbn_deeplinks_security.mdx
+++ b/api_docs/kbn_deeplinks_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security
title: "@kbn/deeplinks-security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-security plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security']
---
import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json';
diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx
index 952fe333ab43c..f24762384ecea 100644
--- a/api_docs/kbn_deeplinks_shared.mdx
+++ b/api_docs/kbn_deeplinks_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared
title: "@kbn/deeplinks-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/deeplinks-shared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared']
---
import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json';
diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx
index cabb1e1ef9e09..df42da34ee3e1 100644
--- a/api_docs/kbn_default_nav_analytics.mdx
+++ b/api_docs/kbn_default_nav_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics
title: "@kbn/default-nav-analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-analytics plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-analytics']
---
import kbnDefaultNavAnalyticsObj from './kbn_default_nav_analytics.devdocs.json';
diff --git a/api_docs/kbn_default_nav_devtools.mdx b/api_docs/kbn_default_nav_devtools.mdx
index 9f9fbb4427085..de048835ad503 100644
--- a/api_docs/kbn_default_nav_devtools.mdx
+++ b/api_docs/kbn_default_nav_devtools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools
title: "@kbn/default-nav-devtools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-devtools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-devtools']
---
import kbnDefaultNavDevtoolsObj from './kbn_default_nav_devtools.devdocs.json';
diff --git a/api_docs/kbn_default_nav_management.mdx b/api_docs/kbn_default_nav_management.mdx
index 242949129c1c7..b41a1ec578d6f 100644
--- a/api_docs/kbn_default_nav_management.mdx
+++ b/api_docs/kbn_default_nav_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management
title: "@kbn/default-nav-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-management plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management']
---
import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json';
diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx
index 903a938a5dd40..9b2c0e7578cb9 100644
--- a/api_docs/kbn_default_nav_ml.mdx
+++ b/api_docs/kbn_default_nav_ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml
title: "@kbn/default-nav-ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/default-nav-ml plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-ml']
---
import kbnDefaultNavMlObj from './kbn_default_nav_ml.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx
index 2ebb3314dfeeb..3ba178a55e200 100644
--- a/api_docs/kbn_dev_cli_errors.mdx
+++ b/api_docs/kbn_dev_cli_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors
title: "@kbn/dev-cli-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-errors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors']
---
import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx
index 3c070acc80e15..81fec4bb7d11c 100644
--- a/api_docs/kbn_dev_cli_runner.mdx
+++ b/api_docs/kbn_dev_cli_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner
title: "@kbn/dev-cli-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-runner plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner']
---
import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx
index 41a071df23434..bc391889d45af 100644
--- a/api_docs/kbn_dev_proc_runner.mdx
+++ b/api_docs/kbn_dev_proc_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner
title: "@kbn/dev-proc-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-proc-runner plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner']
---
import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx
index b5d21eb56a4da..15cf096506cd4 100644
--- a/api_docs/kbn_dev_utils.mdx
+++ b/api_docs/kbn_dev_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils
title: "@kbn/dev-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils']
---
import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json';
diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx
index 12dd90bc8b422..46bafcf5db541 100644
--- a/api_docs/kbn_discover_utils.mdx
+++ b/api_docs/kbn_discover_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils
title: "@kbn/discover-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/discover-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils']
---
import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json';
diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx
index 09cd7ff7f3299..5a3baf451f37b 100644
--- a/api_docs/kbn_doc_links.mdx
+++ b/api_docs/kbn_doc_links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links
title: "@kbn/doc-links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/doc-links plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links']
---
import kbnDocLinksObj from './kbn_doc_links.devdocs.json';
diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx
index 2f66159fe2193..c8f002965c840 100644
--- a/api_docs/kbn_docs_utils.mdx
+++ b/api_docs/kbn_docs_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils
title: "@kbn/docs-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/docs-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils']
---
import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json';
diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx
index 489f90e55beb3..1f1140a615318 100644
--- a/api_docs/kbn_dom_drag_drop.mdx
+++ b/api_docs/kbn_dom_drag_drop.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop
title: "@kbn/dom-drag-drop"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dom-drag-drop plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop']
---
import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json';
diff --git a/api_docs/kbn_ebt_tools.devdocs.json b/api_docs/kbn_ebt_tools.devdocs.json
index 2962bfceac8da..ed143ac7aeec1 100644
--- a/api_docs/kbn_ebt_tools.devdocs.json
+++ b/api_docs/kbn_ebt_tools.devdocs.json
@@ -19,6 +19,38 @@
"common": {
"classes": [],
"functions": [
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.PerformanceContextProvider",
+ "type": "Function",
+ "tags": [],
+ "label": "PerformanceContextProvider",
+ "description": [],
+ "signature": [
+ "React.ForwardRefExoticComponent<{ children: React.ReactElement>; } & React.RefAttributes<{}>>"
+ ],
+ "path": "packages/kbn-ebt-tools/src/performance_metrics/index.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.PerformanceContextProvider.$1",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ "P"
+ ],
+ "path": "node_modules/@types/react/index.d.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/ebt-tools",
"id": "def-common.registerPerformanceMetricEventType",
@@ -157,6 +189,24 @@
],
"returnComment": [],
"initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.usePerformanceContext",
+ "type": "Function",
+ "tags": [],
+ "label": "usePerformanceContext",
+ "description": [],
+ "signature": [
+ "() => ",
+ "PerformanceApi"
+ ],
+ "path": "packages/kbn-ebt-tools/src/performance_metrics/context/use_performance_context.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [],
+ "returnComment": [],
+ "initialIsOpen": false
}
],
"interfaces": [
@@ -509,6 +559,43 @@
],
"enums": [],
"misc": [],
- "objects": []
+ "objects": [
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.perfomanceMarkers",
+ "type": "Object",
+ "tags": [],
+ "label": "perfomanceMarkers",
+ "description": [],
+ "path": "packages/kbn-ebt-tools/src/performance_metrics/performance_markers.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.perfomanceMarkers.startPageChange",
+ "type": "string",
+ "tags": [],
+ "label": "startPageChange",
+ "description": [],
+ "path": "packages/kbn-ebt-tools/src/performance_metrics/performance_markers.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/ebt-tools",
+ "id": "def-common.perfomanceMarkers.endPageReady",
+ "type": "string",
+ "tags": [],
+ "label": "endPageReady",
+ "description": [],
+ "path": "packages/kbn-ebt-tools/src/performance_metrics/performance_markers.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ }
+ ]
}
}
\ No newline at end of file
diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx
index 61af3e6689377..805b0e68d7a19 100644
--- a/api_docs/kbn_ebt_tools.mdx
+++ b/api_docs/kbn_ebt_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools
title: "@kbn/ebt-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ebt-tools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
@@ -21,10 +21,13 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 27 | 0 | 19 | 0 |
+| 33 | 0 | 24 | 1 |
## Common
+### Objects
+
+
### Functions
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index eb8f593406082..83fd390d77147 100644
--- a/api_docs/kbn_ecs_data_quality_dashboard.mdx
+++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard
title: "@kbn/ecs-data-quality-dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs-data-quality-dashboard plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard']
---
import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx
index 710e49c5ffdf2..e8920b963d44e 100644
--- a/api_docs/kbn_elastic_agent_utils.mdx
+++ b/api_docs/kbn_elastic_agent_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils
title: "@kbn/elastic-agent-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-agent-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils']
---
import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx
index 10e658fe6be21..0660e62550b6a 100644
--- a/api_docs/kbn_elastic_assistant.mdx
+++ b/api_docs/kbn_elastic_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant
title: "@kbn/elastic-assistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant']
---
import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json';
diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx
index ff3986dce4bff..c9b782fcb5f77 100644
--- a/api_docs/kbn_elastic_assistant_common.mdx
+++ b/api_docs/kbn_elastic_assistant_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common
title: "@kbn/elastic-assistant-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/elastic-assistant-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common']
---
import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json';
diff --git a/api_docs/kbn_es.devdocs.json b/api_docs/kbn_es.devdocs.json
index 434582f0c7a68..64d416e95d6c5 100644
--- a/api_docs/kbn_es.devdocs.json
+++ b/api_docs/kbn_es.devdocs.json
@@ -81,7 +81,7 @@
"signature": [
"(options: ",
"InstallSourceOptions",
- ") => Promise<{ installPath: string; }>"
+ ") => Promise<{ installPath: string; disableEsTmpDir: boolean; }>"
],
"path": "packages/kbn-es/src/cluster.ts",
"deprecated": false,
@@ -153,7 +153,7 @@
"signature": [
"(options: ",
"InstallSnapshotOptions",
- ") => Promise<{ installPath: string; }>"
+ ") => Promise<{ installPath: string; disableEsTmpDir: boolean; }>"
],
"path": "packages/kbn-es/src/cluster.ts",
"deprecated": false,
@@ -189,7 +189,7 @@
"signature": [
"(archivePath: string, options?: ",
"InstallArchiveOptions",
- " | undefined) => Promise<{ installPath: string; }>"
+ " | undefined) => Promise<{ installPath: string; disableEsTmpDir: boolean; }>"
],
"path": "packages/kbn-es/src/cluster.ts",
"deprecated": false,
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index eb91b6db8cad0..3a8a97fb48c7e 100644
--- a/api_docs/kbn_es.mdx
+++ b/api_docs/kbn_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es
title: "@kbn/es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es']
---
import kbnEsObj from './kbn_es.devdocs.json';
diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx
index 4bf41d3bc030f..1117b475060d2 100644
--- a/api_docs/kbn_es_archiver.mdx
+++ b/api_docs/kbn_es_archiver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver
title: "@kbn/es-archiver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-archiver plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver']
---
import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json';
diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx
index 1bf01fd1098ad..b8dd72a7dcd94 100644
--- a/api_docs/kbn_es_errors.mdx
+++ b/api_docs/kbn_es_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors
title: "@kbn/es-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-errors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors']
---
import kbnEsErrorsObj from './kbn_es_errors.devdocs.json';
diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx
index dc9f67c07aff8..31f59062ca8e3 100644
--- a/api_docs/kbn_es_query.mdx
+++ b/api_docs/kbn_es_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query
title: "@kbn/es-query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-query plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query']
---
import kbnEsQueryObj from './kbn_es_query.devdocs.json';
diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx
index c41b151160ac2..c9903f08be08d 100644
--- a/api_docs/kbn_es_types.mdx
+++ b/api_docs/kbn_es_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types
title: "@kbn/es-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types']
---
import kbnEsTypesObj from './kbn_es_types.devdocs.json';
diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx
index 7ae1a0b1c8c70..f0a2568b31c24 100644
--- a/api_docs/kbn_eslint_plugin_imports.mdx
+++ b/api_docs/kbn_eslint_plugin_imports.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports
title: "@kbn/eslint-plugin-imports"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/eslint-plugin-imports plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx
index 71425983db987..3a73aeeff3b42 100644
--- a/api_docs/kbn_esql_ast.mdx
+++ b/api_docs/kbn_esql_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast
title: "@kbn/esql-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-ast plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast']
---
import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json';
diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx
index 4571feab60949..0e707e004376d 100644
--- a/api_docs/kbn_esql_utils.mdx
+++ b/api_docs/kbn_esql_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils
title: "@kbn/esql-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils']
---
import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json';
diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx
index 38937c7fa0f72..6caf29b4a5d35 100644
--- a/api_docs/kbn_esql_validation_autocomplete.mdx
+++ b/api_docs/kbn_esql_validation_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete
title: "@kbn/esql-validation-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/esql-validation-autocomplete plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete']
---
import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx
index 75433d21f7d0e..c29fbb021af9c 100644
--- a/api_docs/kbn_event_annotation_common.mdx
+++ b/api_docs/kbn_event_annotation_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common
title: "@kbn/event-annotation-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common']
---
import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json';
diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx
index 5518fd66f14da..ecf09252a4b36 100644
--- a/api_docs/kbn_event_annotation_components.mdx
+++ b/api_docs/kbn_event_annotation_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components
title: "@kbn/event-annotation-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/event-annotation-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components']
---
import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json';
diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx
index 4e4ee73ec2dec..99a0041525744 100644
--- a/api_docs/kbn_expandable_flyout.mdx
+++ b/api_docs/kbn_expandable_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout
title: "@kbn/expandable-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/expandable-flyout plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout']
---
import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json';
diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx
index 6cd651701a9a7..9550f3795d76a 100644
--- a/api_docs/kbn_field_types.mdx
+++ b/api_docs/kbn_field_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types
title: "@kbn/field-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types']
---
import kbnFieldTypesObj from './kbn_field_types.devdocs.json';
diff --git a/api_docs/kbn_field_utils.mdx b/api_docs/kbn_field_utils.mdx
index 3584da6dde9be..6d974f2ca9e35 100644
--- a/api_docs/kbn_field_utils.mdx
+++ b/api_docs/kbn_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils
title: "@kbn/field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-utils']
---
import kbnFieldUtilsObj from './kbn_field_utils.devdocs.json';
diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx
index 2cfd11b3ac157..e10d72e994550 100644
--- a/api_docs/kbn_find_used_node_modules.mdx
+++ b/api_docs/kbn_find_used_node_modules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules
title: "@kbn/find-used-node-modules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/find-used-node-modules plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules']
---
import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json';
diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx
index e0419e5d5da41..3b04a25258387 100644
--- a/api_docs/kbn_formatters.mdx
+++ b/api_docs/kbn_formatters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters
title: "@kbn/formatters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/formatters plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters']
---
import kbnFormattersObj from './kbn_formatters.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index 77e7e56045206..af92263e8cfed 100644
--- a/api_docs/kbn_ftr_common_functional_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services
title: "@kbn/ftr-common-functional-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-services plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services']
---
import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx
index 11e506fd8778b..61075c6eb6579 100644
--- a/api_docs/kbn_ftr_common_functional_ui_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services
title: "@kbn/ftr-common-functional-ui-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-ui-services plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services']
---
import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index 895f037318e40..1ff636eeb0a21 100644
--- a/api_docs/kbn_generate.mdx
+++ b/api_docs/kbn_generate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate
title: "@kbn/generate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate']
---
import kbnGenerateObj from './kbn_generate.devdocs.json';
diff --git a/api_docs/kbn_generate_console_definitions.mdx b/api_docs/kbn_generate_console_definitions.mdx
index 2fba8a5c3d044..50d686491379d 100644
--- a/api_docs/kbn_generate_console_definitions.mdx
+++ b/api_docs/kbn_generate_console_definitions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions
title: "@kbn/generate-console-definitions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-console-definitions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions']
---
import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json';
diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx
index dc3fe9087d822..653ee460a8fe5 100644
--- a/api_docs/kbn_generate_csv.mdx
+++ b/api_docs/kbn_generate_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv
title: "@kbn/generate-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index ce793d3c7e72d..6c33c24016be9 100644
--- a/api_docs/kbn_guided_onboarding.mdx
+++ b/api_docs/kbn_guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding
title: "@kbn/guided-onboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/guided-onboarding plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding']
---
import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json';
diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx
index 6b0e34d658295..d19dc9e916402 100644
--- a/api_docs/kbn_handlebars.mdx
+++ b/api_docs/kbn_handlebars.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars
title: "@kbn/handlebars"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/handlebars plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars']
---
import kbnHandlebarsObj from './kbn_handlebars.devdocs.json';
diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx
index 2c6c2983898a3..1b4cff78a60c8 100644
--- a/api_docs/kbn_hapi_mocks.mdx
+++ b/api_docs/kbn_hapi_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks
title: "@kbn/hapi-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/hapi-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks']
---
import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json';
diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx
index 98f2fc488178e..db3623534368c 100644
--- a/api_docs/kbn_health_gateway_server.mdx
+++ b/api_docs/kbn_health_gateway_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server
title: "@kbn/health-gateway-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/health-gateway-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server']
---
import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx
index fc7bbdb76b849..a37230987a541 100644
--- a/api_docs/kbn_home_sample_data_card.mdx
+++ b/api_docs/kbn_home_sample_data_card.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card
title: "@kbn/home-sample-data-card"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-card plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card']
---
import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx
index 0fd546d7b92e3..8b34f16ff4a37 100644
--- a/api_docs/kbn_home_sample_data_tab.mdx
+++ b/api_docs/kbn_home_sample_data_tab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab
title: "@kbn/home-sample-data-tab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-tab plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab']
---
import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json';
diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx
index 222441218304d..b814e45a8d7ae 100644
--- a/api_docs/kbn_i18n.mdx
+++ b/api_docs/kbn_i18n.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n
title: "@kbn/i18n"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n']
---
import kbnI18nObj from './kbn_i18n.devdocs.json';
diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx
index 7287101a48bc0..4425c183688ab 100644
--- a/api_docs/kbn_i18n_react.mdx
+++ b/api_docs/kbn_i18n_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react
title: "@kbn/i18n-react"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n-react plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react']
---
import kbnI18nReactObj from './kbn_i18n_react.devdocs.json';
diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx
index 4b569ba70a57f..0da7050bb2168 100644
--- a/api_docs/kbn_import_resolver.mdx
+++ b/api_docs/kbn_import_resolver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver
title: "@kbn/import-resolver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/import-resolver plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx
index 7a053b5fa7fdc..01225b0abd28c 100644
--- a/api_docs/kbn_index_management.mdx
+++ b/api_docs/kbn_index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management
title: "@kbn/index-management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/index-management plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management']
---
import kbnIndexManagementObj from './kbn_index_management.devdocs.json';
diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx
index 1377189018dc7..4e758ffe534ee 100644
--- a/api_docs/kbn_inference_integration_flyout.mdx
+++ b/api_docs/kbn_inference_integration_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout
title: "@kbn/inference_integration_flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/inference_integration_flyout plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout']
---
import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json';
diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx
index e619cee030554..af996b7c3b0a7 100644
--- a/api_docs/kbn_infra_forge.mdx
+++ b/api_docs/kbn_infra_forge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge
title: "@kbn/infra-forge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/infra-forge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/infra-forge']
---
import kbnInfraForgeObj from './kbn_infra_forge.devdocs.json';
diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx
index 743fa49f63ea6..231b37fa243d3 100644
--- a/api_docs/kbn_interpreter.mdx
+++ b/api_docs/kbn_interpreter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter
title: "@kbn/interpreter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/interpreter plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter']
---
import kbnInterpreterObj from './kbn_interpreter.devdocs.json';
diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx
index d25eb1c70eae1..251f6f1c286cc 100644
--- a/api_docs/kbn_io_ts_utils.mdx
+++ b/api_docs/kbn_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils
title: "@kbn/io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/io-ts-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils']
---
import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx
index 1c1edca2da20f..edfc6c4d6a4f8 100644
--- a/api_docs/kbn_ipynb.mdx
+++ b/api_docs/kbn_ipynb.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb
title: "@kbn/ipynb"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ipynb plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb']
---
import kbnIpynbObj from './kbn_ipynb.devdocs.json';
diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx
index 7de8a5e62db00..19f988496b073 100644
--- a/api_docs/kbn_jest_serializers.mdx
+++ b/api_docs/kbn_jest_serializers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers
title: "@kbn/jest-serializers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/jest-serializers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers']
---
import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json';
diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx
index b13f41ebcdcf6..b7962b651cba6 100644
--- a/api_docs/kbn_journeys.mdx
+++ b/api_docs/kbn_journeys.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys
title: "@kbn/journeys"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/journeys plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys']
---
import kbnJourneysObj from './kbn_journeys.devdocs.json';
diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx
index 60e5f209ef5ad..4330063fe00c8 100644
--- a/api_docs/kbn_json_ast.mdx
+++ b/api_docs/kbn_json_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast
title: "@kbn/json-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-ast plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast']
---
import kbnJsonAstObj from './kbn_json_ast.devdocs.json';
diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx
index eb1ce42387c78..61ec8ae5ce8b1 100644
--- a/api_docs/kbn_kibana_manifest_schema.mdx
+++ b/api_docs/kbn_kibana_manifest_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema
title: "@kbn/kibana-manifest-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/kibana-manifest-schema plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema']
---
import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json';
diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx
index b5b1c2617d22c..25b833684cbf1 100644
--- a/api_docs/kbn_language_documentation_popover.mdx
+++ b/api_docs/kbn_language_documentation_popover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover
title: "@kbn/language-documentation-popover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/language-documentation-popover plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover']
---
import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json';
diff --git a/api_docs/kbn_lens_embeddable_utils.mdx b/api_docs/kbn_lens_embeddable_utils.mdx
index 5c12dc29287d6..2d2f057707b7c 100644
--- a/api_docs/kbn_lens_embeddable_utils.mdx
+++ b/api_docs/kbn_lens_embeddable_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils
title: "@kbn/lens-embeddable-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-embeddable-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-embeddable-utils']
---
import kbnLensEmbeddableUtilsObj from './kbn_lens_embeddable_utils.devdocs.json';
diff --git a/api_docs/kbn_lens_formula_docs.mdx b/api_docs/kbn_lens_formula_docs.mdx
index ad2a34a56b3ea..6bb8189984439 100644
--- a/api_docs/kbn_lens_formula_docs.mdx
+++ b/api_docs/kbn_lens_formula_docs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs
title: "@kbn/lens-formula-docs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/lens-formula-docs plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/lens-formula-docs']
---
import kbnLensFormulaDocsObj from './kbn_lens_formula_docs.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index 675fae1fd9352..edc37ca458a2e 100644
--- a/api_docs/kbn_logging.mdx
+++ b/api_docs/kbn_logging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging
title: "@kbn/logging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging']
---
import kbnLoggingObj from './kbn_logging.devdocs.json';
diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx
index 7a6b8c09ff0d6..58e1d323c3109 100644
--- a/api_docs/kbn_logging_mocks.mdx
+++ b/api_docs/kbn_logging_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks
title: "@kbn/logging-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks']
---
import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json';
diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx
index f2430a848519b..240057a534fbb 100644
--- a/api_docs/kbn_managed_content_badge.mdx
+++ b/api_docs/kbn_managed_content_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge
title: "@kbn/managed-content-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-content-badge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge']
---
import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json';
diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx
index ad87121a4ae43..9f84eff04585e 100644
--- a/api_docs/kbn_managed_vscode_config.mdx
+++ b/api_docs/kbn_managed_vscode_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config
title: "@kbn/managed-vscode-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-vscode-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config']
---
import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json';
diff --git a/api_docs/kbn_management_cards_navigation.mdx b/api_docs/kbn_management_cards_navigation.mdx
index 3f312d7ebb8a3..e1a85b4a34cf6 100644
--- a/api_docs/kbn_management_cards_navigation.mdx
+++ b/api_docs/kbn_management_cards_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation
title: "@kbn/management-cards-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-cards-navigation plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-cards-navigation']
---
import kbnManagementCardsNavigationObj from './kbn_management_cards_navigation.devdocs.json';
diff --git a/api_docs/kbn_management_settings_application.mdx b/api_docs/kbn_management_settings_application.mdx
index c5c0ab8d2eae0..78ddec1b326fb 100644
--- a/api_docs/kbn_management_settings_application.mdx
+++ b/api_docs/kbn_management_settings_application.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application
title: "@kbn/management-settings-application"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-application plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application']
---
import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx
index 7fddbc08e184d..a66e7c7f87ece 100644
--- a/api_docs/kbn_management_settings_components_field_category.mdx
+++ b/api_docs/kbn_management_settings_components_field_category.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category
title: "@kbn/management-settings-components-field-category"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-category plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-category']
---
import kbnManagementSettingsComponentsFieldCategoryObj from './kbn_management_settings_components_field_category.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_input.mdx b/api_docs/kbn_management_settings_components_field_input.mdx
index 3cc3e306930ce..b16d9b73e7713 100644
--- a/api_docs/kbn_management_settings_components_field_input.mdx
+++ b/api_docs/kbn_management_settings_components_field_input.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input
title: "@kbn/management-settings-components-field-input"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-input plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input']
---
import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx
index ae3a96f5e761f..0a057879d7f2d 100644
--- a/api_docs/kbn_management_settings_components_field_row.mdx
+++ b/api_docs/kbn_management_settings_components_field_row.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row
title: "@kbn/management-settings-components-field-row"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-field-row plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-row']
---
import kbnManagementSettingsComponentsFieldRowObj from './kbn_management_settings_components_field_row.devdocs.json';
diff --git a/api_docs/kbn_management_settings_components_form.mdx b/api_docs/kbn_management_settings_components_form.mdx
index b87cdaa913945..ba8762a3fc108 100644
--- a/api_docs/kbn_management_settings_components_form.mdx
+++ b/api_docs/kbn_management_settings_components_form.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form
title: "@kbn/management-settings-components-form"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-components-form plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-form']
---
import kbnManagementSettingsComponentsFormObj from './kbn_management_settings_components_form.devdocs.json';
diff --git a/api_docs/kbn_management_settings_field_definition.mdx b/api_docs/kbn_management_settings_field_definition.mdx
index 2b058ad353ede..f094c882827df 100644
--- a/api_docs/kbn_management_settings_field_definition.mdx
+++ b/api_docs/kbn_management_settings_field_definition.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition
title: "@kbn/management-settings-field-definition"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-field-definition plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition']
---
import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json';
diff --git a/api_docs/kbn_management_settings_ids.devdocs.json b/api_docs/kbn_management_settings_ids.devdocs.json
index 4495e0bc68ae0..b4b24972b6989 100644
--- a/api_docs/kbn_management_settings_ids.devdocs.json
+++ b/api_docs/kbn_management_settings_ids.devdocs.json
@@ -1342,6 +1342,21 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/management-settings-ids",
+ "id": "def-common.OBSERVABILITY_ENABLE_CONTAINER_ASSET_VIEW_ID",
+ "type": "string",
+ "tags": [],
+ "label": "OBSERVABILITY_ENABLE_CONTAINER_ASSET_VIEW_ID",
+ "description": [],
+ "signature": [
+ "\"observability:enableContainerAssetView\""
+ ],
+ "path": "packages/kbn-management/settings/setting_ids/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/management-settings-ids",
"id": "def-common.OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID",
diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx
index 113c7af00a18c..c02ad2f6362ee 100644
--- a/api_docs/kbn_management_settings_ids.mdx
+++ b/api_docs/kbn_management_settings_ids.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids
title: "@kbn/management-settings-ids"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-ids plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids']
---
import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 138 | 0 | 135 | 0 |
+| 139 | 0 | 136 | 0 |
## Common
diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx
index 07c50fbccef6e..8e2abaa157e8a 100644
--- a/api_docs/kbn_management_settings_section_registry.mdx
+++ b/api_docs/kbn_management_settings_section_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry
title: "@kbn/management-settings-section-registry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-section-registry plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry']
---
import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json';
diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx
index 0517cef9c6d37..36f4ad1664324 100644
--- a/api_docs/kbn_management_settings_types.mdx
+++ b/api_docs/kbn_management_settings_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types
title: "@kbn/management-settings-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types']
---
import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json';
diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx
index b055b7eeda2d0..573e59b8eebec 100644
--- a/api_docs/kbn_management_settings_utilities.mdx
+++ b/api_docs/kbn_management_settings_utilities.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities
title: "@kbn/management-settings-utilities"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-settings-utilities plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities']
---
import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json';
diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx
index df7c00879e710..97bf635ef7cb9 100644
--- a/api_docs/kbn_management_storybook_config.mdx
+++ b/api_docs/kbn_management_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config
title: "@kbn/management-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/management-storybook-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config']
---
import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx
index 5d2dcba10ed0e..c22f7ba48d96e 100644
--- a/api_docs/kbn_mapbox_gl.mdx
+++ b/api_docs/kbn_mapbox_gl.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl
title: "@kbn/mapbox-gl"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mapbox-gl plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl']
---
import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json';
diff --git a/api_docs/kbn_maps_vector_tile_utils.mdx b/api_docs/kbn_maps_vector_tile_utils.mdx
index 3af0cc2c571f3..d84fd70e0101f 100644
--- a/api_docs/kbn_maps_vector_tile_utils.mdx
+++ b/api_docs/kbn_maps_vector_tile_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils
title: "@kbn/maps-vector-tile-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/maps-vector-tile-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils']
---
import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx
index edba340d9deaf..b0777f30c7b36 100644
--- a/api_docs/kbn_ml_agg_utils.mdx
+++ b/api_docs/kbn_ml_agg_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils
title: "@kbn/ml-agg-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-agg-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils']
---
import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_anomaly_utils.mdx b/api_docs/kbn_ml_anomaly_utils.mdx
index 5a2bd0e1d8de4..3470163a6c67f 100644
--- a/api_docs/kbn_ml_anomaly_utils.mdx
+++ b/api_docs/kbn_ml_anomaly_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils
title: "@kbn/ml-anomaly-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-anomaly-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils']
---
import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx
index 33fda6414c8df..6e43c3815a031 100644
--- a/api_docs/kbn_ml_cancellable_search.mdx
+++ b/api_docs/kbn_ml_cancellable_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search
title: "@kbn/ml-cancellable-search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-cancellable-search plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search']
---
import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json';
diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx
index de375cef5729f..a935ca38b9907 100644
--- a/api_docs/kbn_ml_category_validator.mdx
+++ b/api_docs/kbn_ml_category_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator
title: "@kbn/ml-category-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-category-validator plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-category-validator']
---
import kbnMlCategoryValidatorObj from './kbn_ml_category_validator.devdocs.json';
diff --git a/api_docs/kbn_ml_chi2test.mdx b/api_docs/kbn_ml_chi2test.mdx
index a61040a77d5f2..706082b11619b 100644
--- a/api_docs/kbn_ml_chi2test.mdx
+++ b/api_docs/kbn_ml_chi2test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test
title: "@kbn/ml-chi2test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-chi2test plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-chi2test']
---
import kbnMlChi2testObj from './kbn_ml_chi2test.devdocs.json';
diff --git a/api_docs/kbn_ml_data_frame_analytics_utils.mdx b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
index 5c2911a7c8f90..61c4bd53b7bf8 100644
--- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx
+++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils
title: "@kbn/ml-data-frame-analytics-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-frame-analytics-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils']
---
import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx
index bb774e2e8d14e..9ad707baf9de7 100644
--- a/api_docs/kbn_ml_data_grid.mdx
+++ b/api_docs/kbn_ml_data_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid
title: "@kbn/ml-data-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-data-grid plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid']
---
import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json';
diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx
index 5b865671b0ee2..0dc7fd4d8ce46 100644
--- a/api_docs/kbn_ml_date_picker.mdx
+++ b/api_docs/kbn_ml_date_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker
title: "@kbn/ml-date-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-picker plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker']
---
import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json';
diff --git a/api_docs/kbn_ml_date_utils.mdx b/api_docs/kbn_ml_date_utils.mdx
index 8284c899f4323..fdb87e6ead0c8 100644
--- a/api_docs/kbn_ml_date_utils.mdx
+++ b/api_docs/kbn_ml_date_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils
title: "@kbn/ml-date-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-utils']
---
import kbnMlDateUtilsObj from './kbn_ml_date_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_error_utils.mdx b/api_docs/kbn_ml_error_utils.mdx
index 721b7bdc1ad08..34e962709318d 100644
--- a/api_docs/kbn_ml_error_utils.mdx
+++ b/api_docs/kbn_ml_error_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils
title: "@kbn/ml-error-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-error-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils']
---
import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx
index 0d67a70e7bede..1bd4b9f1987be 100644
--- a/api_docs/kbn_ml_in_memory_table.mdx
+++ b/api_docs/kbn_ml_in_memory_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table
title: "@kbn/ml-in-memory-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-in-memory-table plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table']
---
import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json';
diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx
index c5f4e300aa4cf..5f7cd4e2ff0a9 100644
--- a/api_docs/kbn_ml_is_defined.mdx
+++ b/api_docs/kbn_ml_is_defined.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined
title: "@kbn/ml-is-defined"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-defined plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined']
---
import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json';
diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx
index d761038817e65..31f4017eac823 100644
--- a/api_docs/kbn_ml_is_populated_object.mdx
+++ b/api_docs/kbn_ml_is_populated_object.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object
title: "@kbn/ml-is-populated-object"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-populated-object plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object']
---
import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json';
diff --git a/api_docs/kbn_ml_kibana_theme.mdx b/api_docs/kbn_ml_kibana_theme.mdx
index 0a5c077cd73ef..62b780240d0e9 100644
--- a/api_docs/kbn_ml_kibana_theme.mdx
+++ b/api_docs/kbn_ml_kibana_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme
title: "@kbn/ml-kibana-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-kibana-theme plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-kibana-theme']
---
import kbnMlKibanaThemeObj from './kbn_ml_kibana_theme.devdocs.json';
diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx
index a100be6b307a4..98320a592e34d 100644
--- a/api_docs/kbn_ml_local_storage.mdx
+++ b/api_docs/kbn_ml_local_storage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage
title: "@kbn/ml-local-storage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-local-storage plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage']
---
import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json';
diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx
index 3c0e7a02ee2fc..002d87f9f8b7d 100644
--- a/api_docs/kbn_ml_nested_property.mdx
+++ b/api_docs/kbn_ml_nested_property.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property
title: "@kbn/ml-nested-property"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-nested-property plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property']
---
import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json';
diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx
index fd6567a2a1b78..b31da35bf65b2 100644
--- a/api_docs/kbn_ml_number_utils.mdx
+++ b/api_docs/kbn_ml_number_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils
title: "@kbn/ml-number-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-number-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils']
---
import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx
index f969623c62b38..4394bfcba4ed0 100644
--- a/api_docs/kbn_ml_query_utils.mdx
+++ b/api_docs/kbn_ml_query_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils
title: "@kbn/ml-query-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-query-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils']
---
import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx
index ef9c4d64f83fc..40a3bd21d910e 100644
--- a/api_docs/kbn_ml_random_sampler_utils.mdx
+++ b/api_docs/kbn_ml_random_sampler_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils
title: "@kbn/ml-random-sampler-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-random-sampler-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils']
---
import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx
index 0f4e58273706f..d41647a8f96de 100644
--- a/api_docs/kbn_ml_route_utils.mdx
+++ b/api_docs/kbn_ml_route_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils
title: "@kbn/ml-route-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-route-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils']
---
import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_runtime_field_utils.mdx b/api_docs/kbn_ml_runtime_field_utils.mdx
index 170a28694bff8..d07b6ab436856 100644
--- a/api_docs/kbn_ml_runtime_field_utils.mdx
+++ b/api_docs/kbn_ml_runtime_field_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils
title: "@kbn/ml-runtime-field-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-runtime-field-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-runtime-field-utils']
---
import kbnMlRuntimeFieldUtilsObj from './kbn_ml_runtime_field_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx
index a3e493c29c5a8..71dad33e042a0 100644
--- a/api_docs/kbn_ml_string_hash.mdx
+++ b/api_docs/kbn_ml_string_hash.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash
title: "@kbn/ml-string-hash"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-string-hash plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash']
---
import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json';
diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx
index 361a0044512cf..225c805a33255 100644
--- a/api_docs/kbn_ml_time_buckets.mdx
+++ b/api_docs/kbn_ml_time_buckets.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets
title: "@kbn/ml-time-buckets"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-time-buckets plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets']
---
import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index 904613e46ea38..bc8fe63031abb 100644
--- a/api_docs/kbn_ml_trained_models_utils.mdx
+++ b/api_docs/kbn_ml_trained_models_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils
title: "@kbn/ml-trained-models-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-trained-models-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils']
---
import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_ui_actions.mdx b/api_docs/kbn_ml_ui_actions.mdx
index c924d55d28678..c4bb62c548c4a 100644
--- a/api_docs/kbn_ml_ui_actions.mdx
+++ b/api_docs/kbn_ml_ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions
title: "@kbn/ml-ui-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-ui-actions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions']
---
import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json';
diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx
index 573191533bdce..4a16938f93301 100644
--- a/api_docs/kbn_ml_url_state.mdx
+++ b/api_docs/kbn_ml_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state
title: "@kbn/ml-url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-url-state plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx
index 2a8da4c302612..e02d381b3e051 100644
--- a/api_docs/kbn_mock_idp_utils.mdx
+++ b/api_docs/kbn_mock_idp_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils
title: "@kbn/mock-idp-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mock-idp-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils']
---
import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index c25157236f28e..15a38628e7285 100644
--- a/api_docs/kbn_monaco.mdx
+++ b/api_docs/kbn_monaco.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco
title: "@kbn/monaco"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/monaco plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco']
---
import kbnMonacoObj from './kbn_monaco.devdocs.json';
diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx
index e850d73f340c7..3158f504dfa0b 100644
--- a/api_docs/kbn_object_versioning.mdx
+++ b/api_docs/kbn_object_versioning.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning
title: "@kbn/object-versioning"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning']
---
import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json';
diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx
index b79ebd69017d2..e1cf9fe43736e 100644
--- a/api_docs/kbn_observability_alert_details.mdx
+++ b/api_docs/kbn_observability_alert_details.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details
title: "@kbn/observability-alert-details"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alert-details plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details']
---
import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json';
diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx
index ab70b8c9e6b78..ccf41b9aeca24 100644
--- a/api_docs/kbn_observability_alerting_test_data.mdx
+++ b/api_docs/kbn_observability_alerting_test_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data
title: "@kbn/observability-alerting-test-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alerting-test-data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-test-data']
---
import kbnObservabilityAlertingTestDataObj from './kbn_observability_alerting_test_data.devdocs.json';
diff --git a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
index 9fecba206d162..34124658ca632 100644
--- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
+++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util
title: "@kbn/observability-get-padded-alert-time-range-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-get-padded-alert-time-range-util']
---
import kbnObservabilityGetPaddedAlertTimeRangeUtilObj from './kbn_observability_get_padded_alert_time_range_util.devdocs.json';
diff --git a/api_docs/kbn_openapi_bundler.mdx b/api_docs/kbn_openapi_bundler.mdx
index d1a66426c38d9..971a09d2961bb 100644
--- a/api_docs/kbn_openapi_bundler.mdx
+++ b/api_docs/kbn_openapi_bundler.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler
title: "@kbn/openapi-bundler"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-bundler plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler']
---
import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json';
diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx
index ee6fc5220271a..fc637a17aaf88 100644
--- a/api_docs/kbn_openapi_generator.mdx
+++ b/api_docs/kbn_openapi_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator
title: "@kbn/openapi-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/openapi-generator plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator']
---
import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json';
diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx
index 8290101eac3dd..5aaecbeb28bbe 100644
--- a/api_docs/kbn_optimizer.mdx
+++ b/api_docs/kbn_optimizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer
title: "@kbn/optimizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer']
---
import kbnOptimizerObj from './kbn_optimizer.devdocs.json';
diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx
index 7ca4835e6ea61..4eaba13918985 100644
--- a/api_docs/kbn_optimizer_webpack_helpers.mdx
+++ b/api_docs/kbn_optimizer_webpack_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers
title: "@kbn/optimizer-webpack-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer-webpack-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers']
---
import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json';
diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx
index 9082547441ec9..75097b46b245c 100644
--- a/api_docs/kbn_osquery_io_ts_types.mdx
+++ b/api_docs/kbn_osquery_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types
title: "@kbn/osquery-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/osquery-io-ts-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types']
---
import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_panel_loader.mdx b/api_docs/kbn_panel_loader.mdx
index 896c039799e09..13c370601d475 100644
--- a/api_docs/kbn_panel_loader.mdx
+++ b/api_docs/kbn_panel_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader
title: "@kbn/panel-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/panel-loader plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/panel-loader']
---
import kbnPanelLoaderObj from './kbn_panel_loader.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index 6003800926225..a44e491c8d3a3 100644
--- a/api_docs/kbn_performance_testing_dataset_extractor.mdx
+++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor
title: "@kbn/performance-testing-dataset-extractor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/performance-testing-dataset-extractor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor']
---
import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json';
diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx
index a3dbfb611027f..b8d5a7807394b 100644
--- a/api_docs/kbn_plugin_check.mdx
+++ b/api_docs/kbn_plugin_check.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check
title: "@kbn/plugin-check"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-check plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check']
---
import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json';
diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx
index b80cf349a3343..65e7c98c7b039 100644
--- a/api_docs/kbn_plugin_generator.mdx
+++ b/api_docs/kbn_plugin_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator
title: "@kbn/plugin-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-generator plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator']
---
import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json';
diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx
index f31d968bfa01f..3c4eeaf583bd7 100644
--- a/api_docs/kbn_plugin_helpers.mdx
+++ b/api_docs/kbn_plugin_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers
title: "@kbn/plugin-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx
index c8a8c938c2da7..840eec03bb9cb 100644
--- a/api_docs/kbn_presentation_containers.mdx
+++ b/api_docs/kbn_presentation_containers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers
title: "@kbn/presentation-containers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-containers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers']
---
import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json';
diff --git a/api_docs/kbn_presentation_publishing.devdocs.json b/api_docs/kbn_presentation_publishing.devdocs.json
index 9ed088d73afe0..0c7f31ad4b1f9 100644
--- a/api_docs/kbn_presentation_publishing.devdocs.json
+++ b/api_docs/kbn_presentation_publishing.devdocs.json
@@ -1353,6 +1353,55 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/presentation-publishing",
+ "id": "def-common.getPanelDescription",
+ "type": "Function",
+ "tags": [],
+ "label": "getPanelDescription",
+ "description": [],
+ "signature": [
+ "(api: Partial<",
+ {
+ "pluginId": "@kbn/presentation-publishing",
+ "scope": "common",
+ "docId": "kibKbnPresentationPublishingPluginApi",
+ "section": "def-common.PublishesPanelDescription",
+ "text": "PublishesPanelDescription"
+ },
+ ">) => string | undefined"
+ ],
+ "path": "packages/presentation/presentation_publishing/interfaces/titles/publishes_panel_description.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/presentation-publishing",
+ "id": "def-common.getPanelDescription.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "api",
+ "description": [],
+ "signature": [
+ "Partial<",
+ {
+ "pluginId": "@kbn/presentation-publishing",
+ "scope": "common",
+ "docId": "kibKbnPresentationPublishingPluginApi",
+ "section": "def-common.PublishesPanelDescription",
+ "text": "PublishesPanelDescription"
+ },
+ ">"
+ ],
+ "path": "packages/presentation/presentation_publishing/interfaces/titles/publishes_panel_description.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/presentation-publishing",
"id": "def-common.getPanelTitle",
diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx
index ffc1ac7f13177..f7a3ee02052bc 100644
--- a/api_docs/kbn_presentation_publishing.mdx
+++ b/api_docs/kbn_presentation_publishing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing
title: "@kbn/presentation-publishing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/presentation-publishing plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing']
---
import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 192 | 0 | 161 | 5 |
+| 194 | 0 | 163 | 5 |
## Common
diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx
index 584eebd438242..4c5d579d8e0ea 100644
--- a/api_docs/kbn_profiling_utils.mdx
+++ b/api_docs/kbn_profiling_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils
title: "@kbn/profiling-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/profiling-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils']
---
import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json';
diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx
index 7941a927ce080..75eaac5c950b5 100644
--- a/api_docs/kbn_random_sampling.mdx
+++ b/api_docs/kbn_random_sampling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling
title: "@kbn/random-sampling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/random-sampling plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/random-sampling']
---
import kbnRandomSamplingObj from './kbn_random_sampling.devdocs.json';
diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx
index 468701581ec85..076f18c6b1c04 100644
--- a/api_docs/kbn_react_field.mdx
+++ b/api_docs/kbn_react_field.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field
title: "@kbn/react-field"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-field plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_react_hooks.mdx b/api_docs/kbn_react_hooks.mdx
index 29ed7c6eb9ef2..08f8a5afa177b 100644
--- a/api_docs/kbn_react_hooks.mdx
+++ b/api_docs/kbn_react_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-hooks
title: "@kbn/react-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-hooks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-hooks']
---
import kbnReactHooksObj from './kbn_react_hooks.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx
index 30847776663d5..2246b0c439f93 100644
--- a/api_docs/kbn_react_kibana_context_common.mdx
+++ b/api_docs/kbn_react_kibana_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common
title: "@kbn/react-kibana-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-common']
---
import kbnReactKibanaContextCommonObj from './kbn_react_kibana_context_common.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_render.mdx b/api_docs/kbn_react_kibana_context_render.mdx
index 59a116b9ca28e..7979c997747f9 100644
--- a/api_docs/kbn_react_kibana_context_render.mdx
+++ b/api_docs/kbn_react_kibana_context_render.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render
title: "@kbn/react-kibana-context-render"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-render plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-render']
---
import kbnReactKibanaContextRenderObj from './kbn_react_kibana_context_render.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_root.mdx b/api_docs/kbn_react_kibana_context_root.mdx
index 69f4afb98addb..f38620267378c 100644
--- a/api_docs/kbn_react_kibana_context_root.mdx
+++ b/api_docs/kbn_react_kibana_context_root.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root
title: "@kbn/react-kibana-context-root"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-root plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-root']
---
import kbnReactKibanaContextRootObj from './kbn_react_kibana_context_root.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_styled.mdx b/api_docs/kbn_react_kibana_context_styled.mdx
index 4c4fd1dae94b1..0b091edb14b97 100644
--- a/api_docs/kbn_react_kibana_context_styled.mdx
+++ b/api_docs/kbn_react_kibana_context_styled.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled
title: "@kbn/react-kibana-context-styled"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-styled plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-styled']
---
import kbnReactKibanaContextStyledObj from './kbn_react_kibana_context_styled.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_context_theme.mdx b/api_docs/kbn_react_kibana_context_theme.mdx
index ba7cc0e3106bd..07257e9fbc75d 100644
--- a/api_docs/kbn_react_kibana_context_theme.mdx
+++ b/api_docs/kbn_react_kibana_context_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme
title: "@kbn/react-kibana-context-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-context-theme plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-context-theme']
---
import kbnReactKibanaContextThemeObj from './kbn_react_kibana_context_theme.devdocs.json';
diff --git a/api_docs/kbn_react_kibana_mount.mdx b/api_docs/kbn_react_kibana_mount.mdx
index 8ba8b0b028f72..bb8079ef191ec 100644
--- a/api_docs/kbn_react_kibana_mount.mdx
+++ b/api_docs/kbn_react_kibana_mount.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount
title: "@kbn/react-kibana-mount"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-kibana-mount plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount']
---
import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json';
diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx
index b51f3472a0778..dcfacf132e61e 100644
--- a/api_docs/kbn_repo_file_maps.mdx
+++ b/api_docs/kbn_repo_file_maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps
title: "@kbn/repo-file-maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-file-maps plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps']
---
import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json';
diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx
index 15b92df5f61f3..68f966745a9ec 100644
--- a/api_docs/kbn_repo_linter.mdx
+++ b/api_docs/kbn_repo_linter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter
title: "@kbn/repo-linter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-linter plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter']
---
import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json';
diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx
index c3c827974fb43..0417a37f7539e 100644
--- a/api_docs/kbn_repo_path.mdx
+++ b/api_docs/kbn_repo_path.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path
title: "@kbn/repo-path"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-path plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path']
---
import kbnRepoPathObj from './kbn_repo_path.devdocs.json';
diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx
index 811d31b46ace5..1774ed88835c7 100644
--- a/api_docs/kbn_repo_source_classifier.mdx
+++ b/api_docs/kbn_repo_source_classifier.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier
title: "@kbn/repo-source-classifier"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-source-classifier plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier']
---
import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json';
diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx
index c70a34c1a40f9..6b6e08cd517ac 100644
--- a/api_docs/kbn_reporting_common.mdx
+++ b/api_docs/kbn_reporting_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common
title: "@kbn/reporting-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx
index df829d8350f37..9a6ee5f3e5f3d 100644
--- a/api_docs/kbn_reporting_csv_share_panel.mdx
+++ b/api_docs/kbn_reporting_csv_share_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel
title: "@kbn/reporting-csv-share-panel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-csv-share-panel plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel']
---
import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx
index 2dffb7cd9c655..ee4ec1dde186f 100644
--- a/api_docs/kbn_reporting_export_types_csv.mdx
+++ b/api_docs/kbn_reporting_export_types_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv
title: "@kbn/reporting-export-types-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv']
---
import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx
index f031497b32a47..41d11899a42af 100644
--- a/api_docs/kbn_reporting_export_types_csv_common.mdx
+++ b/api_docs/kbn_reporting_export_types_csv_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common
title: "@kbn/reporting-export-types-csv-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-csv-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common']
---
import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx
index 4605f9146fc28..d1d6055b499da 100644
--- a/api_docs/kbn_reporting_export_types_pdf.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf
title: "@kbn/reporting-export-types-pdf"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf']
---
import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx
index a9ea82e9d5376..645b55ac68d01 100644
--- a/api_docs/kbn_reporting_export_types_pdf_common.mdx
+++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common
title: "@kbn/reporting-export-types-pdf-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-pdf-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common']
---
import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx
index 87dcae4da6e45..58623b4f50029 100644
--- a/api_docs/kbn_reporting_export_types_png.mdx
+++ b/api_docs/kbn_reporting_export_types_png.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png
title: "@kbn/reporting-export-types-png"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png']
---
import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json';
diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx
index fbccb4f77f74e..382a175012340 100644
--- a/api_docs/kbn_reporting_export_types_png_common.mdx
+++ b/api_docs/kbn_reporting_export_types_png_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common
title: "@kbn/reporting-export-types-png-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-export-types-png-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common']
---
import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json';
diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx
index 72473c37745d9..6febd41dd4a3f 100644
--- a/api_docs/kbn_reporting_mocks_server.mdx
+++ b/api_docs/kbn_reporting_mocks_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server
title: "@kbn/reporting-mocks-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-mocks-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-mocks-server']
---
import kbnReportingMocksServerObj from './kbn_reporting_mocks_server.devdocs.json';
diff --git a/api_docs/kbn_reporting_public.devdocs.json b/api_docs/kbn_reporting_public.devdocs.json
index d6ed8238232b2..aaa1f39f74c06 100644
--- a/api_docs/kbn_reporting_public.devdocs.json
+++ b/api_docs/kbn_reporting_public.devdocs.json
@@ -1194,6 +1194,63 @@
],
"returnComment": []
},
+ {
+ "parentPluginId": "@kbn/reporting-public",
+ "id": "def-public.ReportingAPIClient.createReportingShareJob",
+ "type": "Function",
+ "tags": [],
+ "label": "createReportingShareJob",
+ "description": [],
+ "signature": [
+ "(exportType: string, jobParams: ",
+ "BaseParams",
+ ") => Promise<",
+ {
+ "pluginId": "@kbn/reporting-public",
+ "scope": "public",
+ "docId": "kibKbnReportingPublicPluginApi",
+ "section": "def-public.Job",
+ "text": "Job"
+ },
+ " | undefined>"
+ ],
+ "path": "packages/kbn-reporting/public/reporting_api_client.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/reporting-public",
+ "id": "def-public.ReportingAPIClient.createReportingShareJob.$1",
+ "type": "string",
+ "tags": [],
+ "label": "exportType",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-reporting/public/reporting_api_client.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/reporting-public",
+ "id": "def-public.ReportingAPIClient.createReportingShareJob.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "jobParams",
+ "description": [],
+ "signature": [
+ "BaseParams"
+ ],
+ "path": "packages/kbn-reporting/public/reporting_api_client.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": []
+ },
{
"parentPluginId": "@kbn/reporting-public",
"id": "def-public.ReportingAPIClient.createReportingJob",
diff --git a/api_docs/kbn_reporting_public.mdx b/api_docs/kbn_reporting_public.mdx
index d0f326158d81f..4aea2a32ee902 100644
--- a/api_docs/kbn_reporting_public.mdx
+++ b/api_docs/kbn_reporting_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public
title: "@kbn/reporting-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-public plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public']
---
import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 110 | 0 | 104 | 2 |
+| 113 | 0 | 107 | 2 |
## Client
diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx
index 499f3442151da..f41f3aefbdc71 100644
--- a/api_docs/kbn_reporting_server.mdx
+++ b/api_docs/kbn_reporting_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server
title: "@kbn/reporting-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server']
---
import kbnReportingServerObj from './kbn_reporting_server.devdocs.json';
diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx
index c00835888b82f..0d6cc96a8303c 100644
--- a/api_docs/kbn_resizable_layout.mdx
+++ b/api_docs/kbn_resizable_layout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout
title: "@kbn/resizable-layout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/resizable-layout plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout']
---
import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json';
diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx
index 06022992ea12c..3a25e6066e2e5 100644
--- a/api_docs/kbn_rison.mdx
+++ b/api_docs/kbn_rison.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison
title: "@kbn/rison"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rison plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx
index b0dae4c5e87af..b6bc3d26a2e6d 100644
--- a/api_docs/kbn_router_to_openapispec.mdx
+++ b/api_docs/kbn_router_to_openapispec.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec
title: "@kbn/router-to-openapispec"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-to-openapispec plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec']
---
import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json';
diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx
index 21604c38599d6..7fea2af26040a 100644
--- a/api_docs/kbn_router_utils.mdx
+++ b/api_docs/kbn_router_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils
title: "@kbn/router-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/router-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-utils']
---
import kbnRouterUtilsObj from './kbn_router_utils.devdocs.json';
diff --git a/api_docs/kbn_rrule.mdx b/api_docs/kbn_rrule.mdx
index edf065a020c0b..91d869e6d8495 100644
--- a/api_docs/kbn_rrule.mdx
+++ b/api_docs/kbn_rrule.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule
title: "@kbn/rrule"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rrule plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule']
---
import kbnRruleObj from './kbn_rrule.devdocs.json';
diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx
index ca737a902f175..bf43222cd3057 100644
--- a/api_docs/kbn_rule_data_utils.mdx
+++ b/api_docs/kbn_rule_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils
title: "@kbn/rule-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rule-data-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils']
---
import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json';
diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx
index e9fdeac2ae5f9..a06c844bb8e3e 100644
--- a/api_docs/kbn_saved_objects_settings.mdx
+++ b/api_docs/kbn_saved_objects_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings
title: "@kbn/saved-objects-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/saved-objects-settings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings']
---
import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json';
diff --git a/api_docs/kbn_search_api_panels.devdocs.json b/api_docs/kbn_search_api_panels.devdocs.json
index 6b64604da0fec..3e17ad34f9985 100644
--- a/api_docs/kbn_search_api_panels.devdocs.json
+++ b/api_docs/kbn_search_api_panels.devdocs.json
@@ -326,7 +326,7 @@
"label": "IngestData",
"description": [],
"signature": [
- "({ codeSnippet, selectedLanguage, setSelectedLanguage, docLinks, assetBasePath, application, consolePlugin, sharePlugin, languages, consoleRequest, additionalIngestionPanel, }: React.PropsWithChildren) => JSX.Element"
+ "({ codeSnippet, selectedLanguage, selectedPipeline, setSelectedLanguage, docLinks, assetBasePath, application, consolePlugin, sharePlugin, languages, consoleRequest, additionalIngestionPanel, ingestPipelineData, setSelectedPipeline, defaultIngestPipeline, }: React.PropsWithChildren) => JSX.Element"
],
"path": "packages/kbn-search-api-panels/components/ingest_data.tsx",
"deprecated": false,
@@ -337,7 +337,7 @@
"id": "def-common.IngestData.$1",
"type": "CompoundType",
"tags": [],
- "label": "{\n codeSnippet,\n selectedLanguage,\n setSelectedLanguage,\n docLinks,\n assetBasePath,\n application,\n consolePlugin,\n sharePlugin,\n languages,\n consoleRequest,\n additionalIngestionPanel,\n}",
+ "label": "{\n codeSnippet,\n selectedLanguage,\n selectedPipeline,\n setSelectedLanguage,\n docLinks,\n assetBasePath,\n application,\n consolePlugin,\n sharePlugin,\n languages,\n consoleRequest,\n additionalIngestionPanel,\n ingestPipelineData,\n setSelectedPipeline,\n defaultIngestPipeline,\n}",
"description": [],
"signature": [
"React.PropsWithChildren"
@@ -384,6 +384,39 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/search-api-panels",
+ "id": "def-common.IngestPipelinePanel",
+ "type": "Function",
+ "tags": [],
+ "label": "IngestPipelinePanel",
+ "description": [],
+ "signature": [
+ "({ selectedPipeline, setSelectedPipeline, ingestPipelinesData, defaultIngestPipeline, }: React.PropsWithChildren) => JSX.Element"
+ ],
+ "path": "packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/search-api-panels",
+ "id": "def-common.IngestPipelinePanel.$1",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "{\n selectedPipeline,\n setSelectedPipeline,\n ingestPipelinesData,\n defaultIngestPipeline,\n}",
+ "description": [],
+ "signature": [
+ "React.PropsWithChildren"
+ ],
+ "path": "packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/search-api-panels",
"id": "def-common.InstallClientPanel",
diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx
index 0bd825ac0695e..61f63e012b7a4 100644
--- a/api_docs/kbn_search_api_panels.mdx
+++ b/api_docs/kbn_search_api_panels.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels
title: "@kbn/search-api-panels"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-api-panels plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels']
---
import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 74 | 0 | 74 | 0 |
+| 76 | 0 | 76 | 0 |
## Common
diff --git a/api_docs/kbn_search_connectors.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json
index 06416d03aa67e..703be6afbdcd4 100644
--- a/api_docs/kbn_search_connectors.devdocs.json
+++ b/api_docs/kbn_search_connectors.devdocs.json
@@ -2048,7 +2048,7 @@
"section": "def-common.ConnectorConfiguration",
"text": "ConnectorConfiguration"
},
- ">"
+ " | undefined>"
],
"path": "packages/kbn-search-connectors/lib/update_connector_configuration.ts",
"deprecated": false,
@@ -2643,15 +2643,7 @@
"section": "def-common.ElasticsearchClient",
"text": "ElasticsearchClient"
},
- ", connectorId: string, { advancedSnippet, filteringRules, }: { advancedSnippet: string; filteringRules: ",
- {
- "pluginId": "@kbn/search-connectors",
- "scope": "common",
- "docId": "kibKbnSearchConnectorsPluginApi",
- "section": "def-common.FilteringRule",
- "text": "FilteringRule"
- },
- "[]; }) => Promise<",
+ ", connectorId: string) => Promise<",
{
"pluginId": "@kbn/search-connectors",
"scope": "common",
@@ -2700,51 +2692,6 @@
"deprecated": false,
"trackAdoption": false,
"isRequired": true
- },
- {
- "parentPluginId": "@kbn/search-connectors",
- "id": "def-common.updateFiltering.$3",
- "type": "Object",
- "tags": [],
- "label": "{\n advancedSnippet,\n filteringRules,\n }",
- "description": [],
- "path": "packages/kbn-search-connectors/lib/update_filtering.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "@kbn/search-connectors",
- "id": "def-common.updateFiltering.$3.advancedSnippet",
- "type": "string",
- "tags": [],
- "label": "advancedSnippet",
- "description": [],
- "path": "packages/kbn-search-connectors/lib/update_filtering.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "@kbn/search-connectors",
- "id": "def-common.updateFiltering.$3.filteringRules",
- "type": "Array",
- "tags": [],
- "label": "filteringRules",
- "description": [],
- "signature": [
- {
- "pluginId": "@kbn/search-connectors",
- "scope": "common",
- "docId": "kibKbnSearchConnectorsPluginApi",
- "section": "def-common.FilteringRule",
- "text": "FilteringRule"
- },
- "[]"
- ],
- "path": "packages/kbn-search-connectors/lib/update_filtering.ts",
- "deprecated": false,
- "trackAdoption": false
- }
- ]
}
],
"returnComment": [],
@@ -12227,6 +12174,206 @@
}
]
},
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels",
+ "type": "Object",
+ "tags": [],
+ "label": "index_labels",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.default_value",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "default_value",
+ "description": [],
+ "signature": [
+ "null"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.depends_on",
+ "type": "Array",
+ "tags": [],
+ "label": "depends_on",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.display",
+ "type": "string",
+ "tags": [],
+ "label": "display",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/search-connectors",
+ "scope": "common",
+ "docId": "kibKbnSearchConnectorsPluginApi",
+ "section": "def-common.DisplayType",
+ "text": "DisplayType"
+ },
+ ".TOGGLE"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.label",
+ "type": "string",
+ "tags": [],
+ "label": "label",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.options",
+ "type": "Array",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.order",
+ "type": "number",
+ "tags": [],
+ "label": "order",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.required",
+ "type": "boolean",
+ "tags": [],
+ "label": "required",
+ "description": [],
+ "signature": [
+ "true"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.sensitive",
+ "type": "boolean",
+ "tags": [],
+ "label": "sensitive",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.tooltip",
+ "type": "string",
+ "tags": [],
+ "label": "tooltip",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.type",
+ "type": "string",
+ "tags": [],
+ "label": "type",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/search-connectors",
+ "scope": "common",
+ "docId": "kibKbnSearchConnectorsPluginApi",
+ "section": "def-common.FieldType",
+ "text": "FieldType"
+ },
+ ".BOOLEAN"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.ui_restrictions",
+ "type": "Array",
+ "tags": [],
+ "label": "ui_restrictions",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.validations",
+ "type": "Array",
+ "tags": [],
+ "label": "validations",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.index_labels.value",
+ "type": "boolean",
+ "tags": [],
+ "label": "value",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
{
"parentPluginId": "@kbn/search-connectors",
"id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.confluence.configuration.ssl_enabled",
@@ -45742,6 +45889,206 @@
}
]
},
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security",
+ "type": "Object",
+ "tags": [],
+ "label": "use_document_level_security",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.default_value",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "default_value",
+ "description": [],
+ "signature": [
+ "null"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.depends_on",
+ "type": "Array",
+ "tags": [],
+ "label": "depends_on",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.display",
+ "type": "string",
+ "tags": [],
+ "label": "display",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/search-connectors",
+ "scope": "common",
+ "docId": "kibKbnSearchConnectorsPluginApi",
+ "section": "def-common.DisplayType",
+ "text": "DisplayType"
+ },
+ ".TOGGLE"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.label",
+ "type": "string",
+ "tags": [],
+ "label": "label",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.options",
+ "type": "Array",
+ "tags": [],
+ "label": "options",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.order",
+ "type": "number",
+ "tags": [],
+ "label": "order",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.required",
+ "type": "boolean",
+ "tags": [],
+ "label": "required",
+ "description": [],
+ "signature": [
+ "true"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.sensitive",
+ "type": "boolean",
+ "tags": [],
+ "label": "sensitive",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.tooltip",
+ "type": "string",
+ "tags": [],
+ "label": "tooltip",
+ "description": [],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.type",
+ "type": "string",
+ "tags": [],
+ "label": "type",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/search-connectors",
+ "scope": "common",
+ "docId": "kibKbnSearchConnectorsPluginApi",
+ "section": "def-common.FieldType",
+ "text": "FieldType"
+ },
+ ".BOOLEAN"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.ui_restrictions",
+ "type": "Array",
+ "tags": [],
+ "label": "ui_restrictions",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.validations",
+ "type": "Array",
+ "tags": [],
+ "label": "validations",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/search-connectors",
+ "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_document_level_security.value",
+ "type": "boolean",
+ "tags": [],
+ "label": "value",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "packages/kbn-search-connectors/types/native_connectors.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
{
"parentPluginId": "@kbn/search-connectors",
"id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.salesforce.configuration.use_text_extraction_service",
diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx
index 6f6a9e50169eb..5ed11e321eb61 100644
--- a/api_docs/kbn_search_connectors.mdx
+++ b/api_docs/kbn_search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors
title: "@kbn/search-connectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-connectors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors']
---
import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 3647 | 0 | 3647 | 0 |
+| 3672 | 0 | 3672 | 0 |
## Common
diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx
index 5e54a293f9964..984025b7d06e7 100644
--- a/api_docs/kbn_search_errors.mdx
+++ b/api_docs/kbn_search_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors
title: "@kbn/search-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-errors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-errors']
---
import kbnSearchErrorsObj from './kbn_search_errors.devdocs.json';
diff --git a/api_docs/kbn_search_index_documents.mdx b/api_docs/kbn_search_index_documents.mdx
index fa70d29e96f98..a9b26f8c602ec 100644
--- a/api_docs/kbn_search_index_documents.mdx
+++ b/api_docs/kbn_search_index_documents.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents
title: "@kbn/search-index-documents"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-index-documents plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-index-documents']
---
import kbnSearchIndexDocumentsObj from './kbn_search_index_documents.devdocs.json';
diff --git a/api_docs/kbn_search_response_warnings.mdx b/api_docs/kbn_search_response_warnings.mdx
index 0bac4460fdcb5..d58b65eb56578 100644
--- a/api_docs/kbn_search_response_warnings.mdx
+++ b/api_docs/kbn_search_response_warnings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings
title: "@kbn/search-response-warnings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-response-warnings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings']
---
import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json';
diff --git a/api_docs/kbn_search_types.mdx b/api_docs/kbn_search_types.mdx
index 2dd50b49ea9e6..bcb46438310cc 100644
--- a/api_docs/kbn_search_types.mdx
+++ b/api_docs/kbn_search_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-types
title: "@kbn/search-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/search-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types']
---
import kbnSearchTypesObj from './kbn_search_types.devdocs.json';
diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx
index 8d337c8678519..94deed4ec4598 100644
--- a/api_docs/kbn_security_hardening.mdx
+++ b/api_docs/kbn_security_hardening.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening
title: "@kbn/security-hardening"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-hardening plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening']
---
import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx
index ef38566726beb..89d6e4fc0fa13 100644
--- a/api_docs/kbn_security_plugin_types_common.mdx
+++ b/api_docs/kbn_security_plugin_types_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common
title: "@kbn/security-plugin-types-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-common plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common']
---
import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx
index adf0a50cbf4db..70ba64c9ab624 100644
--- a/api_docs/kbn_security_plugin_types_public.mdx
+++ b/api_docs/kbn_security_plugin_types_public.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public
title: "@kbn/security-plugin-types-public"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-public plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public']
---
import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json';
diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx
index fa3daa255e7ac..c8834e98b44f3 100644
--- a/api_docs/kbn_security_plugin_types_server.mdx
+++ b/api_docs/kbn_security_plugin_types_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server
title: "@kbn/security-plugin-types-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-plugin-types-server plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server']
---
import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json';
diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx
index 4ababb0305851..f3442ad45f12b 100644
--- a/api_docs/kbn_security_solution_features.mdx
+++ b/api_docs/kbn_security_solution_features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features
title: "@kbn/security-solution-features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-features plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features']
---
import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json';
diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx
index 3f16092c9f953..cb475dad3ad2f 100644
--- a/api_docs/kbn_security_solution_navigation.mdx
+++ b/api_docs/kbn_security_solution_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation
title: "@kbn/security-solution-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-navigation plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-navigation']
---
import kbnSecuritySolutionNavigationObj from './kbn_security_solution_navigation.devdocs.json';
diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx
index 8779783e5f2b8..7b7a9bfa7808c 100644
--- a/api_docs/kbn_security_solution_side_nav.mdx
+++ b/api_docs/kbn_security_solution_side_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav
title: "@kbn/security-solution-side-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-side-nav plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav']
---
import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json';
diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx
index 0e72ad92b66aa..96e2ebca3d22e 100644
--- a/api_docs/kbn_security_solution_storybook_config.mdx
+++ b/api_docs/kbn_security_solution_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config
title: "@kbn/security-solution-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-storybook-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config']
---
import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx
index 96ffe1a56cfcd..30e170f3cf2cf 100644
--- a/api_docs/kbn_securitysolution_autocomplete.mdx
+++ b/api_docs/kbn_securitysolution_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete
title: "@kbn/securitysolution-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-autocomplete plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete']
---
import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx
index 22bd12c70915f..5f658ed3e12df 100644
--- a/api_docs/kbn_securitysolution_data_table.mdx
+++ b/api_docs/kbn_securitysolution_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table
title: "@kbn/securitysolution-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-data-table plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table']
---
import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx
index 19fb79ed2638d..60aa38c8a7a96 100644
--- a/api_docs/kbn_securitysolution_ecs.mdx
+++ b/api_docs/kbn_securitysolution_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs
title: "@kbn/securitysolution-ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-ecs plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs']
---
import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx
index 94078ce82f99e..150892b1a83b9 100644
--- a/api_docs/kbn_securitysolution_es_utils.mdx
+++ b/api_docs/kbn_securitysolution_es_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils
title: "@kbn/securitysolution-es-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-es-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils']
---
import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx
index 1ef09342c2efe..023bbf4aeee19 100644
--- a/api_docs/kbn_securitysolution_exception_list_components.mdx
+++ b/api_docs/kbn_securitysolution_exception_list_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components
title: "@kbn/securitysolution-exception-list-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-exception-list-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx
index 0607ddba8c5f0..8a1874fe8b814 100644
--- a/api_docs/kbn_securitysolution_grouping.mdx
+++ b/api_docs/kbn_securitysolution_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping
title: "@kbn/securitysolution-grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-grouping plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping']
---
import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 2cc081aba2a25..8e604d51e2470 100644
--- a/api_docs/kbn_securitysolution_hook_utils.mdx
+++ b/api_docs/kbn_securitysolution_hook_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils
title: "@kbn/securitysolution-hook-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-hook-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils']
---
import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
index c448293ee7be7..a62bdb48a0f09 100644
--- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types
title: "@kbn/securitysolution-io-ts-alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types']
---
import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
index 7f4f259fe58c8..faa08f94d3118 100644
--- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types
title: "@kbn/securitysolution-io-ts-list-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-list-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types']
---
import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx
index 00b6a294d145d..12815e0c764dd 100644
--- a/api_docs/kbn_securitysolution_io_ts_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types
title: "@kbn/securitysolution-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types']
---
import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx
index bb6d52b453c0d..e38be73a94349 100644
--- a/api_docs/kbn_securitysolution_io_ts_utils.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils
title: "@kbn/securitysolution-io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils']
---
import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx
index 736adbcb00644..a0457c67c4803 100644
--- a/api_docs/kbn_securitysolution_list_api.mdx
+++ b/api_docs/kbn_securitysolution_list_api.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api
title: "@kbn/securitysolution-list-api"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-api plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api']
---
import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx
index 9cfe80e9d1f24..e6a41b28a8dd5 100644
--- a/api_docs/kbn_securitysolution_list_constants.mdx
+++ b/api_docs/kbn_securitysolution_list_constants.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants
title: "@kbn/securitysolution-list-constants"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-constants plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants']
---
import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx
index 4fdea1fc45d8a..d5fa741e96602 100644
--- a/api_docs/kbn_securitysolution_list_hooks.mdx
+++ b/api_docs/kbn_securitysolution_list_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks
title: "@kbn/securitysolution-list-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-hooks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks']
---
import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx
index 91d730e7e3db8..94923dc377f94 100644
--- a/api_docs/kbn_securitysolution_list_utils.mdx
+++ b/api_docs/kbn_securitysolution_list_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils
title: "@kbn/securitysolution-list-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils']
---
import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx
index 8c6e09e27a21c..4f131138cc71a 100644
--- a/api_docs/kbn_securitysolution_rules.mdx
+++ b/api_docs/kbn_securitysolution_rules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules
title: "@kbn/securitysolution-rules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-rules plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules']
---
import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx
index ec9bbd745dd02..5f11ec521639a 100644
--- a/api_docs/kbn_securitysolution_t_grid.mdx
+++ b/api_docs/kbn_securitysolution_t_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid
title: "@kbn/securitysolution-t-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-t-grid plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid']
---
import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx
index 9781a4ec18043..4e4ebe2b8e153 100644
--- a/api_docs/kbn_securitysolution_utils.mdx
+++ b/api_docs/kbn_securitysolution_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils
title: "@kbn/securitysolution-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils']
---
import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json';
diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx
index e8a5482949f75..86c4d69b3efd5 100644
--- a/api_docs/kbn_server_http_tools.mdx
+++ b/api_docs/kbn_server_http_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools
title: "@kbn/server-http-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-http-tools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools']
---
import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx
index 9fe5ab757fd3e..2e31210d23d62 100644
--- a/api_docs/kbn_server_route_repository.mdx
+++ b/api_docs/kbn_server_route_repository.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository
title: "@kbn/server-route-repository"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository']
---
import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json';
diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx
index cd31932af0d4b..380c44789901c 100644
--- a/api_docs/kbn_serverless_common_settings.mdx
+++ b/api_docs/kbn_serverless_common_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings
title: "@kbn/serverless-common-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-common-settings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-common-settings']
---
import kbnServerlessCommonSettingsObj from './kbn_serverless_common_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_observability_settings.mdx b/api_docs/kbn_serverless_observability_settings.mdx
index 396cdf62f3ffe..58bf802d7d92f 100644
--- a/api_docs/kbn_serverless_observability_settings.mdx
+++ b/api_docs/kbn_serverless_observability_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings
title: "@kbn/serverless-observability-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-observability-settings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-observability-settings']
---
import kbnServerlessObservabilitySettingsObj from './kbn_serverless_observability_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_project_switcher.mdx b/api_docs/kbn_serverless_project_switcher.mdx
index 71f1afe76c0d9..6e7e1d3a1f40c 100644
--- a/api_docs/kbn_serverless_project_switcher.mdx
+++ b/api_docs/kbn_serverless_project_switcher.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher
title: "@kbn/serverless-project-switcher"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-project-switcher plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-project-switcher']
---
import kbnServerlessProjectSwitcherObj from './kbn_serverless_project_switcher.devdocs.json';
diff --git a/api_docs/kbn_serverless_search_settings.mdx b/api_docs/kbn_serverless_search_settings.mdx
index 3e869d55de6a8..42496b3489c2d 100644
--- a/api_docs/kbn_serverless_search_settings.mdx
+++ b/api_docs/kbn_serverless_search_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings
title: "@kbn/serverless-search-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-search-settings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-search-settings']
---
import kbnServerlessSearchSettingsObj from './kbn_serverless_search_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_security_settings.mdx b/api_docs/kbn_serverless_security_settings.mdx
index 8855c383c88d9..d3298b2ac803b 100644
--- a/api_docs/kbn_serverless_security_settings.mdx
+++ b/api_docs/kbn_serverless_security_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings
title: "@kbn/serverless-security-settings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-security-settings plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-security-settings']
---
import kbnServerlessSecuritySettingsObj from './kbn_serverless_security_settings.devdocs.json';
diff --git a/api_docs/kbn_serverless_storybook_config.mdx b/api_docs/kbn_serverless_storybook_config.mdx
index 5516c4624ab8a..44f0dba92b480 100644
--- a/api_docs/kbn_serverless_storybook_config.mdx
+++ b/api_docs/kbn_serverless_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config
title: "@kbn/serverless-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/serverless-storybook-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/serverless-storybook-config']
---
import kbnServerlessStorybookConfigObj from './kbn_serverless_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx
index 2ead97bde34e5..fa60e6707fbf9 100644
--- a/api_docs/kbn_shared_svg.mdx
+++ b/api_docs/kbn_shared_svg.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg
title: "@kbn/shared-svg"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-svg plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg']
---
import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx
index 11ed7ec1e0df3..073d802aa91de 100644
--- a/api_docs/kbn_shared_ux_avatar_solution.mdx
+++ b/api_docs/kbn_shared_ux_avatar_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution
title: "@kbn/shared-ux-avatar-solution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-solution plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution']
---
import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
index b1fd9e9478fcc..f50075ed2d474 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen
title: "@kbn/shared-ux-button-exit-full-screen"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen']
---
import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx
index 6c5b90e05505e..c2ebdf62a81d8 100644
--- a/api_docs/kbn_shared_ux_button_toolbar.mdx
+++ b/api_docs/kbn_shared_ux_button_toolbar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar
title: "@kbn/shared-ux-button-toolbar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-toolbar plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar']
---
import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx
index f1383777b6eb7..7835d3cdf4d22 100644
--- a/api_docs/kbn_shared_ux_card_no_data.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data
title: "@kbn/shared-ux-card-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data']
---
import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
index 63b98e9c8a774..956722380965a 100644
--- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks
title: "@kbn/shared-ux-card-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks']
---
import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx
index 69c0902422bc0..5d44372103f97 100644
--- a/api_docs/kbn_shared_ux_chrome_navigation.mdx
+++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation
title: "@kbn/shared-ux-chrome-navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-chrome-navigation plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation']
---
import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx
index 768d40028b75c..0f6e6712887e8 100644
--- a/api_docs/kbn_shared_ux_error_boundary.mdx
+++ b/api_docs/kbn_shared_ux_error_boundary.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary
title: "@kbn/shared-ux-error-boundary"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-error-boundary plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-error-boundary']
---
import kbnSharedUxErrorBoundaryObj from './kbn_shared_ux_error_boundary.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx
index 22d678ef88c64..3c852594630f1 100644
--- a/api_docs/kbn_shared_ux_file_context.mdx
+++ b/api_docs/kbn_shared_ux_file_context.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context
title: "@kbn/shared-ux-file-context"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-context plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context']
---
import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx
index 2804c971faad9..bb3ee8f113b7d 100644
--- a/api_docs/kbn_shared_ux_file_image.mdx
+++ b/api_docs/kbn_shared_ux_file_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image
title: "@kbn/shared-ux-file-image"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image']
---
import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx
index 896be28668b5e..b5bd9309f8b18 100644
--- a/api_docs/kbn_shared_ux_file_image_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks
title: "@kbn/shared-ux-file-image-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks']
---
import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx
index 62de94fd137fd..be42cc4157ca2 100644
--- a/api_docs/kbn_shared_ux_file_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks
title: "@kbn/shared-ux-file-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks']
---
import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx
index ce69cb38b32fe..0046fb6826ea2 100644
--- a/api_docs/kbn_shared_ux_file_picker.mdx
+++ b/api_docs/kbn_shared_ux_file_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker
title: "@kbn/shared-ux-file-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-picker plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker']
---
import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx
index 1a1f951eed915..1b5cb7ae74613 100644
--- a/api_docs/kbn_shared_ux_file_types.mdx
+++ b/api_docs/kbn_shared_ux_file_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types
title: "@kbn/shared-ux-file-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types']
---
import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx
index f648090bd181f..155ddc0c11d8f 100644
--- a/api_docs/kbn_shared_ux_file_upload.mdx
+++ b/api_docs/kbn_shared_ux_file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload
title: "@kbn/shared-ux-file-upload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-upload plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload']
---
import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx
index 9fc451c69c67f..537e30cbb2d65 100644
--- a/api_docs/kbn_shared_ux_file_util.mdx
+++ b/api_docs/kbn_shared_ux_file_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util
title: "@kbn/shared-ux-file-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-util plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util']
---
import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx
index 9398fd9257d1f..b86f71d81beed 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app
title: "@kbn/shared-ux-link-redirect-app"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app']
---
import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
index 202e7dd421048..09bb430a3aa85 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks
title: "@kbn/shared-ux-link-redirect-app-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks']
---
import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx
index 65a36e3cafb11..5ff6f52d7fe54 100644
--- a/api_docs/kbn_shared_ux_markdown.mdx
+++ b/api_docs/kbn_shared_ux_markdown.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown
title: "@kbn/shared-ux-markdown"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown']
---
import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx
index 1becea22cb321..76e22a9401f24 100644
--- a/api_docs/kbn_shared_ux_markdown_mocks.mdx
+++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks
title: "@kbn/shared-ux-markdown-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks']
---
import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
index 285aa7c4e9061..e5bc883bddde8 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data
title: "@kbn/shared-ux-page-analytics-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data']
---
import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
index 31b2d8fc1c5d8..f5604aecb0dd6 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks
title: "@kbn/shared-ux-page-analytics-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks']
---
import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
index a56d642e4e4d7..a94994d2f2b61 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data
title: "@kbn/shared-ux-page-kibana-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data']
---
import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
index 9b93a2e1c4941..b537dd0dfc291 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks
title: "@kbn/shared-ux-page-kibana-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks']
---
import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx
index 34fa19dbef738..c49d6066a79d5 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template
title: "@kbn/shared-ux-page-kibana-template"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template']
---
import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
index b4495980a91ae..de9299337b544 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks
title: "@kbn/shared-ux-page-kibana-template-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks']
---
import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx
index 146468732a2b9..a91d801ec4c5b 100644
--- a/api_docs/kbn_shared_ux_page_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data
title: "@kbn/shared-ux-page-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data']
---
import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx
index ca4ccaac478f4..23e909c407999 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config
title: "@kbn/shared-ux-page-no-data-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config']
---
import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
index e066549c44137..b83265c35d7b8 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks
title: "@kbn/shared-ux-page-no-data-config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks']
---
import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
index b9cbbe883d2f5..ac29444142cdf 100644
--- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks
title: "@kbn/shared-ux-page-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks']
---
import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx
index f47637474e0a6..e710289fd40b5 100644
--- a/api_docs/kbn_shared_ux_page_solution_nav.mdx
+++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav
title: "@kbn/shared-ux-page-solution-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-solution-nav plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav']
---
import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
index 3a2cf8dad451a..1069afb70486b 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views
title: "@kbn/shared-ux-prompt-no-data-views"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views']
---
import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
index 2ce6d4ef28781..bec8d90d7c0a8 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks
title: "@kbn/shared-ux-prompt-no-data-views-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks']
---
import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx
index 460514680cac1..2fee7168aabaa 100644
--- a/api_docs/kbn_shared_ux_prompt_not_found.mdx
+++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found
title: "@kbn/shared-ux-prompt-not-found"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-not-found plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found']
---
import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx
index ad0794f03776e..78417172d1319 100644
--- a/api_docs/kbn_shared_ux_router.mdx
+++ b/api_docs/kbn_shared_ux_router.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router
title: "@kbn/shared-ux-router"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router']
---
import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx
index 8deaef1690435..293f834f05d33 100644
--- a/api_docs/kbn_shared_ux_router_mocks.mdx
+++ b/api_docs/kbn_shared_ux_router_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks
title: "@kbn/shared-ux-router-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router-mocks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks']
---
import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx
index f3b4788cf7fcf..b5b069a29e0ab 100644
--- a/api_docs/kbn_shared_ux_storybook_config.mdx
+++ b/api_docs/kbn_shared_ux_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config
title: "@kbn/shared-ux-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config']
---
import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx
index 8ed96e1396e7e..8ac82dd68f8cf 100644
--- a/api_docs/kbn_shared_ux_storybook_mock.mdx
+++ b/api_docs/kbn_shared_ux_storybook_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock
title: "@kbn/shared-ux-storybook-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-mock plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock']
---
import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx
index aeb4e602b75c2..3633185c4a091 100644
--- a/api_docs/kbn_shared_ux_tabbed_modal.mdx
+++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal
title: "@kbn/shared-ux-tabbed-modal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-tabbed-modal plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal']
---
import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx
index 623f89820e1d2..e32ff9e949652 100644
--- a/api_docs/kbn_shared_ux_utility.mdx
+++ b/api_docs/kbn_shared_ux_utility.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility
title: "@kbn/shared-ux-utility"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-utility plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility']
---
import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json';
diff --git a/api_docs/kbn_slo_schema.devdocs.json b/api_docs/kbn_slo_schema.devdocs.json
index 1df8c767cf1b3..fb749318c15e2 100644
--- a/api_docs/kbn_slo_schema.devdocs.json
+++ b/api_docs/kbn_slo_schema.devdocs.json
@@ -745,7 +745,7 @@
"section": "def-common.Duration",
"text": "Duration"
},
- " | undefined; }; groupBy: string | string[]; revision: number; } & { remoteName?: string | undefined; range?: { from: string; to: string; } | undefined; })[]; }"
+ " | undefined; }; groupBy: string | string[]; revision: number; } & { remoteName?: string | undefined; range?: { from: Date; to: Date; } | undefined; })[]; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -760,7 +760,7 @@
"label": "FetchHistoricalSummaryResponse",
"description": [],
"signature": [
- "{ sloId: string; instanceId: string; data: ({ date: string; } & { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; })[]; }[]"
+ "{ sloId: string; instanceId: string; data: ({ date: string; } & { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; } & { summaryUpdatedAt?: string | null | undefined; })[]; }[]"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -797,6 +797,21 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/slo-schema",
+ "id": "def-common.FiltersSchema",
+ "type": "Type",
+ "tags": [],
+ "label": "FiltersSchema",
+ "description": [],
+ "signature": [
+ "{ meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]"
+ ],
+ "path": "x-pack/packages/kbn-slo-schema/src/rest_specs/indicators.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/slo-schema",
"id": "def-common.FindSLODefinitionsParams",
@@ -865,7 +880,7 @@
"label": "FindSLOParams",
"description": [],
"signature": [
- "{ filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; }"
+ "{ filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; hideStale?: boolean | undefined; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/find.ts",
"deprecated": false,
@@ -880,7 +895,7 @@
"label": "FindSLOResponse",
"description": [],
"signature": [
- "{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; })[]; }"
+ "{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; } & { summaryUpdatedAt?: string | null | undefined; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; })[]; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/find.ts",
"deprecated": false,
@@ -895,7 +910,7 @@
"label": "GetPreviewDataParams",
"description": [],
"signature": [
- "{ indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; range: { start: number; end: number; }; } & { objective?: ({ target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: ",
+ "{ indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; range: { from: Date; to: Date; }; } & { objective?: ({ target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: ",
{
"pluginId": "@kbn/slo-schema",
"scope": "common",
@@ -978,7 +993,7 @@
"label": "GetSLOResponse",
"description": [],
"signature": [
- "{ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; }"
+ "{ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; } & { summaryUpdatedAt?: string | null | undefined; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/get.ts",
"deprecated": false,
@@ -993,7 +1008,7 @@
"label": "GetSLOSettingsResponse",
"description": [],
"signature": [
- "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; }"
+ "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; staleThresholdInHours: number; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -1068,7 +1083,7 @@
"label": "HistoricalSummaryResponse",
"description": [],
"signature": [
- "{ date: string; } & { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }"
+ "{ date: string; } & { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; } & { summaryUpdatedAt?: string | null | undefined; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -1188,7 +1203,7 @@
"label": "PutSLOSettingsParams",
"description": [],
"signature": [
- "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; }"
+ "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; staleThresholdInHours: number; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -1203,7 +1218,7 @@
"label": "PutSLOSettingsResponse",
"description": [],
"signature": [
- "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; }"
+ "{ useAllRemoteClusters: boolean; selectedRemoteClusters: string[]; staleThresholdInHours: number; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -1278,7 +1293,7 @@
"label": "SLOWithSummaryResponse",
"description": [],
"signature": [
- "{ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; }"
+ "{ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.synthetics.availability\"; params: { monitorIds: { value: string; label: string; }[]; index: string; } & { tags?: { value: string; label: string; }[] | undefined; projects?: { value: string; label: string; }[] | undefined; filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; total: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"last_value\" | \"cardinality\" | \"std_deviation\"; field: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }); } & { filter?: string | { kqlQuery: string; filters: { meta: { alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: any; value?: string | undefined; }; query: { [x: string]: any; }; }[]; } | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; settings: { syncDelay: string; frequency: string; }; revision: number; enabled: boolean; tags: string[]; createdAt: string; updatedAt: string; groupBy: string | string[]; version: number; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; } & { summaryUpdatedAt?: string | null | undefined; }; groupings: { [x: string]: string | number; }; } & { instanceId?: string | undefined; meta?: { synthetics?: { monitorId: string; locationId: string; configId: string; } | undefined; } | undefined; remote?: { remoteName: string; kibanaUrl: string; } | undefined; }"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/slo.ts",
"deprecated": false,
@@ -3226,18 +3241,10 @@
"signature": [
"TypeC",
"<{ from: ",
- "UnionC",
- "<[",
"Type",
- ", ",
- "StringC",
- "]>; to: ",
- "UnionC",
- "<[",
+ "; to: ",
"Type",
- ", ",
- "StringC",
- "]>; }>"
+ "; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/schema/common.ts",
"deprecated": false,
@@ -3460,10 +3467,10 @@
"; range: ",
"TypeC",
"<{ from: ",
- "StringC",
- "; to: ",
- "StringC",
- "; }>; }>]>>; }>; }>"
+ "Type",
+ "; to: ",
+ "Type",
+ "; }>; }>]>>; }>; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -3498,6 +3505,8 @@
"<{ date: ",
"Type",
"; }>, ",
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -3521,7 +3530,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>]>>; }>>"
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>]>>; }>>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -3616,6 +3633,58 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/slo-schema",
+ "id": "def-common.filtersSchema",
+ "type": "Object",
+ "tags": [],
+ "label": "filtersSchema",
+ "description": [],
+ "signature": [
+ "ArrayC",
+ "<",
+ "TypeC",
+ "<{ meta: ",
+ "PartialC",
+ "<{ alias: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; disabled: ",
+ "BooleanC",
+ "; negate: ",
+ "BooleanC",
+ "; controlledBy: ",
+ "StringC",
+ "; group: ",
+ "StringC",
+ "; index: ",
+ "StringC",
+ "; isMultiIndex: ",
+ "BooleanC",
+ "; type: ",
+ "StringC",
+ "; key: ",
+ "StringC",
+ "; params: ",
+ "AnyC",
+ "; value: ",
+ "StringC",
+ "; }>; query: ",
+ "RecordC",
+ "<",
+ "StringC",
+ ", ",
+ "AnyC",
+ ">; }>>"
+ ],
+ "path": "x-pack/packages/kbn-slo-schema/src/schema/indicators.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/slo-schema",
"id": "def-common.findSloDefinitionsParamsSchema",
@@ -5199,7 +5268,9 @@
"LiteralC",
"<\"asc\">, ",
"LiteralC",
- "<\"desc\">]>; }>; }>"
+ "<\"desc\">]>; hideStale: ",
+ "Type",
+ "; }>; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/find.ts",
"deprecated": false,
@@ -6614,6 +6685,8 @@
"; }>, ",
"TypeC",
"<{ summary: ",
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -6637,7 +6710,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>; groupings: ",
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>; groupings: ",
"RecordC",
"<",
"StringC",
@@ -7965,11 +8046,11 @@
"AnyC",
">; }>>; }>]>; }>]>; }>]>; range: ",
"TypeC",
- "<{ start: ",
- "NumberC",
- "; end: ",
- "NumberC",
- "; }>; }>, ",
+ "<{ from: ",
+ "Type",
+ "; to: ",
+ "Type",
+ "; }>; }>, ",
"PartialC",
"<{ objective: ",
"IntersectionC",
@@ -9604,6 +9685,8 @@
"; }>, ",
"TypeC",
"<{ summary: ",
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -9627,7 +9710,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>; groupings: ",
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>; groupings: ",
"RecordC",
"<",
"StringC",
@@ -10146,6 +10237,8 @@
"<{ date: ",
"Type",
"; }>, ",
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -10169,7 +10262,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>]>"
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>]>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/fetch_historical_summary.ts",
"deprecated": false,
@@ -12378,7 +12479,9 @@
"TypeC",
"<{ body: ",
"TypeC",
- "<{}>; }>"
+ "<{ staleThresholdInHours: ",
+ "NumberC",
+ "; }>; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -12402,7 +12505,9 @@
"ArrayC",
"<",
"StringC",
- ">; }>; }>"
+ ">; staleThresholdInHours: ",
+ "NumberC",
+ "; }>; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -12424,7 +12529,9 @@
"ArrayC",
"<",
"StringC",
- ">; }>"
+ ">; staleThresholdInHours: ",
+ "NumberC",
+ "; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/rest_specs/routes/put_settings.ts",
"deprecated": false,
@@ -15491,7 +15598,9 @@
"description": [],
"signature": [
"TypeC",
- "<{}>"
+ "<{ staleThresholdInHours: ",
+ "NumberC",
+ "; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/schema/settings.ts",
"deprecated": false,
@@ -15513,7 +15622,9 @@
"ArrayC",
"<",
"StringC",
- ">; }>"
+ ">; staleThresholdInHours: ",
+ "NumberC",
+ "; }>"
],
"path": "x-pack/packages/kbn-slo-schema/src/schema/settings.ts",
"deprecated": false,
@@ -16918,6 +17029,8 @@
"; }>, ",
"TypeC",
"<{ summary: ",
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -16941,7 +17054,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>; groupings: ",
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>; groupings: ",
"RecordC",
"<",
"StringC",
@@ -17038,6 +17159,8 @@
"label": "summarySchema",
"description": [],
"signature": [
+ "IntersectionC",
+ "<[",
"TypeC",
"<{ status: ",
"UnionC",
@@ -17061,7 +17184,15 @@
"NumberC",
"; isEstimated: ",
"BooleanC",
- "; }>; }>"
+ "; }>; }>, ",
+ "PartialC",
+ "<{ summaryUpdatedAt: ",
+ "UnionC",
+ "<[",
+ "StringC",
+ ", ",
+ "NullC",
+ "]>; }>]>"
],
"path": "x-pack/packages/kbn-slo-schema/src/schema/common.ts",
"deprecated": false,
diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx
index be68fc263e685..9b1dcf79f7ed0 100644
--- a/api_docs/kbn_slo_schema.mdx
+++ b/api_docs/kbn_slo_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema
title: "@kbn/slo-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/slo-schema plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema']
---
import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 180 | 0 | 180 | 0 |
+| 182 | 0 | 182 | 0 |
## Common
diff --git a/api_docs/kbn_solution_nav_es.mdx b/api_docs/kbn_solution_nav_es.mdx
index 6846be8ca5183..be1ef596adfa5 100644
--- a/api_docs/kbn_solution_nav_es.mdx
+++ b/api_docs/kbn_solution_nav_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-es
title: "@kbn/solution-nav-es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/solution-nav-es plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-es']
---
import kbnSolutionNavEsObj from './kbn_solution_nav_es.devdocs.json';
diff --git a/api_docs/kbn_solution_nav_oblt.mdx b/api_docs/kbn_solution_nav_oblt.mdx
index a201c1201f675..1f69c6c2dbd24 100644
--- a/api_docs/kbn_solution_nav_oblt.mdx
+++ b/api_docs/kbn_solution_nav_oblt.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-solution-nav-oblt
title: "@kbn/solution-nav-oblt"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/solution-nav-oblt plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/solution-nav-oblt']
---
import kbnSolutionNavObltObj from './kbn_solution_nav_oblt.devdocs.json';
diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx
index cb040e65e6421..f71f3086091d0 100644
--- a/api_docs/kbn_some_dev_log.mdx
+++ b/api_docs/kbn_some_dev_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log
title: "@kbn/some-dev-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/some-dev-log plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx
index e78dc75d86ed8..df1e5cb309937 100644
--- a/api_docs/kbn_sort_predicates.mdx
+++ b/api_docs/kbn_sort_predicates.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates
title: "@kbn/sort-predicates"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/sort-predicates plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates']
---
import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index a694f37a8386a..dbc6b71f15cf1 100644
--- a/api_docs/kbn_std.mdx
+++ b/api_docs/kbn_std.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std
title: "@kbn/std"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/std plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std']
---
import kbnStdObj from './kbn_std.devdocs.json';
diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx
index c5a6a391f8f49..e5dbedf0ae93f 100644
--- a/api_docs/kbn_stdio_dev_helpers.mdx
+++ b/api_docs/kbn_stdio_dev_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers
title: "@kbn/stdio-dev-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/stdio-dev-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers']
---
import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json';
diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx
index 47606806b6625..90df907eeb784 100644
--- a/api_docs/kbn_storybook.mdx
+++ b/api_docs/kbn_storybook.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook
title: "@kbn/storybook"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/storybook plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index b35ffd5181220..db5fa66f10db7 100644
--- a/api_docs/kbn_telemetry_tools.mdx
+++ b/api_docs/kbn_telemetry_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools
title: "@kbn/telemetry-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/telemetry-tools plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools']
---
import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json';
diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx
index 05c9af6d11b2c..1fa524b0efb8d 100644
--- a/api_docs/kbn_test.mdx
+++ b/api_docs/kbn_test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test
title: "@kbn/test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test']
---
import kbnTestObj from './kbn_test.devdocs.json';
diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx
index 70668aeee9e69..4289e00f1e5e7 100644
--- a/api_docs/kbn_test_eui_helpers.mdx
+++ b/api_docs/kbn_test_eui_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers
title: "@kbn/test-eui-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-eui-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers']
---
import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx
index 4231e15ac280a..9bdb32296af21 100644
--- a/api_docs/kbn_test_jest_helpers.mdx
+++ b/api_docs/kbn_test_jest_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers
title: "@kbn/test-jest-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-jest-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers']
---
import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx
index bdc125e5cb989..97d1302cdea1c 100644
--- a/api_docs/kbn_test_subj_selector.mdx
+++ b/api_docs/kbn_test_subj_selector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector
title: "@kbn/test-subj-selector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-subj-selector plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector']
---
import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json';
diff --git a/api_docs/kbn_text_based_editor.mdx b/api_docs/kbn_text_based_editor.mdx
index e361ca43fca69..be45708d02c2a 100644
--- a/api_docs/kbn_text_based_editor.mdx
+++ b/api_docs/kbn_text_based_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor
title: "@kbn/text-based-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/text-based-editor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor']
---
import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json';
diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx
index 809ba42915352..78612333dcd1b 100644
--- a/api_docs/kbn_timerange.mdx
+++ b/api_docs/kbn_timerange.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange
title: "@kbn/timerange"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/timerange plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange']
---
import kbnTimerangeObj from './kbn_timerange.devdocs.json';
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index b8adc33a116f8..0c988ebd69f35 100644
--- a/api_docs/kbn_tooling_log.mdx
+++ b/api_docs/kbn_tooling_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log
title: "@kbn/tooling-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/tooling-log plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx
index 609c5702027dc..c228926342b71 100644
--- a/api_docs/kbn_triggers_actions_ui_types.mdx
+++ b/api_docs/kbn_triggers_actions_ui_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types
title: "@kbn/triggers-actions-ui-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/triggers-actions-ui-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types']
---
import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json';
diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx
index 08a276823a2d9..ecc4518ba8e81 100644
--- a/api_docs/kbn_try_in_console.mdx
+++ b/api_docs/kbn_try_in_console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-try-in-console
title: "@kbn/try-in-console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/try-in-console plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/try-in-console']
---
import kbnTryInConsoleObj from './kbn_try_in_console.devdocs.json';
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index 6af71b72d7d0b..a96fa3df263b9 100644
--- a/api_docs/kbn_ts_projects.mdx
+++ b/api_docs/kbn_ts_projects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects
title: "@kbn/ts-projects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ts-projects plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects']
---
import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json';
diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx
index 23b3eb7d2d90a..c5c4e4a4a132b 100644
--- a/api_docs/kbn_typed_react_router_config.mdx
+++ b/api_docs/kbn_typed_react_router_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config
title: "@kbn/typed-react-router-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/typed-react-router-config plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config']
---
import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json';
diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx
index 367fea5e6b6ab..0acf68f5d9d20 100644
--- a/api_docs/kbn_ui_actions_browser.mdx
+++ b/api_docs/kbn_ui_actions_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser
title: "@kbn/ui-actions-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-actions-browser plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser']
---
import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json';
diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx
index 465e477ce4697..ce32374b41013 100644
--- a/api_docs/kbn_ui_shared_deps_src.mdx
+++ b/api_docs/kbn_ui_shared_deps_src.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src
title: "@kbn/ui-shared-deps-src"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-shared-deps-src plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src']
---
import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json';
diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx
index 8ce4a5b452be5..9031fda6e4043 100644
--- a/api_docs/kbn_ui_theme.mdx
+++ b/api_docs/kbn_ui_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme
title: "@kbn/ui-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-theme plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme']
---
import kbnUiThemeObj from './kbn_ui_theme.devdocs.json';
diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx
index 44d561c0a1736..2ee487cd0d663 100644
--- a/api_docs/kbn_unified_data_table.mdx
+++ b/api_docs/kbn_unified_data_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table
title: "@kbn/unified-data-table"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-data-table plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table']
---
import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json';
diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx
index 45b0e44acd438..0c51079c29228 100644
--- a/api_docs/kbn_unified_doc_viewer.mdx
+++ b/api_docs/kbn_unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer
title: "@kbn/unified-doc-viewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-doc-viewer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer']
---
import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json';
diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx
index 99245ca6cfb6a..3d052cb5f9202 100644
--- a/api_docs/kbn_unified_field_list.mdx
+++ b/api_docs/kbn_unified_field_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list
title: "@kbn/unified-field-list"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unified-field-list plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list']
---
import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json';
diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx
index 02d20432f3183..18eb27ecd9cc4 100644
--- a/api_docs/kbn_unsaved_changes_badge.mdx
+++ b/api_docs/kbn_unsaved_changes_badge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge
title: "@kbn/unsaved-changes-badge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/unsaved-changes-badge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge']
---
import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json';
diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx
index fd250233a6d51..627774c485e46 100644
--- a/api_docs/kbn_use_tracked_promise.mdx
+++ b/api_docs/kbn_use_tracked_promise.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise
title: "@kbn/use-tracked-promise"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/use-tracked-promise plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/use-tracked-promise']
---
import kbnUseTrackedPromiseObj from './kbn_use_tracked_promise.devdocs.json';
diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx
index 398f2bac6c6d6..2c67f344d71aa 100644
--- a/api_docs/kbn_user_profile_components.mdx
+++ b/api_docs/kbn_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components
title: "@kbn/user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/user-profile-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components']
---
import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json';
diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx
index 9dae0eb88849d..80abfba5a79ea 100644
--- a/api_docs/kbn_utility_types.mdx
+++ b/api_docs/kbn_utility_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types
title: "@kbn/utility-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types']
---
import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json';
diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx
index 92a4c5eeff926..58eb8d7c15930 100644
--- a/api_docs/kbn_utility_types_jest.mdx
+++ b/api_docs/kbn_utility_types_jest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest
title: "@kbn/utility-types-jest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types-jest plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest']
---
import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json';
diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx
index ce0098d3d72dd..a61141d65731b 100644
--- a/api_docs/kbn_utils.mdx
+++ b/api_docs/kbn_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils
title: "@kbn/utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils']
---
import kbnUtilsObj from './kbn_utils.devdocs.json';
diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx
index 890705625fc70..914287fb5f99c 100644
--- a/api_docs/kbn_visualization_ui_components.mdx
+++ b/api_docs/kbn_visualization_ui_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components
title: "@kbn/visualization-ui-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-ui-components plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-ui-components']
---
import kbnVisualizationUiComponentsObj from './kbn_visualization_ui_components.devdocs.json';
diff --git a/api_docs/kbn_visualization_utils.mdx b/api_docs/kbn_visualization_utils.mdx
index d1ac90020cb46..dfe5fc14f95f5 100644
--- a/api_docs/kbn_visualization_utils.mdx
+++ b/api_docs/kbn_visualization_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils
title: "@kbn/visualization-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/visualization-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils']
---
import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json';
diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx
index 09b18014a3fcd..a909a06d1bae8 100644
--- a/api_docs/kbn_xstate_utils.mdx
+++ b/api_docs/kbn_xstate_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils
title: "@kbn/xstate-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/xstate-utils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils']
---
import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json';
diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx
index d4a16f13eb614..88715e0a5a96b 100644
--- a/api_docs/kbn_yarn_lock_validator.mdx
+++ b/api_docs/kbn_yarn_lock_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator
title: "@kbn/yarn-lock-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/yarn-lock-validator plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator']
---
import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json';
diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx
index b53d727e72adb..ea0a35c33ad68 100644
--- a/api_docs/kbn_zod_helpers.mdx
+++ b/api_docs/kbn_zod_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers
title: "@kbn/zod-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/zod-helpers plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod-helpers']
---
import kbnZodHelpersObj from './kbn_zod_helpers.devdocs.json';
diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx
index d6d7305e5dbc3..3556053ea6943 100644
--- a/api_docs/kibana_overview.mdx
+++ b/api_docs/kibana_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview
title: "kibanaOverview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaOverview plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview']
---
import kibanaOverviewObj from './kibana_overview.devdocs.json';
diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json
index fb67fa4907473..8acf8ede8f3e4 100644
--- a/api_docs/kibana_react.devdocs.json
+++ b/api_docs/kibana_react.devdocs.json
@@ -510,56 +510,7 @@
"path": "src/plugins/kibana_react/public/theme.tsx",
"deprecated": true,
"trackAdoption": false,
- "references": [
- {
- "plugin": "infra",
- "path": "x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx"
- },
- {
- "plugin": "infra",
- "path": "x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx"
- },
- {
- "plugin": "infra",
- "path": "x-pack/plugins/observability_solution/infra/public/apps/common_providers.tsx"
- },
- {
- "plugin": "metricsDataAccess",
- "path": "x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx"
- },
- {
- "plugin": "metricsDataAccess",
- "path": "x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx"
- },
- {
- "plugin": "metricsDataAccess",
- "path": "x-pack/plugins/observability_solution/metrics_data_access/public/apps/common_providers.tsx"
- },
- {
- "plugin": "apm",
- "path": "x-pack/plugins/observability_solution/apm/public/application/index.tsx"
- },
- {
- "plugin": "apm",
- "path": "x-pack/plugins/observability_solution/apm/public/application/index.tsx"
- },
- {
- "plugin": "apm",
- "path": "x-pack/plugins/observability_solution/apm/public/application/index.tsx"
- },
- {
- "plugin": "observabilityOnboarding",
- "path": "x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx"
- },
- {
- "plugin": "observabilityOnboarding",
- "path": "x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx"
- },
- {
- "plugin": "observabilityOnboarding",
- "path": "x-pack/plugins/observability_solution/observability_onboarding/public/application/app.tsx"
- }
- ],
+ "references": [],
"children": [
{
"parentPluginId": "kibanaReact",
diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx
index e58404e6f9848..5fe49dd46adf0 100644
--- a/api_docs/kibana_react.mdx
+++ b/api_docs/kibana_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact
title: "kibanaReact"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaReact plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact']
---
import kibanaReactObj from './kibana_react.devdocs.json';
diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx
index f91e4d6ef1cc2..b0f4c61c8a5a8 100644
--- a/api_docs/kibana_utils.mdx
+++ b/api_docs/kibana_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils
title: "kibanaUtils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaUtils plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils']
---
import kibanaUtilsObj from './kibana_utils.devdocs.json';
diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx
index f36e3b6d0eb22..7a9e99ddbfaa8 100644
--- a/api_docs/kubernetes_security.mdx
+++ b/api_docs/kubernetes_security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity
title: "kubernetesSecurity"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kubernetesSecurity plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity']
---
import kubernetesSecurityObj from './kubernetes_security.devdocs.json';
diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx
index 810718f0907d3..f5c5fadbdedac 100644
--- a/api_docs/lens.mdx
+++ b/api_docs/lens.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens
title: "lens"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lens plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens']
---
import lensObj from './lens.devdocs.json';
diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx
index 0ec1c2258bc84..8031bc32939b9 100644
--- a/api_docs/license_api_guard.mdx
+++ b/api_docs/license_api_guard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard
title: "licenseApiGuard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseApiGuard plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard']
---
import licenseApiGuardObj from './license_api_guard.devdocs.json';
diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx
index cb03958bebedd..5b1dde74c7d56 100644
--- a/api_docs/license_management.mdx
+++ b/api_docs/license_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement
title: "licenseManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement']
---
import licenseManagementObj from './license_management.devdocs.json';
diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx
index fa03bfcafddcb..18a581ce893ac 100644
--- a/api_docs/licensing.mdx
+++ b/api_docs/licensing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing
title: "licensing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licensing plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing']
---
import licensingObj from './licensing.devdocs.json';
diff --git a/api_docs/links.mdx b/api_docs/links.mdx
index c3bad07f1d7a3..a9a7e2a5cd7fa 100644
--- a/api_docs/links.mdx
+++ b/api_docs/links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links
title: "links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the links plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links']
---
import linksObj from './links.devdocs.json';
diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx
index c77457d9c8777..c614d4f6dff63 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists
title: "lists"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lists plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/logs_data_access.devdocs.json b/api_docs/logs_data_access.devdocs.json
index b874e0f36010e..89d5df7f6c938 100644
--- a/api_docs/logs_data_access.devdocs.json
+++ b/api_docs/logs_data_access.devdocs.json
@@ -11,7 +11,82 @@
"server": {
"classes": [],
"functions": [],
- "interfaces": [],
+ "interfaces": [
+ {
+ "parentPluginId": "logsDataAccess",
+ "id": "def-server.LogsRatesMetrics",
+ "type": "Interface",
+ "tags": [],
+ "label": "LogsRatesMetrics",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rates_service/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "logsDataAccess",
+ "id": "def-server.LogsRatesMetrics.logRatePerMinute",
+ "type": "number",
+ "tags": [],
+ "label": "logRatePerMinute",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rates_service/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "logsDataAccess",
+ "id": "def-server.LogsRatesMetrics.logErrorRate",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "logErrorRate",
+ "description": [],
+ "signature": [
+ "number | null"
+ ],
+ "path": "x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rates_service/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "logsDataAccess",
+ "id": "def-server.LogsRatesServiceReturnType",
+ "type": "Interface",
+ "tags": [],
+ "label": "LogsRatesServiceReturnType",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rates_service/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "logsDataAccess",
+ "id": "def-server.LogsRatesServiceReturnType.Unnamed",
+ "type": "IndexSignature",
+ "tags": [],
+ "label": "[serviceName: string]: LogsRatesMetrics",
+ "description": [],
+ "signature": [
+ "[serviceName: string]: ",
+ {
+ "pluginId": "logsDataAccess",
+ "scope": "server",
+ "docId": "kibLogsDataAccessPluginApi",
+ "section": "def-server.LogsRatesMetrics",
+ "text": "LogsRatesMetrics"
+ }
+ ],
+ "path": "x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rates_service/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ }
+ ],
"enums": [],
"misc": [],
"objects": [],
@@ -42,7 +117,13 @@
"{ services: { getLogsRatesService: ({ esClient, identifyingMetadata, serviceNames, timeFrom, timeTo, }: ",
"LogsRatesServiceParams",
") => Promise<",
- "LogsRatesServiceReturnType",
+ {
+ "pluginId": "logsDataAccess",
+ "scope": "server",
+ "docId": "kibLogsDataAccessPluginApi",
+ "section": "def-server.LogsRatesServiceReturnType",
+ "text": "LogsRatesServiceReturnType"
+ },
">; }; }"
],
"path": "x-pack/plugins/observability_solution/logs_data_access/server/plugin.ts",
diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx
index fb007702d8a23..2115a9ac683c5 100644
--- a/api_docs/logs_data_access.mdx
+++ b/api_docs/logs_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsDataAccess
title: "logsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsDataAccess plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess']
---
import logsDataAccessObj from './logs_data_access.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 2 | 0 | 2 | 2 |
+| 7 | 0 | 7 | 1 |
## Server
@@ -31,3 +31,6 @@ Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux
### Start
+### Interfaces
+
+
diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx
index cb68ff1072640..b3676d8731bd7 100644
--- a/api_docs/logs_explorer.mdx
+++ b/api_docs/logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer
title: "logsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsExplorer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer']
---
import logsExplorerObj from './logs_explorer.devdocs.json';
diff --git a/api_docs/logs_shared.devdocs.json b/api_docs/logs_shared.devdocs.json
index a71d201b3207c..a2cd970283979 100644
--- a/api_docs/logs_shared.devdocs.json
+++ b/api_docs/logs_shared.devdocs.json
@@ -2945,7 +2945,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "x-pack/plugins/observability_solution/logs_shared/public/types.ts",
"deprecated": false,
diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx
index 64b62dfdd2dae..7c20eddf443c2 100644
--- a/api_docs/logs_shared.mdx
+++ b/api_docs/logs_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared
title: "logsShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the logsShared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared']
---
import logsSharedObj from './logs_shared.devdocs.json';
diff --git a/api_docs/management.mdx b/api_docs/management.mdx
index e5cb5fa053c68..9cb264a9150ae 100644
--- a/api_docs/management.mdx
+++ b/api_docs/management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management
title: "management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the management plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management']
---
import managementObj from './management.devdocs.json';
diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx
index 7375db2b2b328..59378c35aa8e4 100644
--- a/api_docs/maps.mdx
+++ b/api_docs/maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps
title: "maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the maps plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps']
---
import mapsObj from './maps.devdocs.json';
diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx
index b5711f466c75b..9d9ecca4dcbfd 100644
--- a/api_docs/maps_ems.mdx
+++ b/api_docs/maps_ems.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms
title: "mapsEms"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mapsEms plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms']
---
import mapsEmsObj from './maps_ems.devdocs.json';
diff --git a/api_docs/metrics_data_access.devdocs.json b/api_docs/metrics_data_access.devdocs.json
index da97d001411cf..a744b95998f51 100644
--- a/api_docs/metrics_data_access.devdocs.json
+++ b/api_docs/metrics_data_access.devdocs.json
@@ -1301,7 +1301,107 @@
"InventoryModel",
"<",
"InventoryMetrics",
- ">)[]"
+ "> | ",
+ "InventoryModel",
+ "<",
+ "InventoryMetricsWithCharts",
+ "<{ readonly dockerContainerCpuUsage: ",
+ "LensBaseLayer",
+ "; readonly dockerContainerMemoryUsage: ",
+ "LensBaseLayer",
+ "; readonly k8sContainerCpuUsage: ",
+ "LensBaseLayer",
+ "; readonly k8sContainerMemoryUsage: ",
+ "LensBaseLayer",
+ "; }, { readonly cpu: { readonly xy: { readonly dockerContainerCpuUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; chartType: \"xy\"; layers: ({ dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"series\"; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; xAxis: ",
+ "LensBreakdownConfig",
+ "; seriesType: \"area\" | \"line\" | \"bar\"; } | { dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"annotation\"; events: ({ name: string; color?: string | undefined; icon?: string | undefined; datetime: string; } | { name: string; color?: string | undefined; icon?: string | undefined; field: string; filter: string; })[]; } | ",
+ "LensReferenceLineLayer",
+ ")[]; legend?: { show?: boolean | undefined; position?: \"right\" | \"left\" | \"top\" | \"bottom\" | undefined; } | undefined; axisTitleVisibility?: { showXAxisTitle?: boolean | undefined; showYAxisTitle?: boolean | undefined; } | undefined; emphasizeFitting?: boolean | undefined; fittingFunction?: \"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | undefined; yBounds?: ",
+ "LensYBoundsConfig",
+ " | undefined; } & { id: string; }; readonly k8sContainerCpuUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; chartType: \"xy\"; layers: ({ dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"series\"; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; xAxis: ",
+ "LensBreakdownConfig",
+ "; seriesType: \"area\" | \"line\" | \"bar\"; } | { dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"annotation\"; events: ({ name: string; color?: string | undefined; icon?: string | undefined; datetime: string; } | { name: string; color?: string | undefined; icon?: string | undefined; field: string; filter: string; })[]; } | ",
+ "LensReferenceLineLayer",
+ ")[]; legend?: { show?: boolean | undefined; position?: \"right\" | \"left\" | \"top\" | \"bottom\" | undefined; } | undefined; axisTitleVisibility?: { showXAxisTitle?: boolean | undefined; showYAxisTitle?: boolean | undefined; } | undefined; emphasizeFitting?: boolean | undefined; fittingFunction?: \"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | undefined; yBounds?: ",
+ "LensYBoundsConfig",
+ " | undefined; } & { id: string; }; }; readonly metric: { readonly dockerContainerCpuUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; label?: string | undefined; filter?: string | undefined; format?: \"string\" | \"number\" | \"duration\" | \"percent\" | \"currency\" | \"bytes\" | \"bits\" | undefined; decimals?: number | undefined; normalizeByUnit?: \"m\" | \"d\" | \"h\" | \"s\" | undefined; compactValues?: boolean | undefined; randomSampling?: number | undefined; useGlobalFilter?: boolean | undefined; seriesColor?: string | undefined; value: string; chartType: \"metric\"; querySecondaryMetric?: string | undefined; queryMaxValue?: string | undefined; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; trendLine?: boolean | undefined; subtitle?: string | undefined; } & { id: string; }; readonly k8sContainerCpuUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; label?: string | undefined; filter?: string | undefined; format?: \"string\" | \"number\" | \"duration\" | \"percent\" | \"currency\" | \"bytes\" | \"bits\" | undefined; decimals?: number | undefined; normalizeByUnit?: \"m\" | \"d\" | \"h\" | \"s\" | undefined; compactValues?: boolean | undefined; randomSampling?: number | undefined; useGlobalFilter?: boolean | undefined; seriesColor?: string | undefined; value: string; chartType: \"metric\"; querySecondaryMetric?: string | undefined; queryMaxValue?: string | undefined; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; trendLine?: boolean | undefined; subtitle?: string | undefined; } & { id: string; }; }; }; readonly memory: { xy: { dockerContainerMemoryUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; chartType: \"xy\"; layers: ({ dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"series\"; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; xAxis: ",
+ "LensBreakdownConfig",
+ "; seriesType: \"area\" | \"line\" | \"bar\"; } | { dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"annotation\"; events: ({ name: string; color?: string | undefined; icon?: string | undefined; datetime: string; } | { name: string; color?: string | undefined; icon?: string | undefined; field: string; filter: string; })[]; } | ",
+ "LensReferenceLineLayer",
+ ")[]; legend?: { show?: boolean | undefined; position?: \"right\" | \"left\" | \"top\" | \"bottom\" | undefined; } | undefined; axisTitleVisibility?: { showXAxisTitle?: boolean | undefined; showYAxisTitle?: boolean | undefined; } | undefined; emphasizeFitting?: boolean | undefined; fittingFunction?: \"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | undefined; yBounds?: ",
+ "LensYBoundsConfig",
+ " | undefined; } & { id: string; }; k8sContainerMemoryUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; chartType: \"xy\"; layers: ({ dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"series\"; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; xAxis: ",
+ "LensBreakdownConfig",
+ "; seriesType: \"area\" | \"line\" | \"bar\"; } | { dataset?: ",
+ "LensDataset",
+ " | undefined; yAxis: ",
+ "LensBaseLayer",
+ "[]; type: \"annotation\"; events: ({ name: string; color?: string | undefined; icon?: string | undefined; datetime: string; } | { name: string; color?: string | undefined; icon?: string | undefined; field: string; filter: string; })[]; } | ",
+ "LensReferenceLineLayer",
+ ")[]; legend?: { show?: boolean | undefined; position?: \"right\" | \"left\" | \"top\" | \"bottom\" | undefined; } | undefined; axisTitleVisibility?: { showXAxisTitle?: boolean | undefined; showYAxisTitle?: boolean | undefined; } | undefined; emphasizeFitting?: boolean | undefined; fittingFunction?: \"None\" | \"Average\" | \"Zero\" | \"Nearest\" | \"Linear\" | \"Carry\" | \"Lookahead\" | undefined; yBounds?: ",
+ "LensYBoundsConfig",
+ " | undefined; } & { id: string; }; }; metric: { dockerContainerMemoryUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; label?: string | undefined; filter?: string | undefined; format?: \"string\" | \"number\" | \"duration\" | \"percent\" | \"currency\" | \"bytes\" | \"bits\" | undefined; decimals?: number | undefined; normalizeByUnit?: \"m\" | \"d\" | \"h\" | \"s\" | undefined; compactValues?: boolean | undefined; randomSampling?: number | undefined; useGlobalFilter?: boolean | undefined; seriesColor?: string | undefined; value: string; chartType: \"metric\"; querySecondaryMetric?: string | undefined; queryMaxValue?: string | undefined; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; trendLine?: boolean | undefined; subtitle?: string | undefined; } & { id: string; }; k8sContainerMemoryUsage: { title: string; dataset?: ",
+ "LensDataset",
+ " | undefined; label?: string | undefined; filter?: string | undefined; format?: \"string\" | \"number\" | \"duration\" | \"percent\" | \"currency\" | \"bytes\" | \"bits\" | undefined; decimals?: number | undefined; normalizeByUnit?: \"m\" | \"d\" | \"h\" | \"s\" | undefined; compactValues?: boolean | undefined; randomSampling?: number | undefined; useGlobalFilter?: boolean | undefined; seriesColor?: string | undefined; value: string; chartType: \"metric\"; querySecondaryMetric?: string | undefined; queryMaxValue?: string | undefined; breakdown?: ",
+ "LensBreakdownConfig",
+ " | undefined; trendLine?: boolean | undefined; subtitle?: string | undefined; } & { id: string; }; }; }; }>>)[]"
],
"path": "x-pack/plugins/observability_solution/metrics_data_access/common/inventory_models/index.ts",
"deprecated": false,
diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx
index 1045ff07658bd..198a88d6d3b22 100644
--- a/api_docs/metrics_data_access.mdx
+++ b/api_docs/metrics_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess
title: "metricsDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the metricsDataAccess plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess']
---
import metricsDataAccessObj from './metrics_data_access.devdocs.json';
diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx
index 3071fd83a7f1b..cc3a12fe8a590 100644
--- a/api_docs/ml.mdx
+++ b/api_docs/ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml
title: "ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ml plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx
index 8f52d07e34e5e..52f90e201be8f 100644
--- a/api_docs/mock_idp_plugin.mdx
+++ b/api_docs/mock_idp_plugin.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin
title: "mockIdpPlugin"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mockIdpPlugin plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin']
---
import mockIdpPluginObj from './mock_idp_plugin.devdocs.json';
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index cce0b18cf9b9d..4b58490652ace 100644
--- a/api_docs/monitoring.mdx
+++ b/api_docs/monitoring.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/monitoring
title: "monitoring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoring plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring']
---
import monitoringObj from './monitoring.devdocs.json';
-Contact [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) for questions regarding this plugin.
+Contact [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx
index d5693c5660eb5..feda619f2dde3 100644
--- a/api_docs/monitoring_collection.mdx
+++ b/api_docs/monitoring_collection.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/monitoringCollection
title: "monitoringCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoringCollection plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection']
---
import monitoringCollectionObj from './monitoring_collection.devdocs.json';
-Contact [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) for questions regarding this plugin.
+Contact [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx
index 6b7a2e4720dff..1e7b8ef379f8f 100644
--- a/api_docs/navigation.mdx
+++ b/api_docs/navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation
title: "navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the navigation plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation']
---
import navigationObj from './navigation.devdocs.json';
diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx
index dc98155ac9d5c..b85d674a84232 100644
--- a/api_docs/newsfeed.mdx
+++ b/api_docs/newsfeed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed
title: "newsfeed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the newsfeed plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed']
---
import newsfeedObj from './newsfeed.devdocs.json';
diff --git a/api_docs/no_data_page.mdx b/api_docs/no_data_page.mdx
index f0edcd0678422..2c274f8a5b07a 100644
--- a/api_docs/no_data_page.mdx
+++ b/api_docs/no_data_page.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage
title: "noDataPage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the noDataPage plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'noDataPage']
---
import noDataPageObj from './no_data_page.devdocs.json';
diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx
index 78281d2fc99e3..3f6937d1fe7fa 100644
--- a/api_docs/notifications.mdx
+++ b/api_docs/notifications.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications
title: "notifications"
image: https://source.unsplash.com/400x175/?github
description: API docs for the notifications plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications']
---
import notificationsObj from './notifications.devdocs.json';
diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json
index d11d8994c958d..977e46df309f5 100644
--- a/api_docs/observability.devdocs.json
+++ b/api_docs/observability.devdocs.json
@@ -2711,7 +2711,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "x-pack/plugins/observability_solution/observability/public/plugin.ts",
"deprecated": false,
@@ -4521,6 +4521,21 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "observability",
+ "id": "def-public.enableInfrastructureContainerAssetView",
+ "type": "string",
+ "tags": [],
+ "label": "enableInfrastructureContainerAssetView",
+ "description": [],
+ "signature": [
+ "\"observability:enableInfrastructureContainerAssetView\""
+ ],
+ "path": "x-pack/plugins/observability_solution/observability/common/ui_settings_keys.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "observability",
"id": "def-public.enableInfrastructureHostsView",
@@ -10105,6 +10120,90 @@
}
]
},
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView",
+ "type": "Object",
+ "tags": [],
+ "label": "[enableInfrastructureContainerAssetView]",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView.category",
+ "type": "Array",
+ "tags": [],
+ "label": "category",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView.name",
+ "type": "string",
+ "tags": [],
+ "label": "name",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView.value",
+ "type": "boolean",
+ "tags": [],
+ "label": "value",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView.description",
+ "type": "string",
+ "tags": [],
+ "label": "description",
+ "description": [],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "observability",
+ "id": "def-server.uiSettings.enableInfrastructureContainerAssetView.schema",
+ "type": "Object",
+ "tags": [],
+ "label": "schema",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/config-schema",
+ "scope": "common",
+ "docId": "kibKbnConfigSchemaPluginApi",
+ "section": "def-common.Type",
+ "text": "Type"
+ },
+ ""
+ ],
+ "path": "x-pack/plugins/observability_solution/observability/server/ui_settings.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ },
{
"parentPluginId": "observability",
"id": "def-server.uiSettings.enableInfrastructureProfilingIntegration",
@@ -14051,6 +14150,21 @@
"trackAdoption": false,
"initialIsOpen": false
},
+ {
+ "parentPluginId": "observability",
+ "id": "def-common.enableInfrastructureContainerAssetView",
+ "type": "string",
+ "tags": [],
+ "label": "enableInfrastructureContainerAssetView",
+ "description": [],
+ "signature": [
+ "\"observability:enableInfrastructureContainerAssetView\""
+ ],
+ "path": "x-pack/plugins/observability_solution/observability/common/ui_settings_keys.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "observability",
"id": "def-common.enableInfrastructureHostsView",
diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx
index 05a7f3a01b1bb..f561cc2b30f38 100644
--- a/api_docs/observability.mdx
+++ b/api_docs/observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability
title: "observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observability plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability']
---
import observabilityObj from './observability.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 687 | 2 | 678 | 15 |
+| 695 | 2 | 686 | 15 |
## Client
diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx
index b64a6abbb3c01..f914b84526451 100644
--- a/api_docs/observability_a_i_assistant.mdx
+++ b/api_docs/observability_a_i_assistant.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant
title: "observabilityAIAssistant"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistant plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant']
---
import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json';
diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx
index 9f00860fb60a5..af86bb282745b 100644
--- a/api_docs/observability_a_i_assistant_app.mdx
+++ b/api_docs/observability_a_i_assistant_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp
title: "observabilityAIAssistantApp"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAIAssistantApp plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp']
---
import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json';
diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx
index aca3af0852d77..01fb2eb61183a 100644
--- a/api_docs/observability_ai_assistant_management.mdx
+++ b/api_docs/observability_ai_assistant_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement
title: "observabilityAiAssistantManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityAiAssistantManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement']
---
import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json';
diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx
index b7c06dc1985f3..0fc72712b45b0 100644
--- a/api_docs/observability_logs_explorer.mdx
+++ b/api_docs/observability_logs_explorer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer
title: "observabilityLogsExplorer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityLogsExplorer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer']
---
import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json';
diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx
index 47d63d256e769..c5e4c62abe8e8 100644
--- a/api_docs/observability_onboarding.mdx
+++ b/api_docs/observability_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding
title: "observabilityOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityOnboarding plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding']
---
import observabilityOnboardingObj from './observability_onboarding.devdocs.json';
diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx
index f0165c09a5ada..26f7ba67398be 100644
--- a/api_docs/observability_shared.mdx
+++ b/api_docs/observability_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared
title: "observabilityShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityShared plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared']
---
import observabilitySharedObj from './observability_shared.devdocs.json';
diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx
index b72b022c69eb6..d65e6fd1cb6b7 100644
--- a/api_docs/osquery.mdx
+++ b/api_docs/osquery.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery
title: "osquery"
image: https://source.unsplash.com/400x175/?github
description: API docs for the osquery plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery']
---
import osqueryObj from './osquery.devdocs.json';
diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx
index 0074d8e9164cf..de7c5bd7b1e8f 100644
--- a/api_docs/painless_lab.mdx
+++ b/api_docs/painless_lab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab
title: "painlessLab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the painlessLab plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'painlessLab']
---
import painlessLabObj from './painless_lab.devdocs.json';
diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx
index 4ff6eb1486d8e..0a85ec1f71028 100644
--- a/api_docs/plugin_directory.mdx
+++ b/api_docs/plugin_directory.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory
slug: /kibana-dev-docs/api-meta/plugin-api-directory
title: Directory
description: Directory of public APIs available through plugins or packages.
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Count | Plugins or Packages with a
public API | Number of teams |
|--------------|----------|------------------------|
-| 796 | 684 | 42 |
+| 796 | 684 | 43 |
### Public API health stats
| API Count | Any Count | Missing comments | Missing exports |
|--------------|----------|-----------------|--------|
-| 48147 | 241 | 36732 | 1856 |
+| 48193 | 241 | 36773 | 1860 |
## Plugin Directory
@@ -65,11 +65,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 31 | 3 | 25 | 4 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have. | 10 | 0 | 10 | 5 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 15 | 0 | 9 | 2 |
-| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 148 | 0 | 101 | 27 |
+| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 148 | 0 | 101 | 28 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 35 | 0 | 33 | 2 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | A stateful layer to register shared features and provide an access point to discover without a direct dependency | 16 | 0 | 15 | 2 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 |
-| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | Server APIs for the Elastic AI Assistant | 45 | 0 | 31 | 0 |
+| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | Server APIs for the Elastic AI Assistant | 46 | 0 | 32 | 0 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 564 | 1 | 454 | 8 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 19 | 0 | 19 | 2 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 53 | 0 | 46 | 1 |
@@ -98,7 +98,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 84 | 0 | 84 | 8 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 240 | 0 | 24 | 9 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 0 | 2 | 0 |
-| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1302 | 5 | 1181 | 66 |
+| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1305 | 5 | 1184 | 66 |
| ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 72 | 0 | 14 | 5 |
| globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 |
@@ -126,7 +126,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | A dashboard panel for creating links to dashboards or external links. | 57 | 0 | 57 | 6 |
| | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 226 | 0 | 97 | 52 |
-| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 2 | 0 | 2 | 2 |
+| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 7 | 0 | 7 | 1 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin provides a LogsExplorer component using the Discover customization framework, offering several affordances specifically designed for log consumption. | 117 | 4 | 117 | 22 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | Exposes the shared components and APIs to access and visualize logs. | 303 | 0 | 277 | 32 |
| logstash | [@elastic/logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 |
@@ -136,13 +136,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Exposes utilities for accessing metrics data | 104 | 8 | 104 | 6 |
| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 154 | 3 | 67 | 101 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 2 | 0 | 2 | 0 |
-| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 15 | 3 | 13 | 1 |
-| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 9 | 0 | 9 | 0 |
+| | [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) | - | 15 | 3 | 13 | 1 |
+| | [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) | - | 9 | 0 | 9 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 49 | 0 | 47 | 5 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 |
-| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 687 | 2 | 678 | 15 |
+| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 695 | 2 | 686 | 15 |
| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 253 | 1 | 251 | 26 |
| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 |
| | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 |
@@ -180,8 +180,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | Serverless customizations for observability. | 6 | 0 | 6 | 0 |
| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Serverless customizations for search. | 6 | 0 | 6 | 0 |
| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 134 | 0 | 134 | 8 |
-| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds URL Service and sharing capabilities to Kibana | 136 | 0 | 77 | 11 |
-| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 63 | 0 | 63 | 1 |
+| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds URL Service and sharing capabilities to Kibana | 120 | 0 | 59 | 12 |
+| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 64 | 0 | 64 | 1 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 22 | 1 | 22 | 1 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides the Spaces feature, which allows saved objects to be organized into meaningful categories. | 257 | 0 | 66 | 0 |
| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 25 | 0 | 25 | 3 |
@@ -249,7 +249,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 18 | 0 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 4 | 0 | 4 | 0 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 49 | 0 | 49 | 8 |
-| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 191 | 0 | 191 | 28 |
+| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 193 | 0 | 193 | 30 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 11 | 0 | 11 | 0 |
| | [@elastic/kibana-qa](https://github.com/orgs/elastic/teams/kibana-qa) | - | 12 | 0 | 12 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 4 | 0 | 1 | 0 |
@@ -393,9 +393,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 1 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 13 | 1 | 12 | 0 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 112 | 1 | 0 | 0 |
-| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 354 | 1 | 5 | 2 |
+| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 356 | 1 | 5 | 2 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 11 | 0 |
-| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 226 | 0 | 183 | 11 |
+| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 225 | 0 | 182 | 11 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 1 | 0 |
| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 |
@@ -479,7 +479,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/docs](https://github.com/orgs/elastic/teams/docs) | - | 77 | 0 | 77 | 2 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 5 | 0 | 5 | 1 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 41 | 0 | 27 | 6 |
-| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 27 | 0 | 19 | 0 |
+| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 33 | 0 | 24 | 1 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 13 | 0 | 5 | 0 |
| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 35 | 0 | 34 | 0 |
| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 173 | 0 | 146 | 9 |
@@ -538,7 +538,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 23 | 0 | 7 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 8 | 0 | 2 | 3 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 45 | 0 | 0 | 0 |
-| | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 138 | 0 | 135 | 0 |
+| | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 139 | 0 | 136 | 0 |
| | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 20 | 0 | 11 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 88 | 0 | 10 | 0 |
| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 56 | 0 | 6 | 0 |
@@ -588,7 +588,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 64 | 0 | 60 | 1 |
-| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 192 | 0 | 161 | 5 |
+| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 194 | 0 | 163 | 5 |
| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 168 | 0 | 55 | 0 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 13 | 0 | 7 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 22 | 0 | 9 | 0 |
@@ -612,7 +612,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 16 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 13 | 0 | 11 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 |
-| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 110 | 0 | 104 | 2 |
+| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 113 | 0 | 107 | 2 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 88 | 0 | 87 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | A component for creating resizable layouts containing a fixed width panel and a flexible panel, with support for horizontal and vertical layouts. | 18 | 0 | 5 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 2 | 8 | 0 |
@@ -621,8 +621,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 16 | 0 | 16 | 1 |
| | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 125 | 0 | 122 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 |
-| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 74 | 0 | 74 | 0 |
-| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3647 | 0 | 3647 | 0 |
+| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 76 | 0 | 76 | 0 |
+| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 3672 | 0 | 3672 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 1 | 17 | 1 |
| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 25 | 0 | 25 | 0 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 18 | 1 |
@@ -701,7 +701,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 15 | 0 | 4 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 4 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 16 | 0 | 6 | 0 |
-| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 180 | 0 | 180 | 0 |
+| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 182 | 0 | 182 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 |
diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx
index 2cd2c7d941c2b..17ae841e4cf7d 100644
--- a/api_docs/presentation_panel.mdx
+++ b/api_docs/presentation_panel.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel
title: "presentationPanel"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationPanel plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel']
---
import presentationPanelObj from './presentation_panel.devdocs.json';
diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx
index 9f088ddf6c9af..e6d914b993e9a 100644
--- a/api_docs/presentation_util.mdx
+++ b/api_docs/presentation_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil
title: "presentationUtil"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationUtil plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil']
---
import presentationUtilObj from './presentation_util.devdocs.json';
diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx
index 718595d8dbd72..d9b6d1e49dc00 100644
--- a/api_docs/profiling.mdx
+++ b/api_docs/profiling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling
title: "profiling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profiling plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling']
---
import profilingObj from './profiling.devdocs.json';
diff --git a/api_docs/profiling_data_access.mdx b/api_docs/profiling_data_access.mdx
index 259d95e27b0a8..450b95b62aee9 100644
--- a/api_docs/profiling_data_access.mdx
+++ b/api_docs/profiling_data_access.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess
title: "profilingDataAccess"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profilingDataAccess plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profilingDataAccess']
---
import profilingDataAccessObj from './profiling_data_access.devdocs.json';
diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx
index 6c31fb58c317c..627f617141db3 100644
--- a/api_docs/remote_clusters.mdx
+++ b/api_docs/remote_clusters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters
title: "remoteClusters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the remoteClusters plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters']
---
import remoteClustersObj from './remote_clusters.devdocs.json';
diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx
index 9285c580ce57e..cfbfe38c627e7 100644
--- a/api_docs/reporting.mdx
+++ b/api_docs/reporting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting
title: "reporting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the reporting plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting']
---
import reportingObj from './reporting.devdocs.json';
diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx
index 33e6d8144a497..bab44d5f808c0 100644
--- a/api_docs/rollup.mdx
+++ b/api_docs/rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup
title: "rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the rollup plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup']
---
import rollupObj from './rollup.devdocs.json';
diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx
index bcde9f87a4ecd..3aae98fbefbb0 100644
--- a/api_docs/rule_registry.mdx
+++ b/api_docs/rule_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry
title: "ruleRegistry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ruleRegistry plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry']
---
import ruleRegistryObj from './rule_registry.devdocs.json';
diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx
index 01bc71687816f..1be7f3ab83872 100644
--- a/api_docs/runtime_fields.mdx
+++ b/api_docs/runtime_fields.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields
title: "runtimeFields"
image: https://source.unsplash.com/400x175/?github
description: API docs for the runtimeFields plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields']
---
import runtimeFieldsObj from './runtime_fields.devdocs.json';
diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx
index ff719642546d6..789683d0e9f0b 100644
--- a/api_docs/saved_objects.mdx
+++ b/api_docs/saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects
title: "savedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjects plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects']
---
import savedObjectsObj from './saved_objects.devdocs.json';
diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx
index 2f052474684f4..8767f1d956706 100644
--- a/api_docs/saved_objects_finder.mdx
+++ b/api_docs/saved_objects_finder.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder
title: "savedObjectsFinder"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsFinder plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder']
---
import savedObjectsFinderObj from './saved_objects_finder.devdocs.json';
diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx
index d1d9281d656a3..24881313fef48 100644
--- a/api_docs/saved_objects_management.mdx
+++ b/api_docs/saved_objects_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement
title: "savedObjectsManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsManagement plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement']
---
import savedObjectsManagementObj from './saved_objects_management.devdocs.json';
diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx
index a948e83892974..3bdf5ca9305c6 100644
--- a/api_docs/saved_objects_tagging.mdx
+++ b/api_docs/saved_objects_tagging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging
title: "savedObjectsTagging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTagging plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging']
---
import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json';
diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx
index 3396a3a78ee8e..ac922dcccf9a6 100644
--- a/api_docs/saved_objects_tagging_oss.mdx
+++ b/api_docs/saved_objects_tagging_oss.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss
title: "savedObjectsTaggingOss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTaggingOss plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss']
---
import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json';
diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx
index 6334e6edc7b36..41bb46f258268 100644
--- a/api_docs/saved_search.mdx
+++ b/api_docs/saved_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch
title: "savedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedSearch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch']
---
import savedSearchObj from './saved_search.devdocs.json';
diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx
index 929b4cd6e22ed..b0b21f7ef1698 100644
--- a/api_docs/screenshot_mode.mdx
+++ b/api_docs/screenshot_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode
title: "screenshotMode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotMode plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode']
---
import screenshotModeObj from './screenshot_mode.devdocs.json';
diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx
index fa858eac29b2c..675cee452135c 100644
--- a/api_docs/screenshotting.mdx
+++ b/api_docs/screenshotting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting
title: "screenshotting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotting plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting']
---
import screenshottingObj from './screenshotting.devdocs.json';
diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx
index e16a93b753b10..4f26ccc544955 100644
--- a/api_docs/search_connectors.mdx
+++ b/api_docs/search_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors
title: "searchConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchConnectors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors']
---
import searchConnectorsObj from './search_connectors.devdocs.json';
diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx
index 88b490851d6af..8d42178f20e00 100644
--- a/api_docs/search_notebooks.mdx
+++ b/api_docs/search_notebooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks
title: "searchNotebooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchNotebooks plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks']
---
import searchNotebooksObj from './search_notebooks.devdocs.json';
diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx
index 95c6f839e1555..5066649de862d 100644
--- a/api_docs/search_playground.mdx
+++ b/api_docs/search_playground.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground
title: "searchPlayground"
image: https://source.unsplash.com/400x175/?github
description: API docs for the searchPlayground plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground']
---
import searchPlaygroundObj from './search_playground.devdocs.json';
diff --git a/api_docs/security.mdx b/api_docs/security.mdx
index 01336bd5155cd..d35d950f51d48 100644
--- a/api_docs/security.mdx
+++ b/api_docs/security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security
title: "security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the security plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security']
---
import securityObj from './security.devdocs.json';
diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx
index 19ae955aab0ec..75e3bfcc21f7e 100644
--- a/api_docs/security_solution.mdx
+++ b/api_docs/security_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution
title: "securitySolution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolution plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution']
---
import securitySolutionObj from './security_solution.devdocs.json';
diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx
index 5995c4ec77283..8d1e4b618f3cf 100644
--- a/api_docs/security_solution_ess.mdx
+++ b/api_docs/security_solution_ess.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss
title: "securitySolutionEss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionEss plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionEss']
---
import securitySolutionEssObj from './security_solution_ess.devdocs.json';
diff --git a/api_docs/security_solution_serverless.mdx b/api_docs/security_solution_serverless.mdx
index 9e995d2ce9ab5..f1ddf26d0a3b7 100644
--- a/api_docs/security_solution_serverless.mdx
+++ b/api_docs/security_solution_serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless
title: "securitySolutionServerless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolutionServerless plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless']
---
import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json';
diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx
index 698402640604e..49fce71c23171 100644
--- a/api_docs/serverless.mdx
+++ b/api_docs/serverless.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless
title: "serverless"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverless plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless']
---
import serverlessObj from './serverless.devdocs.json';
diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx
index a576bdb8e8694..7f7135ff16625 100644
--- a/api_docs/serverless_observability.mdx
+++ b/api_docs/serverless_observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability
title: "serverlessObservability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessObservability plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessObservability']
---
import serverlessObservabilityObj from './serverless_observability.devdocs.json';
diff --git a/api_docs/serverless_search.mdx b/api_docs/serverless_search.mdx
index 2fe33f674a557..f15d76343d1da 100644
--- a/api_docs/serverless_search.mdx
+++ b/api_docs/serverless_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch
title: "serverlessSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the serverlessSearch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverlessSearch']
---
import serverlessSearchObj from './serverless_search.devdocs.json';
diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx
index 475defa7aa865..1d8b1d434f1bb 100644
--- a/api_docs/session_view.mdx
+++ b/api_docs/session_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView
title: "sessionView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the sessionView plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView']
---
import sessionViewObj from './session_view.devdocs.json';
diff --git a/api_docs/share.devdocs.json b/api_docs/share.devdocs.json
index 32ec76690798d..90e97c034bb12 100644
--- a/api_docs/share.devdocs.json
+++ b/api_docs/share.devdocs.json
@@ -837,6 +837,22 @@
"deprecated": false,
"trackAdoption": false
},
+ {
+ "parentPluginId": "share",
+ "id": "def-public.ShareContext.objectTypeMeta",
+ "type": "Object",
+ "tags": [],
+ "label": "objectTypeMeta",
+ "description": [
+ "\nAllows for passing contextual information that each consumer can provide to customize the share menu"
+ ],
+ "signature": [
+ "{ title: string; }"
+ ],
+ "path": "src/plugins/share/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
{
"parentPluginId": "share",
"id": "def-public.ShareContext.objectId",
@@ -860,6 +876,9 @@
"description": [
"\nCurrent url for sharing. This can be set in cases where `window.location.href`\ndoes not contain a shareable URL (e.g. if using session storage to store the current\napp state is enabled). In these cases the property should contain the URL in a\nformat which makes it possible to use it without having access to any other state\nlike the current session.\n\nIf not set it will default to `window.location.href`"
],
+ "signature": [
+ "string | undefined"
+ ],
"path": "src/plugins/share/public/types.ts",
"deprecated": false,
"trackAdoption": false
@@ -868,15 +887,31 @@
"parentPluginId": "share",
"id": "def-public.ShareContext.shareableUrlForSavedObject",
"type": "string",
- "tags": [],
+ "tags": [
+ "deprecated"
+ ],
"label": "shareableUrlForSavedObject",
"description": [],
"signature": [
"string | undefined"
],
"path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
+ "deprecated": true,
+ "trackAdoption": false,
+ "references": [
+ {
+ "plugin": "discover",
+ "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx"
+ },
+ {
+ "plugin": "@kbn/reporting-public",
+ "path": "packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx"
+ },
+ {
+ "plugin": "@kbn/reporting-public",
+ "path": "packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx"
+ }
+ ]
},
{
"parentPluginId": "share",
@@ -900,6 +935,26 @@
"deprecated": false,
"trackAdoption": false
},
+ {
+ "parentPluginId": "share",
+ "id": "def-public.ShareContext.delegatedShareUrlHandler",
+ "type": "Function",
+ "tags": [
+ "description"
+ ],
+ "label": "delegatedShareUrlHandler",
+ "description": [
+ "\n"
+ ],
+ "signature": [
+ "(() => string) | undefined"
+ ],
+ "path": "src/plugins/share/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [],
+ "returnComment": []
+ },
{
"parentPluginId": "share",
"id": "def-public.ShareContext.sharingData",
@@ -1075,273 +1130,6 @@
],
"initialIsOpen": false
},
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem",
- "type": "Interface",
- "tags": [],
- "label": "ShareMenuItem",
- "description": [],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false,
- "children": [
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.shareMenuItem",
- "type": "Object",
- "tags": [],
- "label": "shareMenuItem",
- "description": [],
- "signature": [
- {
- "pluginId": "share",
- "scope": "public",
- "docId": "kibSharePluginApi",
- "section": "def-public.ShareContextMenuPanelItem",
- "text": "ShareContextMenuPanelItem"
- },
- " | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.panel",
- "type": "Object",
- "tags": [],
- "label": "panel",
- "description": [],
- "signature": [
- "EuiContextMenuPanelDescriptor",
- " | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.label",
- "type": "CompoundType",
- "tags": [],
- "label": "label",
- "description": [],
- "signature": [
- "\"PDF\" | \"CSV\" | \"PNG\" | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.reportType",
- "type": "string",
- "tags": [],
- "label": "reportType",
- "description": [],
- "signature": [
- "string | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.requiresSavedState",
- "type": "CompoundType",
- "tags": [],
- "label": "requiresSavedState",
- "description": [],
- "signature": [
- "boolean | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.helpText",
- "type": "Object",
- "tags": [],
- "label": "helpText",
- "description": [],
- "signature": [
- "React.ReactElement> | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.copyURLButton",
- "type": "Object",
- "tags": [],
- "label": "copyURLButton",
- "description": [],
- "signature": [
- "{ id: string; dataTestSubj: string; label: string; } | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.generateReportButton",
- "type": "Object",
- "tags": [],
- "label": "generateReportButton",
- "description": [],
- "signature": [
- "React.ReactElement> | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.generateReport",
- "type": "Object",
- "tags": [],
- "label": "generateReport",
- "description": [],
- "signature": [
- "Function | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.generateReportForPrinting",
- "type": "Object",
- "tags": [],
- "label": "generateReportForPrinting",
- "description": [],
- "signature": [
- "Function | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.theme",
- "type": "Object",
- "tags": [],
- "label": "theme",
- "description": [],
- "signature": [
- {
- "pluginId": "@kbn/core-theme-browser",
- "scope": "common",
- "docId": "kibKbnCoreThemeBrowserPluginApi",
- "section": "def-common.ThemeServiceSetup",
- "text": "ThemeServiceSetup"
- },
- " | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.downloadCSVLens",
- "type": "Object",
- "tags": [],
- "label": "downloadCSVLens",
- "description": [],
- "signature": [
- "Function | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.renderLayoutOptionSwitch",
- "type": "CompoundType",
- "tags": [],
- "label": "renderLayoutOptionSwitch",
- "description": [],
- "signature": [
- "boolean | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.layoutOption",
- "type": "string",
- "tags": [],
- "label": "layoutOption",
- "description": [],
- "signature": [
- "\"print\" | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.absoluteUrl",
- "type": "string",
- "tags": [],
- "label": "absoluteUrl",
- "description": [],
- "signature": [
- "string | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.generateCopyUrl",
- "type": "Object",
- "tags": [],
- "label": "generateCopyUrl",
- "description": [],
- "signature": [
- "URL | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShareMenuItem.renderCopyURLButton",
- "type": "CompoundType",
- "tags": [],
- "label": "renderCopyURLButton",
- "description": [],
- "signature": [
- "boolean | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
- }
- ],
- "initialIsOpen": false
- },
{
"parentPluginId": "share",
"id": "def-public.ShareMenuProvider",
@@ -1522,20 +1310,6 @@
"trackAdoption": false,
"children": [],
"returnComment": []
- },
- {
- "parentPluginId": "share",
- "id": "def-public.ShowShareMenuOptions.objectTypeTitle",
- "type": "string",
- "tags": [],
- "label": "objectTypeTitle",
- "description": [],
- "signature": [
- "string | undefined"
- ],
- "path": "src/plugins/share/public/types.ts",
- "deprecated": false,
- "trackAdoption": false
}
],
"initialIsOpen": false
@@ -1620,6 +1394,22 @@
"deprecated": false,
"trackAdoption": false,
"initialIsOpen": false
+ },
+ {
+ "parentPluginId": "share",
+ "id": "def-public.ShareMenuItem",
+ "type": "Type",
+ "tags": [],
+ "label": "ShareMenuItem",
+ "description": [],
+ "signature": [
+ "ShareMenuItemLegacy | ",
+ "ShareMenuItemV2"
+ ],
+ "path": "src/plugins/share/public/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
}
],
"objects": [],
@@ -1665,7 +1455,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "src/plugins/share/public/plugin.ts",
"deprecated": false,
diff --git a/api_docs/share.mdx b/api_docs/share.mdx
index f6fa92247fdfe..8bc9855effad1 100644
--- a/api_docs/share.mdx
+++ b/api_docs/share.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share
title: "share"
image: https://source.unsplash.com/400x175/?github
description: API docs for the share plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share']
---
import shareObj from './share.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 136 | 0 | 77 | 11 |
+| 120 | 0 | 59 | 12 |
## Client
diff --git a/api_docs/slo.devdocs.json b/api_docs/slo.devdocs.json
index 8cd578a4bcd01..02cfed22cb843 100644
--- a/api_docs/slo.devdocs.json
+++ b/api_docs/slo.devdocs.json
@@ -231,7 +231,7 @@
"section": "def-common.AnonymousAccessServiceContract",
"text": "AnonymousAccessServiceContract"
},
- ") => void; isNewVersion: () => boolean; }"
+ ") => void; }"
],
"path": "x-pack/plugins/observability_solution/slo/public/types.ts",
"deprecated": false,
@@ -1515,6 +1515,26 @@
"path": "x-pack/plugins/observability_solution/slo/server/plugin.ts",
"deprecated": false,
"trackAdoption": false
+ },
+ {
+ "parentPluginId": "slo",
+ "id": "def-server.PluginStart.ruleRegistry",
+ "type": "Object",
+ "tags": [],
+ "label": "ruleRegistry",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "ruleRegistry",
+ "scope": "server",
+ "docId": "kibRuleRegistryPluginApi",
+ "section": "def-server.RuleRegistryPluginStartContract",
+ "text": "RuleRegistryPluginStartContract"
+ }
+ ],
+ "path": "x-pack/plugins/observability_solution/slo/server/plugin.ts",
+ "deprecated": false,
+ "trackAdoption": false
}
],
"initialIsOpen": false
diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx
index aa3b63ff9e0e2..edb940a1a20ae 100644
--- a/api_docs/slo.mdx
+++ b/api_docs/slo.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo
title: "slo"
image: https://source.unsplash.com/400x175/?github
description: API docs for the slo plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo']
---
import sloObj from './slo.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 63 | 0 | 63 | 1 |
+| 64 | 0 | 64 | 1 |
## Client
diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx
index 1e37ca45cc2b1..bc3e5500f7e51 100644
--- a/api_docs/snapshot_restore.mdx
+++ b/api_docs/snapshot_restore.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore
title: "snapshotRestore"
image: https://source.unsplash.com/400x175/?github
description: API docs for the snapshotRestore plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore']
---
import snapshotRestoreObj from './snapshot_restore.devdocs.json';
diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx
index 0dfcee676414d..ecccab49e53ad 100644
--- a/api_docs/spaces.mdx
+++ b/api_docs/spaces.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces
title: "spaces"
image: https://source.unsplash.com/400x175/?github
description: API docs for the spaces plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces']
---
import spacesObj from './spaces.devdocs.json';
diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx
index f565fa4889506..de2e177b8d43d 100644
--- a/api_docs/stack_alerts.mdx
+++ b/api_docs/stack_alerts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts
title: "stackAlerts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackAlerts plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts']
---
import stackAlertsObj from './stack_alerts.devdocs.json';
diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx
index d490f3f0d3c7c..9aa5b7dbc4989 100644
--- a/api_docs/stack_connectors.mdx
+++ b/api_docs/stack_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors
title: "stackConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackConnectors plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors']
---
import stackConnectorsObj from './stack_connectors.devdocs.json';
diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx
index a43dc25191333..d315f52b1e028 100644
--- a/api_docs/task_manager.mdx
+++ b/api_docs/task_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager
title: "taskManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the taskManager plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager']
---
import taskManagerObj from './task_manager.devdocs.json';
diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx
index 8937a95b341ab..bd9a2bba7bbf1 100644
--- a/api_docs/telemetry.mdx
+++ b/api_docs/telemetry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry
title: "telemetry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetry plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry']
---
import telemetryObj from './telemetry.devdocs.json';
diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx
index df5ef0bcec076..1661a32a6d3c7 100644
--- a/api_docs/telemetry_collection_manager.mdx
+++ b/api_docs/telemetry_collection_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager
title: "telemetryCollectionManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionManager plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager']
---
import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json';
diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx
index d9878380c4513..2d9f16cf8dbf4 100644
--- a/api_docs/telemetry_collection_xpack.mdx
+++ b/api_docs/telemetry_collection_xpack.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack
title: "telemetryCollectionXpack"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionXpack plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack']
---
import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json';
diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx
index ec4ace5a8a20d..dab9fb8c7c0b2 100644
--- a/api_docs/telemetry_management_section.mdx
+++ b/api_docs/telemetry_management_section.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection
title: "telemetryManagementSection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryManagementSection plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection']
---
import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json';
diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx
index e521a3ea36599..0602d9f0463bf 100644
--- a/api_docs/text_based_languages.mdx
+++ b/api_docs/text_based_languages.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages
title: "textBasedLanguages"
image: https://source.unsplash.com/400x175/?github
description: API docs for the textBasedLanguages plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages']
---
import textBasedLanguagesObj from './text_based_languages.devdocs.json';
diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx
index d497242345ef2..cd2e9d3f30b2e 100644
--- a/api_docs/threat_intelligence.mdx
+++ b/api_docs/threat_intelligence.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence
title: "threatIntelligence"
image: https://source.unsplash.com/400x175/?github
description: API docs for the threatIntelligence plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence']
---
import threatIntelligenceObj from './threat_intelligence.devdocs.json';
diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx
index 1ca938588f783..15785d5e9c77d 100644
--- a/api_docs/timelines.mdx
+++ b/api_docs/timelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines
title: "timelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the timelines plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines']
---
import timelinesObj from './timelines.devdocs.json';
diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx
index 5e3225e1bfd44..5c6e086cdbe9c 100644
--- a/api_docs/transform.mdx
+++ b/api_docs/transform.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform
title: "transform"
image: https://source.unsplash.com/400x175/?github
description: API docs for the transform plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform']
---
import transformObj from './transform.devdocs.json';
diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx
index 2d52b8751a6fb..948a680134bf6 100644
--- a/api_docs/triggers_actions_ui.mdx
+++ b/api_docs/triggers_actions_ui.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi
title: "triggersActionsUi"
image: https://source.unsplash.com/400x175/?github
description: API docs for the triggersActionsUi plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi']
---
import triggersActionsUiObj from './triggers_actions_ui.devdocs.json';
diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx
index 34a3caecbddbc..d29f81c4b8e70 100644
--- a/api_docs/ui_actions.mdx
+++ b/api_docs/ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions
title: "uiActions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActions plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions']
---
import uiActionsObj from './ui_actions.devdocs.json';
diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx
index e56612d1178b5..24e68e14aff39 100644
--- a/api_docs/ui_actions_enhanced.mdx
+++ b/api_docs/ui_actions_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced
title: "uiActionsEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActionsEnhanced plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced']
---
import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json';
diff --git a/api_docs/unified_doc_viewer.mdx b/api_docs/unified_doc_viewer.mdx
index dba3ba07d3d09..ace5e5c862af6 100644
--- a/api_docs/unified_doc_viewer.mdx
+++ b/api_docs/unified_doc_viewer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer
title: "unifiedDocViewer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedDocViewer plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer']
---
import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json';
diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx
index 761eeb38ed0f7..a01553de13ec7 100644
--- a/api_docs/unified_histogram.mdx
+++ b/api_docs/unified_histogram.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram
title: "unifiedHistogram"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedHistogram plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram']
---
import unifiedHistogramObj from './unified_histogram.devdocs.json';
diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx
index 949d29d76bd47..da0d4980397d0 100644
--- a/api_docs/unified_search.mdx
+++ b/api_docs/unified_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch
title: "unifiedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch']
---
import unifiedSearchObj from './unified_search.devdocs.json';
diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx
index 0bc7f48e4d0fa..bb8e9a67fe88f 100644
--- a/api_docs/unified_search_autocomplete.mdx
+++ b/api_docs/unified_search_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete
title: "unifiedSearch.autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch.autocomplete plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete']
---
import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json';
diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx
index abac0790ebfa2..d1f9c494f3a48 100644
--- a/api_docs/uptime.mdx
+++ b/api_docs/uptime.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime
title: "uptime"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uptime plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uptime']
---
import uptimeObj from './uptime.devdocs.json';
diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx
index 1b745a7066859..85b4d97d1e026 100644
--- a/api_docs/url_forwarding.mdx
+++ b/api_docs/url_forwarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding
title: "urlForwarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the urlForwarding plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding']
---
import urlForwardingObj from './url_forwarding.devdocs.json';
diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx
index 2e2a8850a3dff..d1bb77ed006ef 100644
--- a/api_docs/usage_collection.mdx
+++ b/api_docs/usage_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection
title: "usageCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the usageCollection plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection']
---
import usageCollectionObj from './usage_collection.devdocs.json';
diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx
index 6f101f55594e0..db6a1ca512588 100644
--- a/api_docs/ux.mdx
+++ b/api_docs/ux.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux
title: "ux"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ux plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux']
---
import uxObj from './ux.devdocs.json';
diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx
index 79717b3d7795b..55570b4ff6a5b 100644
--- a/api_docs/vis_default_editor.mdx
+++ b/api_docs/vis_default_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor
title: "visDefaultEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visDefaultEditor plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor']
---
import visDefaultEditorObj from './vis_default_editor.devdocs.json';
diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx
index ea2a10b224733..897c86f288392 100644
--- a/api_docs/vis_type_gauge.mdx
+++ b/api_docs/vis_type_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge
title: "visTypeGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeGauge plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge']
---
import visTypeGaugeObj from './vis_type_gauge.devdocs.json';
diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx
index 2db68c145878b..da0ff135945fd 100644
--- a/api_docs/vis_type_heatmap.mdx
+++ b/api_docs/vis_type_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap
title: "visTypeHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeHeatmap plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap']
---
import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json';
diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx
index 33fa837408cb8..5c8e4075daeec 100644
--- a/api_docs/vis_type_pie.mdx
+++ b/api_docs/vis_type_pie.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie
title: "visTypePie"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypePie plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie']
---
import visTypePieObj from './vis_type_pie.devdocs.json';
diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx
index 453bfecbf6ceb..36ee250be6b2f 100644
--- a/api_docs/vis_type_table.mdx
+++ b/api_docs/vis_type_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable
title: "visTypeTable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTable plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable']
---
import visTypeTableObj from './vis_type_table.devdocs.json';
diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx
index 77f51a21ef4ee..b7c940f5b3377 100644
--- a/api_docs/vis_type_timelion.mdx
+++ b/api_docs/vis_type_timelion.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion
title: "visTypeTimelion"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimelion plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion']
---
import visTypeTimelionObj from './vis_type_timelion.devdocs.json';
diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx
index eff1c8582d3cc..b1b6dac3edd80 100644
--- a/api_docs/vis_type_timeseries.mdx
+++ b/api_docs/vis_type_timeseries.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries
title: "visTypeTimeseries"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimeseries plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries']
---
import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json';
diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx
index 477a9aaaa730d..184b4ec0d7070 100644
--- a/api_docs/vis_type_vega.mdx
+++ b/api_docs/vis_type_vega.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega
title: "visTypeVega"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVega plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega']
---
import visTypeVegaObj from './vis_type_vega.devdocs.json';
diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx
index 624dc614dcc66..207b8f90b309d 100644
--- a/api_docs/vis_type_vislib.mdx
+++ b/api_docs/vis_type_vislib.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib
title: "visTypeVislib"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVislib plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib']
---
import visTypeVislibObj from './vis_type_vislib.devdocs.json';
diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx
index 7ef5703d1e21a..028b77aa7c213 100644
--- a/api_docs/vis_type_xy.mdx
+++ b/api_docs/vis_type_xy.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy
title: "visTypeXy"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeXy plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy']
---
import visTypeXyObj from './vis_type_xy.devdocs.json';
diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx
index feb1d5cc9f5d5..a10ede7ef660a 100644
--- a/api_docs/visualizations.mdx
+++ b/api_docs/visualizations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations
title: "visualizations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visualizations plugin
-date: 2024-05-14
+date: 2024-05-17
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations']
---
import visualizationsObj from './visualizations.devdocs.json';
diff --git a/docs/api/role-management/get-all.asciidoc b/docs/api/role-management/get-all.asciidoc
index 888bf0c8a137c..56c8b2c78859b 100644
--- a/docs/api/role-management/get-all.asciidoc
+++ b/docs/api/role-management/get-all.asciidoc
@@ -32,6 +32,7 @@ The API returns the following:
[
{
"name": "my_kibana_role",
+ "description": "My kibana role description",
"metadata" : {
"version" : 1
},
@@ -55,6 +56,7 @@ The API returns the following:
},
{
"name": "my_admin_role",
+ "description": "My admin role description",
"metadata" : {
"version" : 1
},
diff --git a/docs/api/role-management/get.asciidoc b/docs/api/role-management/get.asciidoc
index b18b2e231774a..95f944a56e150 100644
--- a/docs/api/role-management/get.asciidoc
+++ b/docs/api/role-management/get.asciidoc
@@ -31,6 +31,7 @@ The API returns the following:
--------------------------------------------------
{
"name": "my_restricted_kibana_role",
+ "description": "My restricted kibana role description",
"metadata" : {
"version" : 1
},
diff --git a/docs/api/role-management/put.asciidoc b/docs/api/role-management/put.asciidoc
index ce293f75b63ae..d68f3928a4063 100644
--- a/docs/api/role-management/put.asciidoc
+++ b/docs/api/role-management/put.asciidoc
@@ -21,6 +21,9 @@ To use the create or update role API, you must have the `manage_security` cluste
[[role-management-api-response-body]]
==== Request body
+`description`::
+ (Optional, string) Description for the role.
+
`metadata`::
(Optional, object) In the `metadata` object, keys that begin with `_` are reserved for system usage.
@@ -74,6 +77,7 @@ Grant access to various features in all spaces:
--------------------------------------------------
$ curl -X PUT api/security/role/my_kibana_role
{
+ "description": "my_kibana_role_description",
"metadata": {
"version": 1
},
@@ -112,6 +116,7 @@ Grant dashboard-only access to only the Marketing space:
--------------------------------------------------
$ curl -X PUT api/security/role/my_kibana_role
{
+ "description": "Grants dashboard-only access to only the Marketing space.",
"metadata": {
"version": 1
},
@@ -138,6 +143,7 @@ Grant full access to all features in the Default space:
--------------------------------------------------
$ curl -X PUT api/security/role/my_kibana_role
{
+ "description": "Grants full access to all features in the Default space.",
"metadata": {
"version": 1
},
@@ -162,6 +168,7 @@ Grant different access to different spaces:
--------------------------------------------------
$ curl -X PUT api/security/role/my_kibana_role
{
+ "description": "Grants full access to discover and dashboard features in the default space. Grants read access in the marketing, and sales spaces.",
"metadata": {
"version": 1
},
@@ -193,6 +200,7 @@ Grant access to {kib} and {es}:
--------------------------------------------------
$ curl -X PUT api/security/role/my_kibana_role
{
+ "description": "Grants all cluster privileges and full access to index1 and index2. Grants full access to remote_index1 and remote_index2, and the monitor_enrich cluster privilege on remote_cluster1. Grants all Kibana privileges in the default space.",
"metadata": {
"version": 1
},
diff --git a/docs/developer/advanced/upgrading-nodejs.asciidoc b/docs/developer/advanced/upgrading-nodejs.asciidoc
index c86666c839998..bd9b0ee23ac89 100644
--- a/docs/developer/advanced/upgrading-nodejs.asciidoc
+++ b/docs/developer/advanced/upgrading-nodejs.asciidoc
@@ -19,7 +19,7 @@ These files must be updated when upgrading Node.js:
- {kib-repo}blob/{branch}/WORKSPACE.bazel[`WORKSPACE.bazel`] - The version is specified in the `node_version` property.
Besides this property, the list of files under `node_repositories` must be updated along with their respective SHA256 hashes.
These can be found in the `SHASUMS256.txt` file inside the public `kibana-custom-node-artifacts` GCP bucket.
- Example for Node.js v20.12.2: https://storage.googleapis.com/kibana-custom-node-artifacts/node-glibc-217/dist/v20.12.2/SHASUMS256.txt[kibana-custom-node-artifacts/node-glibc-217/dist/v20.12.2/SHASUMS256.txt]
+ Example for Node.js v20.13.1: https://storage.googleapis.com/kibana-custom-node-artifacts/node-glibc-217/dist/v20.13.1/SHASUMS256.txt[kibana-custom-node-artifacts/node-glibc-217/dist/v20.13.1/SHASUMS256.txt]
See PR {kib-repo}pull/128123[#128123] for an example of how the Node.js version has been upgraded previously.
@@ -43,7 +43,7 @@ The only difference between the offical Node.js build and our custom build, is t
==== How to start a new build
To generate a new custom Node.js build, https://buildkite.com/elastic/kibana-custom-node-dot-js-builds#new[start a new build] on our dedicated Buildkite pipeline (requires Elastic employee permissions).
-Give it a clear name (e.g. `Node 20.12.2`) and remember so set the custom `OVERRIDE_TARGET_VERSION` environment variable to the desired Node.js version - e.g. `OVERRIDE_TARGET_VERSION=20.12.2`.
+Give it a clear name (e.g. `Node 20.13.1`) and remember so set the custom `OVERRIDE_TARGET_VERSION` environment variable to the desired Node.js version - e.g. `OVERRIDE_TARGET_VERSION=20.13.1`.
You find the "Environment Variables" field by expanding "Options >" in the "New Build" dialog.
=== Backporting
diff --git a/docs/playground/index.asciidoc b/docs/playground/index.asciidoc
index fe0aaea05a305..426aa181fe0e6 100644
--- a/docs/playground/index.asciidoc
+++ b/docs/playground/index.asciidoc
@@ -72,6 +72,7 @@ Does not currently support streaming.
a|
* GPT-3 turbo
* GPT-4 turbo
+* GPT-4 omni
a|
| *Azure OpenAI*
diff --git a/fleet_packages.json b/fleet_packages.json
index 5102cd480eb48..7bbccae8a39e0 100644
--- a/fleet_packages.json
+++ b/fleet_packages.json
@@ -56,6 +56,6 @@
},
{
"name": "security_detection_engine",
- "version": "8.13.6"
+ "version": "8.14.1"
}
]
\ No newline at end of file
diff --git a/package.json b/package.json
index ced46d2578656..dd5fbd1c06325 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
"url": "https://github.com/elastic/kibana.git"
},
"engines": {
- "node": "20.12.2",
+ "node": "20.13.1",
"yarn": "^1.22.19"
},
"resolutions": {
@@ -1552,7 +1552,6 @@
"@typescript-eslint/typescript-estree": "^5.62.0",
"@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
"@yarnpkg/lockfile": "^1.1.0",
- "abab": "^2.0.4",
"aggregate-error": "^3.1.0",
"apidoc-markdown": "^7.3.0",
"argsplit": "^1.0.5",
@@ -1571,7 +1570,7 @@
"buildkite-test-collector": "^1.7.0",
"callsites": "^3.1.0",
"chance": "1.0.18",
- "chromedriver": "^123.0.3",
+ "chromedriver": "^124.0.3",
"clean-webpack-plugin": "^3.0.0",
"cli-progress": "^3.12.0",
"cli-table3": "^0.6.1",
@@ -1684,6 +1683,7 @@
"q": "^1.5.1",
"raw-loader": "^3.1.0",
"react-test-renderer": "^17.0.2",
+ "recast": "^0.23.7",
"regenerate": "^1.4.0",
"resolve": "^1.22.0",
"rxjs-marbles": "^7.0.1",
diff --git a/packages/cloud/connection_details/connection_details.tsx b/packages/cloud/connection_details/connection_details.tsx
index d1aabbbc7b958..8d20717e41705 100644
--- a/packages/cloud/connection_details/connection_details.tsx
+++ b/packages/cloud/connection_details/connection_details.tsx
@@ -7,61 +7,21 @@
*/
import * as React from 'react';
-import { EuiSpacer, EuiTab, EuiTabs } from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import { useConnectionDetailsOpts } from './context';
+import { useConnectionDetailsService } from './context';
import { EndpointsTab } from './tabs/endpoints_tab';
import { ApiKeysTab } from './tabs/api_keys_tab';
+import { useBehaviorSubject } from './hooks/use_behavior_subject';
export const ConnectionDetails: React.FC = () => {
- type TabID = 'endpoints' | 'apiKeys';
- type Tab = [id: TabID, name: string, content: React.ReactNode];
-
- const ctx = useConnectionDetailsOpts();
- const [tab, setTab] = React.useState('endpoints');
-
- const tabs: Tab[] = [];
-
- if (ctx.endpoints) {
- tabs.push([
- 'endpoints',
- i18n.translate('cloud.connectionDetails.tab.endpoints', {
- defaultMessage: 'Endpoints',
- }),
- ,
- ]);
- }
-
- if (ctx.apiKeys) {
- tabs.push([
- 'apiKeys',
- i18n.translate('cloud.connectionDetails.tab.apiKeys', {
- defaultMessage: 'API key',
- }),
- ,
- ]);
- }
-
- if (tabs.length === 0) {
- return null;
+ const service = useConnectionDetailsService();
+ const tab = useBehaviorSubject(service.tabId$);
+
+ switch (tab) {
+ case 'endpoints':
+ return ;
+ case 'apiKeys':
+ return ;
+ default:
+ return null;
}
-
- return (
- <>
-
- {tabs.map(([id, name]) => (
- setTab(id)}
- isSelected={tab === id}
- data-test-subj={`connectionDetailsTabBtn-${id}`}
- >
- {name}
-
- ))}
-
-
- {tabs.find(([id]) => id === tab)?.[2] || null}
- >
- );
};
diff --git a/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx b/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx
index 5bd9cd140dfdf..6893acfd8b8b3 100644
--- a/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx
+++ b/packages/cloud/connection_details/connection_details_flyout_content.stories.tsx
@@ -21,7 +21,7 @@ export default {
export const Default = () => {
return (
- {}}>
+ {}}>
@@ -31,7 +31,7 @@ export const Default = () => {
export const CreationError = () => {
return (
- {}}>
+ {}}>
@@ -41,7 +41,7 @@ export const CreationError = () => {
export const MissingPermissions = () => {
return (
- {}}>
+ {}}>
diff --git a/packages/cloud/connection_details/connection_details_flyout_content.tsx b/packages/cloud/connection_details/connection_details_flyout_content.tsx
index 83cf22b45ee3a..9cbe8042caa42 100644
--- a/packages/cloud/connection_details/connection_details_flyout_content.tsx
+++ b/packages/cloud/connection_details/connection_details_flyout_content.tsx
@@ -18,6 +18,7 @@ import {
import { i18n } from '@kbn/i18n';
import { ConnectionDetails } from './connection_details';
import { useConnectionDetailsOpts } from './context';
+import { Tabs } from './tabs';
export const ConnectionDetailsFlyoutContent: React.FC = () => {
const ctx = useConnectionDetailsOpts();
@@ -46,6 +47,10 @@ export const ConnectionDetailsFlyoutContent: React.FC = () => {
)}
+ {/* The -25px is as per EUI example: https://eui.elastic.co/#/layout/flyout */}
+
+
+
);
diff --git a/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx b/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx
index 57f1fe13df4d8..38bc354e9c912 100644
--- a/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx
+++ b/packages/cloud/connection_details/kibana/kibana_connection_details_provider.tsx
@@ -35,6 +35,7 @@ const createOpts = async (props: KibanaConnectionDetailsProviderProps) => {
endpoints: {
id: start.plugins?.cloud?.cloudId,
url: start.plugins?.cloud?.elasticsearchUrl,
+ cloudIdLearMoreLink: docLinks?.links?.cloud?.beatsAndLogstashConfiguration,
...options?.endpoints,
},
apiKeys: {
diff --git a/packages/cloud/connection_details/service.ts b/packages/cloud/connection_details/service.ts
index 2fec4e95d179b..1e59206337baa 100644
--- a/packages/cloud/connection_details/service.ts
+++ b/packages/cloud/connection_details/service.ts
@@ -10,9 +10,10 @@ import { BehaviorSubject } from 'rxjs';
import { i18n } from '@kbn/i18n';
import { ApiKey } from './tabs/api_keys_tab/views/success_form/types';
import type { Format } from './tabs/api_keys_tab/views/success_form/format_select';
-import type { ConnectionDetailsOpts } from './types';
+import type { ConnectionDetailsOpts, TabID } from './types';
export class ConnectionDetailsService {
+ public readonly tabId$ = new BehaviorSubject('endpoints');
public readonly showCloudId$ = new BehaviorSubject(false);
public readonly apiKeyName$ = new BehaviorSubject('');
public readonly apiKeyStatus$ = new BehaviorSubject<'configuring' | 'creating'>('configuring');
@@ -33,6 +34,10 @@ export class ConnectionDetailsService {
});
}
+ public readonly setTab = (tab: TabID) => {
+ this.tabId$.next(tab);
+ };
+
public readonly toggleShowCloudId = () => {
this.showCloudId$.next(!this.showCloudId$.getValue());
};
diff --git a/packages/cloud/connection_details/stories.tsx b/packages/cloud/connection_details/stories.tsx
index e3c9a82beea38..f6d15f181835c 100644
--- a/packages/cloud/connection_details/stories.tsx
+++ b/packages/cloud/connection_details/stories.tsx
@@ -17,6 +17,7 @@ const defaultOpts: ConnectionDetailsOpts = {
endpoints: {
url: 'https://f67d6bf1a3cf40888e8863f6cb2cdc4c.us-east-1.aws.staging.foundit.no:443',
id: 'my-cluster-id:dXMtZWFzdC0xLmF3cy5zdGFnaW5nLmZvdW5kaXQubm8kZjY3ZDZiZjFhM2NmNDA4ODhlODg2M2Y2Y2IyY2RjNGMkOWViYzEzYjRkOTU0NDI2NDljMzcwZTNlZjMyZWYzOGI=',
+ cloudIdLearMoreLink: 'https://www.elastic.co/guide/en/cloud/current/ec-cloud-id.html',
},
apiKeys: {
manageKeysLink: 'https://www.elastic.co/MANAGE_API_KEYS',
diff --git a/packages/cloud/connection_details/tabs.tsx b/packages/cloud/connection_details/tabs.tsx
new file mode 100644
index 0000000000000..11c08e569a0ce
--- /dev/null
+++ b/packages/cloud/connection_details/tabs.tsx
@@ -0,0 +1,61 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import * as React from 'react';
+import { EuiTab, EuiTabs } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { useConnectionDetailsOpts, useConnectionDetailsService } from './context';
+import { useBehaviorSubject } from './hooks/use_behavior_subject';
+import { TabID } from './types';
+
+export const Tabs: React.FC = () => {
+ type Tab = [id: TabID, name: string];
+
+ const ctx = useConnectionDetailsOpts();
+ const service = useConnectionDetailsService();
+ const tab = useBehaviorSubject(service.tabId$);
+
+ const tabs: Tab[] = [];
+
+ if (ctx.endpoints) {
+ tabs.push([
+ 'endpoints',
+ i18n.translate('cloud.connectionDetails.tab.endpoints', {
+ defaultMessage: 'Endpoints',
+ }),
+ ]);
+ }
+
+ if (ctx.apiKeys) {
+ tabs.push([
+ 'apiKeys',
+ i18n.translate('cloud.connectionDetails.tab.apiKeys', {
+ defaultMessage: 'API key',
+ }),
+ ]);
+ }
+
+ if (tabs.length === 0) {
+ return null;
+ }
+
+ return (
+
+ {tabs.map(([id, name]) => (
+ service.setTab(id)}
+ isSelected={tab === id}
+ data-test-subj={`connectionDetailsTabBtn-${id}`}
+ >
+ {name}
+
+ ))}
+
+ );
+};
diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/cloud_id_row.tsx
similarity index 82%
rename from packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx
rename to packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/cloud_id_row.tsx
index 217bc533e9255..ddaddb8d6ce5d 100644
--- a/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row.tsx
+++ b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/cloud_id_row.tsx
@@ -9,9 +9,10 @@
import * as React from 'react';
import { EuiFormRow, EuiSpacer, EuiSwitch } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { CopyInput } from '../../../components/copy_input';
-import { useConnectionDetailsService } from '../../../context';
-import { useBehaviorSubject } from '../../../hooks/use_behavior_subject';
+import { CopyInput } from '../../../../components/copy_input';
+import { useConnectionDetailsService } from '../../../../context';
+import { useBehaviorSubject } from '../../../../hooks/use_behavior_subject';
+import { Label } from './label';
export interface CloudIdRowProps {
value: string;
@@ -38,9 +39,7 @@ export const CloudIdRow: React.FC = ({ value }) => {
{showCloudId && (
}
helpText={i18n.translate('cloud.connectionDetails.tab.endpoints.cloudIdField.helpText', {
defaultMessage:
'Specific client libraries and connectors can use this unique identifier specific to Elastic Cloud.',
diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/index.ts b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/index.ts
new file mode 100644
index 0000000000000..4539efe04fc97
--- /dev/null
+++ b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/index.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export * from './cloud_id_row';
diff --git a/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/label.tsx b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/label.tsx
new file mode 100644
index 0000000000000..f856b09abb5fb
--- /dev/null
+++ b/packages/cloud/connection_details/tabs/endpoints_tab/rows/cloud_id_row/label.tsx
@@ -0,0 +1,78 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import * as React from 'react';
+import {
+ EuiButtonIcon,
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiLink,
+ EuiPopover,
+ EuiText,
+} from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { FormattedMessage } from '@kbn/i18n-react';
+
+export const Label: React.FC<{ learnMoreUrl?: string }> = ({ learnMoreUrl }) => {
+ const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
+
+ const labelText = i18n.translate('cloud.connectionDetails.tab.endpoints.cloudIdField.label', {
+ defaultMessage: 'Cloud ID',
+ });
+
+ if (!learnMoreUrl) {
+ return <>{labelText}>;
+ }
+
+ return (
+
+
+
+ {labelText}
+
+
+
+ {
+ setIsPopoverOpen((x) => !x);
+ }}
+ />
+ }
+ isOpen={isPopoverOpen}
+ closePopover={() => {
+ setIsPopoverOpen(false);
+ }}
+ anchorPosition="upLeft"
+ hasArrow={false}
+ >
+
+
+ {i18n.translate(
+ 'cloud.connectionDetails.tab.endpoints.cloudIdField.learnMore',
+ {
+ defaultMessage: 'Learn more',
+ }
+ )}
+
+ ),
+ }}
+ />
+
+
+
+
+ );
+};
diff --git a/packages/cloud/connection_details/types.ts b/packages/cloud/connection_details/types.ts
index e7df5adf20bdb..81b51a444ed78 100644
--- a/packages/cloud/connection_details/types.ts
+++ b/packages/cloud/connection_details/types.ts
@@ -22,6 +22,7 @@ export interface ConnectionDetailsOptsLinks {
export interface ConnectionDetailsOptsEndpoints {
url?: string;
id?: string;
+ cloudIdLearMoreLink?: string;
}
export interface ConnectionDetailsOptsApiKeys {
@@ -31,3 +32,5 @@ export interface ConnectionDetailsOptsApiKeys {
}>;
hasPermission: () => Promise;
}
+
+export type TabID = 'endpoints' | 'apiKeys';
diff --git a/packages/core/environment/core-environment-server-internal/src/environment_service.test.ts b/packages/core/environment/core-environment-server-internal/src/environment_service.test.ts
index 42063306652f6..47e0380e9111f 100644
--- a/packages/core/environment/core-environment-server-internal/src/environment_service.test.ts
+++ b/packages/core/environment/core-environment-server-internal/src/environment_service.test.ts
@@ -8,7 +8,7 @@
import { BehaviorSubject } from 'rxjs';
-import type { CoreContext } from '@kbn/core-base-server-internal';
+import { type CoreContext, CriticalError } from '@kbn/core-base-server-internal';
import type { AnalyticsServicePreboot } from '@kbn/core-analytics-server';
import { EnvironmentService } from './environment_service';
@@ -127,36 +127,58 @@ describe('UuidService', () => {
warning.name = 'DeprecationWarning';
process.emit('warning', warning);
- expect(logger.get('process').warn).not.toHaveBeenCalled();
+ expect(logger.get('environment').warn).not.toHaveBeenCalled();
});
});
- // TODO: From Nodejs v16 emitting an unhandledRejection will kill the process
- describe.skip('unhandledRejection warnings', () => {
- it('logs warn for an unhandeld promise rejected with an Error', async () => {
+ describe('unhandledRejection warnings', () => {
+ it('logs warn for an unhandled promise rejected with an Error', async () => {
await service.preboot({ analytics });
const err = new Error('something went wrong');
- process.emit('unhandledRejection', err, new Promise((res, rej) => rej(err)));
+ process.emit('unhandledRejection', err, new Promise((res, rej) => {}));
- expect(logger.get('process').warn).toHaveBeenCalledTimes(1);
+ expect(logger.get('environment').warn).toHaveBeenCalledTimes(1);
expect(loggingSystemMock.collect(logger).warn[0][0]).toMatch(
/Detected an unhandled Promise rejection: Error: something went wrong\n.*at /
);
});
- it('logs warn for an unhandeld promise rejected with a string', async () => {
+ it('logs warn for an unhandled promise rejected with a string', async () => {
await service.preboot({ analytics });
const err = 'something went wrong';
- process.emit('unhandledRejection', err, new Promise((res, rej) => rej(err)));
+ process.emit('unhandledRejection', err, new Promise((res, rej) => {}));
- expect(logger.get('process').warn).toHaveBeenCalledTimes(1);
+ expect(logger.get('environment').warn).toHaveBeenCalledTimes(1);
expect(loggingSystemMock.collect(logger).warn[0][0]).toMatch(
/Detected an unhandled Promise rejection: "something went wrong"/
);
});
});
+
+ describe('uncaughtException warnings', () => {
+ it('logs warn for an uncaught exception with an Error', async () => {
+ await service.preboot({ analytics });
+
+ const err = new Error('something went wrong');
+ process.emit('uncaughtExceptionMonitor', err); // Types won't allow me to provide the `origin`
+
+ expect(logger.get('environment').warn).toHaveBeenCalledTimes(1);
+ expect(loggingSystemMock.collect(logger).warn[0][0]).toMatch(
+ /Detected an undefined: Error: something went wrong\n.*at /
+ );
+ });
+
+ it('does not log warn for an uncaught exception with a CriticalError', async () => {
+ await service.preboot({ analytics });
+
+ const err = new CriticalError('something went wrong', 'ERROR_CODE', 1234);
+ process.emit('uncaughtExceptionMonitor', err); // Types won't allow me to provide the `origin`
+
+ expect(logger.get('environment').warn).toHaveBeenCalledTimes(0);
+ });
+ });
});
describe('#setup()', () => {
diff --git a/packages/core/environment/core-environment-server-internal/src/environment_service.ts b/packages/core/environment/core-environment-server-internal/src/environment_service.ts
index 26e328e2aad71..486297bffb14a 100644
--- a/packages/core/environment/core-environment-server-internal/src/environment_service.ts
+++ b/packages/core/environment/core-environment-server-internal/src/environment_service.ts
@@ -10,7 +10,7 @@ import { firstValueFrom, of } from 'rxjs';
import { PathConfigType, config as pathConfigDef } from '@kbn/utils';
import type { Logger } from '@kbn/logging';
import type { IConfigService } from '@kbn/config';
-import { CoreContext, coreConfigPaths } from '@kbn/core-base-server-internal';
+import { CoreContext, coreConfigPaths, CriticalError } from '@kbn/core-base-server-internal';
import type { AnalyticsServicePreboot } from '@kbn/core-analytics-server';
import { HttpConfigType } from './types';
import { PidConfigType, pidConfig as pidConfigDef } from './pid_config';
@@ -56,7 +56,7 @@ export class EnvironmentService {
public async preboot({ analytics }: EnvironmentServicePrebootDeps) {
// IMPORTANT: This code is based on the assumption that none of the configuration values used
- // here is supposed to change during preboot phase and it's safe to read them only once.
+ // here is supposed to change during preboot phase, and it's safe to read them only once.
const [pathConfig, serverConfig, pidConfig] = await Promise.all([
firstValueFrom(this.configService.atPath(pathConfigDef.path)),
firstValueFrom(this.configService.atPath(coreConfigPaths.http)),
@@ -68,6 +68,14 @@ export class EnvironmentService {
const message = (reason as Error)?.stack ?? JSON.stringify(reason);
this.log.warn(`Detected an unhandled Promise rejection: ${message}`);
});
+ // Log uncaughtExceptions in our logger before crashing the process: https://github.com/elastic/kibana/issues/183182
+ process.on('uncaughtExceptionMonitor', (error, origin) => {
+ // CriticalErrors are handled in a different path
+ if (!(error instanceof CriticalError)) {
+ const message = error?.stack ?? JSON.stringify(error);
+ this.log.warn(`Detected an ${origin}: ${message}`);
+ }
+ });
await createDataFolder({ pathConfig, logger: this.log });
await writePidFile({ pidConfig, logger: this.log });
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.test.ts
index 983021d99005c..cdb8be191b405 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.test.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.test.ts
@@ -132,6 +132,22 @@ describe('#bulkUpdate', () => {
const originId = 'some-origin-id';
const namespace = 'foo-namespace';
+ const getBulkIndexEntry = (
+ method: string,
+ { type, id }: TypeIdTuple,
+ _index = expect.any(String),
+ getId: (type: string, id: string) => string = () => expect.any(String),
+ overrides: Record = {}
+ ) => {
+ return {
+ [method]: {
+ _index,
+ _id: getId(type, id),
+ ...overrides,
+ },
+ };
+ };
+
// bulk index calls have two objects for each source -- the action, and the source
const expectClientCallArgsAction = (
objects: TypeIdTuple[],
@@ -148,14 +164,8 @@ describe('#bulkUpdate', () => {
}
) => {
const body = [];
- for (const { type, id } of objects) {
- body.push({
- [method]: {
- _index,
- _id: getId(type, id),
- ...overrides,
- },
- });
+ for (const object of objects) {
+ body.push(getBulkIndexEntry(method, object, _index, getId, overrides));
body.push(expect.any(Object));
}
expect(client.bulk).toHaveBeenCalledWith(
@@ -220,6 +230,55 @@ describe('#bulkUpdate', () => {
expectClientCallArgsAction([obj1, _obj2], { method: 'index' });
});
+ it('should use the ES bulk action with the merged attributes when mergeAttributes is not false', async () => {
+ const _obj1 = { ...obj1, attributes: { foo: 'bar' } };
+ const _obj2 = { ...obj2, attributes: { hello: 'dolly' }, mergeAttributes: true };
+ await bulkUpdateSuccess(client, repository, registry, [_obj1, _obj2]);
+
+ expect(client.bulk).toHaveBeenCalledTimes(1);
+ expect(client.bulk).toHaveBeenCalledWith(
+ expect.objectContaining({
+ body: [
+ getBulkIndexEntry('index', _obj1),
+ expect.objectContaining({
+ [obj1.type]: {
+ title: 'Testing',
+ foo: 'bar',
+ },
+ }),
+ getBulkIndexEntry('index', _obj2),
+ expect.objectContaining({
+ [obj2.type]: {
+ title: 'Testing',
+ hello: 'dolly',
+ },
+ }),
+ ],
+ }),
+ expect.any(Object)
+ );
+ });
+
+ it('should use the ES bulk action only with the provided attributes when mergeAttributes is false', async () => {
+ const _obj1 = { ...obj1, attributes: { hello: 'dolly' }, mergeAttributes: false };
+ await bulkUpdateSuccess(client, repository, registry, [_obj1]);
+
+ expect(client.bulk).toHaveBeenCalledTimes(1);
+ expect(client.bulk).toHaveBeenCalledWith(
+ expect.objectContaining({
+ body: [
+ getBulkIndexEntry('index', _obj1),
+ expect.objectContaining({
+ [obj1.type]: {
+ hello: 'dolly',
+ },
+ }),
+ ],
+ }),
+ expect.any(Object)
+ );
+ });
+
it(`doesnt call Elasticsearch if there are no valid objects to update`, async () => {
const objects = [obj1, obj2].map((x) => ({ ...x, type: 'unknownType' }));
await repository.bulkUpdate(objects);
@@ -507,6 +566,7 @@ describe('#bulkUpdate', () => {
await bulkUpdateError(obj, true, expectedErrorResult);
});
});
+
describe('migration', () => {
it('migrates the fetched documents from Mget', async () => {
const modifiedObj2 = { ...obj2, coreMigrationVersion: '8.0.0' };
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.ts
index 7b8163107ac6b..d618bf7a2c82f 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_update.ts
@@ -58,6 +58,7 @@ type ExpectedBulkGetResult = Either<
objectNamespace?: string;
esRequestIndex: number;
migrationVersionCompatibility?: 'raw' | 'compatible';
+ mergeAttributes: boolean;
}
>;
@@ -89,7 +90,15 @@ export const performBulkUpdate = async (
let bulkGetRequestIndexCounter = 0;
const expectedBulkGetResults = objects.map((object) => {
- const { type, id, attributes, references, version, namespace: objectNamespace } = object;
+ const {
+ type,
+ id,
+ attributes,
+ references,
+ version,
+ namespace: objectNamespace,
+ mergeAttributes = true,
+ } = object;
let error: DecoratedError | undefined;
if (!allowedTypes.includes(type)) {
@@ -122,6 +131,7 @@ export const performBulkUpdate = async (
objectNamespace,
esRequestIndex: bulkGetRequestIndexCounter++,
migrationVersionCompatibility,
+ mergeAttributes,
});
});
@@ -205,8 +215,15 @@ export const performBulkUpdate = async (
return expectedBulkGetResult;
}
- const { esRequestIndex, id, type, version, documentToSave, objectNamespace } =
- expectedBulkGetResult.value;
+ const {
+ esRequestIndex,
+ id,
+ type,
+ version,
+ documentToSave,
+ objectNamespace,
+ mergeAttributes,
+ } = expectedBulkGetResult.value;
let namespaces: string[] | undefined;
const versionProperties = getExpectedVersionProperties(version);
@@ -261,18 +278,23 @@ export const performBulkUpdate = async (
}
const typeDefinition = registry.getType(type)!;
- const updatedAttributes = mergeForUpdate({
- targetAttributes: {
- ...(migrated!.attributes as Record),
- },
- updatedAttributes: await encryptionHelper.optionallyEncryptAttributes(
- type,
- id,
- objectNamespace || namespace,
- documentToSave[type]
- ),
- typeMappings: typeDefinition.mappings,
- });
+
+ const encryptedUpdatedAttributes = await encryptionHelper.optionallyEncryptAttributes(
+ type,
+ id,
+ objectNamespace || namespace,
+ documentToSave[type]
+ );
+
+ const updatedAttributes = mergeAttributes
+ ? mergeForUpdate({
+ targetAttributes: {
+ ...(migrated!.attributes as Record),
+ },
+ updatedAttributes: encryptedUpdatedAttributes,
+ typeMappings: typeDefinition.mappings,
+ })
+ : encryptedUpdatedAttributes;
const migratedUpdatedSavedObjectDoc = migrationHelper.migrateInputDocument({
...migrated!,
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.test.ts
index 67076f912973a..a5a2d82e2ac18 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.test.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.test.ts
@@ -178,6 +178,55 @@ describe('#update', () => {
expect(client.index).toHaveBeenCalledTimes(1);
});
+ it(`should use the ES index action with the merged attributes when mergeAttributes is not false`, async () => {
+ migrator.migrateDocument.mockImplementationOnce((doc) => ({ ...doc, migrated: true }));
+
+ await updateSuccess(client, repository, registry, NAMESPACE_AGNOSTIC_TYPE, id, {
+ foo: 'bar',
+ });
+
+ expect(client.index).toHaveBeenCalledTimes(1);
+ expect(client.index).toHaveBeenCalledWith(
+ expect.objectContaining({
+ body: expect.objectContaining({
+ globalType: {
+ foo: 'bar',
+ title: 'Testing',
+ },
+ }),
+ }),
+ expect.any(Object)
+ );
+ });
+
+ it(`should use the ES index action only with the provided attributes when mergeAttributes is false`, async () => {
+ migrator.migrateDocument.mockImplementationOnce((doc) => ({ ...doc, migrated: true }));
+
+ await updateSuccess(
+ client,
+ repository,
+ registry,
+ NAMESPACE_AGNOSTIC_TYPE,
+ id,
+ {
+ foo: 'bar',
+ },
+ { mergeAttributes: false }
+ );
+
+ expect(client.index).toHaveBeenCalledTimes(1);
+ expect(client.index).toHaveBeenCalledWith(
+ expect.objectContaining({
+ body: expect.objectContaining({
+ globalType: {
+ foo: 'bar',
+ },
+ }),
+ }),
+ expect.any(Object)
+ );
+ });
+
it(`should check for alias conflicts if a new multi-namespace object before create action would be created then create action to create the object`, async () => {
migrator.migrateDocument.mockImplementationOnce((doc) => ({ ...doc, migrated: true }));
await updateSuccess(
@@ -218,6 +267,7 @@ describe('#update', () => {
};
await test(references);
});
+
it(`accepts custom references array 2`, async () => {
const test = async (references: SavedObjectReference[]) => {
migrator.migrateDocument.mockImplementationOnce((doc) => ({ ...doc, migrated: true }));
@@ -232,6 +282,7 @@ describe('#update', () => {
};
await test([{ type: 'foo', id: '42', name: 'some ref' }]);
});
+
it(`accepts custom references array 3`, async () => {
const test = async (references: SavedObjectReference[]) => {
migrator.migrateDocument.mockImplementationOnce((doc) => ({ ...doc, migrated: true }));
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.ts
index ee76a0243b3eb..5c7eb11786db5 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/update.ts
@@ -246,18 +246,24 @@ export const executeUpdate = async (
// at this point, we already know 1. the document exists 2. we're not doing an upsert
// therefor we can safely process with the "standard" update sequence.
- const updatedAttributes = mergeForUpdate({
- targetAttributes: {
- ...(migrated!.attributes as Record),
- },
- updatedAttributes: await encryptionHelper.optionallyEncryptAttributes(
- type,
- id,
- namespace,
- attributes
- ),
- typeMappings: typeDefinition.mappings,
- });
+ const mergeAttributes = options.mergeAttributes ?? true;
+ const encryptedUpdatedAttributes = await encryptionHelper.optionallyEncryptAttributes(
+ type,
+ id,
+ namespace,
+ attributes
+ );
+
+ const updatedAttributes = mergeAttributes
+ ? mergeForUpdate({
+ targetAttributes: {
+ ...(migrated!.attributes as Record),
+ },
+ updatedAttributes: encryptedUpdatedAttributes,
+ typeMappings: typeDefinition.mappings,
+ })
+ : encryptedUpdatedAttributes;
+
const migratedUpdatedSavedObjectDoc = migrationHelper.migrateInputDocument({
...migrated!,
id,
diff --git a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts
index 49bc8d769a1d6..9b45816abb53a 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/bulk_update.ts
@@ -29,6 +29,13 @@ export interface SavedObjectsBulkUpdateObject
* Note: the default namespace's string representation is `'default'`, and its ID representation is `undefined`.
**/
namespace?: string;
+ /**
+ * By default, update will merge the provided attributes with the ones present on the document
+ * (performing a standard partial update). Setting this option to `false` will change the behavior, performing
+ * a "full" update instead, where the provided attributes will fully replace the existing ones.
+ * Defaults to `true`.
+ */
+ mergeAttributes?: boolean;
}
/**
diff --git a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts
index e830b32601c5b..29fe906846baa 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server/src/apis/update.ts
@@ -34,6 +34,13 @@ export interface SavedObjectsUpdateOptions extends SavedOb
retryOnConflict?: number;
/** {@link SavedObjectsRawDocParseOptions.migrationVersionCompatibility} */
migrationVersionCompatibility?: 'compatible' | 'raw';
+ /**
+ * By default, update will merge the provided attributes with the ones present on the document
+ * (performing a standard partial update). Setting this option to `false` will change the behavior, performing
+ * a "full" update instead, where the provided attributes will fully replace the existing ones.
+ * Defaults to `true`.
+ */
+ mergeAttributes?: boolean;
}
/**
diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts
index d4861ae5808ad..a04e762eaf67d 100644
--- a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts
+++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/constants.ts
@@ -130,7 +130,6 @@ export const DEFAULT_INDEX_TYPES_MAP: IndexTypesMap = {
export const HASH_TO_VERSION_MAP = {
'action_task_params|3d1b76c39bfb2cc8296b024d73854724': '10.0.0',
'action|0be88ebcc8560a075b6898236a202eb1': '10.0.0',
- 'ad_hoc_run_params|6aa8806a2e27d3be492a1da0d7721845': '10.0.0',
'alert|96a5a144778243a9f4fece0e71c2197f': '10.0.0',
'api_key_pending_invalidation|16f515278a295f6245149ad7c5ddedb7': '10.0.0',
'apm-custom-dashboards|561810b957ac3c09fcfc08f32f168e97': '10.0.0',
@@ -182,10 +181,10 @@ export const HASH_TO_VERSION_MAP = {
'infrastructure-monitoring-log-view|c50526fc6040c5355ed027d34d05b35c': '10.0.0',
'infrastructure-ui-source|3d1b76c39bfb2cc8296b024d73854724': '10.0.0',
'ingest_manager_settings|b91ffb075799c78ffd7dbd51a279c8c9': '10.1.0',
- 'ingest-agent-policies|0ab9774bc7728d0c0f37d841570f2872': '10.2.0',
+ 'ingest-agent-policies|0fd93cd11c019b118e93a9157c22057b': '10.1.0',
'ingest-download-sources|0b0f6828e59805bd07a650d80817c342': '10.0.0',
'ingest-outputs|b1237f7fdc0967709e75d65d208ace05': '10.6.0',
- 'ingest-package-policies|ca63c4c5a946704f045803a6b975dbc6': '10.9.0',
+ 'ingest-package-policies|a1a074bad36e68d54f98d2158d60f879': '10.0.0',
'inventory-view|3d1b76c39bfb2cc8296b024d73854724': '10.0.0',
'kql-telemetry|3d1b76c39bfb2cc8296b024d73854724': '10.0.0',
'legacy-url-alias|0750774cf16475f88f2361e99cc5c8f0': '8.2.0',
diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/docker_container.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/docker_container.ts
new file mode 100644
index 0000000000000..03f72ee61bc06
--- /dev/null
+++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/docker_container.ts
@@ -0,0 +1,39 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+/* eslint-disable max-classes-per-file */
+import { Entity, Fields } from '../entity';
+import { Serializable } from '../serializable';
+
+interface DockerContainerDocument extends Fields {
+ 'container.id': string;
+ 'metricset.name'?: string;
+}
+
+export class DockerContainer extends Entity {
+ metrics() {
+ return new DockerContainerMetrics({
+ ...this.fields,
+ 'docker.cpu.total.pct': 25,
+ 'docker.memory.usage.pct': 20,
+ });
+ }
+}
+
+export interface DockerContainerMetricsDocument extends DockerContainerDocument {
+ 'docker.cpu.total.pct': number;
+ 'docker.memory.usage.pct': number;
+}
+
+class DockerContainerMetrics extends Serializable {}
+
+export function dockerContainer(id: string): DockerContainer {
+ return new DockerContainer({
+ 'container.id': id,
+ });
+}
diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts
index 961225670e27b..fb81b595c7e2f 100644
--- a/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts
+++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/index.ts
@@ -6,14 +6,20 @@
* Side Public License, v 1.
*/
-import { container, ContainerMetricsDocument } from './container';
+import { dockerContainer, DockerContainerMetricsDocument } from './docker_container';
import { host, HostMetricsDocument } from './host';
+import { k8sContainer, K8sContainerMetricsDocument } from './k8s_container';
import { pod, PodMetricsDocument } from './pod';
-export type InfraDocument = HostMetricsDocument | PodMetricsDocument | ContainerMetricsDocument;
+export type InfraDocument =
+ | HostMetricsDocument
+ | PodMetricsDocument
+ | DockerContainerMetricsDocument
+ | K8sContainerMetricsDocument;
export const infra = {
host,
pod,
- container,
+ dockerContainer,
+ k8sContainer,
};
diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts
similarity index 62%
rename from packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts
rename to packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts
index d9bef38c2fdb5..00d4f0a998960 100644
--- a/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts
+++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/k8s_container.ts
@@ -10,30 +10,32 @@
import { Entity, Fields } from '../entity';
import { Serializable } from '../serializable';
-interface ContainerDocument extends Fields {
+interface K8sContainerDocument extends Fields {
'container.id': string;
'kubernetes.pod.uid': string;
'kubernetes.node.name': string;
'metricset.name'?: string;
}
-export class Container extends Entity {
+export class K8sContainer extends Entity {
metrics() {
- return new ContainerMetrics({
+ return new K8sContainerMetrics({
...this.fields,
'kubernetes.container.cpu.usage.limit.pct': 46,
+ 'kubernetes.container.memory.usage.limit.pct': 30,
});
}
}
-export interface ContainerMetricsDocument extends ContainerDocument {
+export interface K8sContainerMetricsDocument extends K8sContainerDocument {
'kubernetes.container.cpu.usage.limit.pct': number;
+ 'kubernetes.container.memory.usage.limit.pct': number;
}
-class ContainerMetrics extends Serializable {}
+class K8sContainerMetrics extends Serializable {}
-export function container(id: string, uid: string, nodeName: string) {
- return new Container({
+export function k8sContainer(id: string, uid: string, nodeName: string): K8sContainer {
+ return new K8sContainer({
'container.id': id,
'kubernetes.pod.uid': uid,
'kubernetes.node.name': nodeName,
diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts
index 9f5c999184176..35ebe94ba6ee1 100644
--- a/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts
+++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts
@@ -9,7 +9,7 @@
/* eslint-disable max-classes-per-file */
import { Entity, Fields } from '../entity';
import { Serializable } from '../serializable';
-import { container } from './container';
+import { k8sContainer } from './k8s_container';
interface PodDocument extends Fields {
'kubernetes.pod.uid': string;
@@ -26,7 +26,7 @@ export class Pod extends Entity {
}
container(id: string) {
- return container(id, this.fields['kubernetes.pod.uid'], this.fields['kubernetes.node.name']);
+ return k8sContainer(id, this.fields['kubernetes.pod.uid'], this.fields['kubernetes.node.name']);
}
}
diff --git a/packages/kbn-apm-synthtrace/src/scenarios/infra_docker_containers.ts b/packages/kbn-apm-synthtrace/src/scenarios/infra_docker_containers.ts
new file mode 100644
index 0000000000000..c020d2de83db9
--- /dev/null
+++ b/packages/kbn-apm-synthtrace/src/scenarios/infra_docker_containers.ts
@@ -0,0 +1,41 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { InfraDocument, infra } from '@kbn/apm-synthtrace-client';
+
+import { Scenario } from '../cli/scenario';
+import { withClient } from '../lib/utils/with_client';
+
+const scenario: Scenario = async (runOptions) => {
+ return {
+ generate: ({ range, clients: { infraEsClient } }) => {
+ const { numContainers = 5 } = runOptions.scenarioOpts || {};
+ const { logger } = runOptions;
+
+ const CONTAINERS = Array(numContainers)
+ .fill(0)
+ .map((_, idx) => infra.dockerContainer(`container-${idx}`));
+
+ const containers = range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ CONTAINERS.flatMap((container) => [container.metrics().timestamp(timestamp)])
+ );
+
+ return [
+ withClient(
+ infraEsClient,
+ logger.perf('generating_infra_docker_containers', () => containers)
+ ),
+ ];
+ },
+ };
+};
+
+export default scenario;
diff --git a/packages/kbn-apm-synthtrace/src/scenarios/infra_k8s_containers.ts b/packages/kbn-apm-synthtrace/src/scenarios/infra_k8s_containers.ts
new file mode 100644
index 0000000000000..39d2b36b1a03f
--- /dev/null
+++ b/packages/kbn-apm-synthtrace/src/scenarios/infra_k8s_containers.ts
@@ -0,0 +1,41 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { InfraDocument, infra } from '@kbn/apm-synthtrace-client';
+
+import { Scenario } from '../cli/scenario';
+import { withClient } from '../lib/utils/with_client';
+
+const scenario: Scenario = async (runOptions) => {
+ return {
+ generate: ({ range, clients: { infraEsClient } }) => {
+ const { numContainers = 5 } = runOptions.scenarioOpts || {};
+ const { logger } = runOptions;
+
+ const CONTAINERS = Array(numContainers)
+ .fill(0)
+ .map((_, idx) => infra.k8sContainer(`container-${idx}`, `pod-${idx}`, `node-${idx}`));
+
+ const containers = range
+ .interval('30s')
+ .rate(1)
+ .generator((timestamp) =>
+ CONTAINERS.flatMap((container) => [container.metrics().timestamp(timestamp)])
+ );
+
+ return [
+ withClient(
+ infraEsClient,
+ logger.perf('generating_infra_containers', () => containers)
+ ),
+ ];
+ },
+ };
+};
+
+export default scenario;
diff --git a/packages/kbn-discover-utils/src/data_types/index.ts b/packages/kbn-discover-utils/src/data_types/index.ts
new file mode 100644
index 0000000000000..1bb391b454f28
--- /dev/null
+++ b/packages/kbn-discover-utils/src/data_types/index.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export * from './logs';
diff --git a/packages/kbn-discover-utils/src/data_types/logs/index.ts b/packages/kbn-discover-utils/src/data_types/logs/index.ts
new file mode 100644
index 0000000000000..21d54fd754a3e
--- /dev/null
+++ b/packages/kbn-discover-utils/src/data_types/logs/index.ts
@@ -0,0 +1,10 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export * from './types';
+export * from './utils';
diff --git a/x-pack/plugins/observability_solution/logs_explorer/common/document.ts b/packages/kbn-discover-utils/src/data_types/logs/types.ts
similarity index 89%
rename from x-pack/plugins/observability_solution/logs_explorer/common/document.ts
rename to packages/kbn-discover-utils/src/data_types/logs/types.ts
index 778d8546c2d1c..27a4313fe2548 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/common/document.ts
+++ b/packages/kbn-discover-utils/src/data_types/logs/types.ts
@@ -1,11 +1,12 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
-import type { DataTableRecord } from '@kbn/discover-utils/src/types';
+import { DataTableRecord } from '../../types';
export interface LogDocument extends DataTableRecord {
flattened: {
@@ -40,7 +41,7 @@ export interface LogDocument extends DataTableRecord {
};
}
-export interface FlyoutDoc {
+export interface LogFlyoutDoc {
'@timestamp': string;
'log.level'?: string;
message?: string;
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_field_from_flattened_doc.ts b/packages/kbn-discover-utils/src/data_types/logs/utils/get_field_from_doc.ts
similarity index 65%
rename from x-pack/plugins/observability_solution/logs_explorer/public/utils/get_field_from_flattened_doc.ts
rename to packages/kbn-discover-utils/src/data_types/logs/utils/get_field_from_doc.ts
index 7d05d9ab61583..f399976dcb85a 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_field_from_flattened_doc.ts
+++ b/packages/kbn-discover-utils/src/data_types/logs/utils/get_field_from_doc.ts
@@ -1,11 +1,12 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
-import { LogDocument } from '../../common/document';
+import { LogDocument } from '../types';
type Field = keyof LogDocument['flattened'];
diff --git a/packages/kbn-discover-utils/src/data_types/logs/utils/index.ts b/packages/kbn-discover-utils/src/data_types/logs/utils/index.ts
new file mode 100644
index 0000000000000..1c26d5efff12d
--- /dev/null
+++ b/packages/kbn-discover-utils/src/data_types/logs/utils/index.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export * from './get_field_from_doc';
diff --git a/packages/kbn-discover-utils/src/index.ts b/packages/kbn-discover-utils/src/index.ts
index b1dc190111746..0e811d862b6ff 100644
--- a/packages/kbn-discover-utils/src/index.ts
+++ b/packages/kbn-discover-utils/src/index.ts
@@ -10,3 +10,4 @@ export * from './constants';
export * as fieldConstants from './field_constants';
export * from './hooks';
export * from './utils';
+export * from './data_types';
diff --git a/packages/kbn-es/src/cluster.ts b/packages/kbn-es/src/cluster.ts
index e2ddf43f32dc7..65e232a9bbd48 100644
--- a/packages/kbn-es/src/cluster.ts
+++ b/packages/kbn-es/src/cluster.ts
@@ -89,8 +89,9 @@ export class Cluster {
async installSource(options: InstallSourceOptions) {
this.log.info(chalk.bold('Installing from source'));
return await this.log.indent(4, async () => {
- const { installPath } = await installSource({ log: this.log, ...options });
- return { installPath };
+ const { installPath, disableEsTmpDir } = await installSource({ log: this.log, ...options });
+
+ return { installPath, disableEsTmpDir };
});
}
@@ -115,12 +116,12 @@ export class Cluster {
async installSnapshot(options: InstallSnapshotOptions) {
this.log.info(chalk.bold('Installing from snapshot'));
return await this.log.indent(4, async () => {
- const { installPath } = await installSnapshot({
+ const { installPath, disableEsTmpDir } = await installSnapshot({
log: this.log,
...options,
});
- return { installPath };
+ return { installPath, disableEsTmpDir };
});
}
@@ -130,12 +131,12 @@ export class Cluster {
async installArchive(archivePath: string, options?: InstallArchiveOptions) {
this.log.info(chalk.bold('Installing from an archive'));
return await this.log.indent(4, async () => {
- const { installPath } = await installArchive(archivePath, {
+ const { installPath, disableEsTmpDir } = await installArchive(archivePath, {
log: this.log,
...(options || {}),
});
- return { installPath };
+ return { installPath, disableEsTmpDir };
});
}
@@ -317,6 +318,7 @@ export class Cluster {
skipReadyCheck,
readyTimeout,
writeLogsToPath,
+ disableEsTmpDir,
...options
} = opts;
@@ -389,7 +391,9 @@ export class Cluster {
this.process = execa(ES_BIN, args, {
cwd: installPath,
env: {
- ...(installPath ? { ES_TMPDIR: path.resolve(installPath, 'ES_TMPDIR') } : {}),
+ ...(installPath && !disableEsTmpDir
+ ? { ES_TMPDIR: path.resolve(installPath, 'ES_TMPDIR') }
+ : {}),
...process.env,
JAVA_HOME: '', // By default, we want to always unset JAVA_HOME so that the bundled JDK will be used
ES_JAVA_OPTS: esJavaOpts,
diff --git a/packages/kbn-es/src/cluster_exec_options.ts b/packages/kbn-es/src/cluster_exec_options.ts
index 30aeabbab903a..362af62c57954 100644
--- a/packages/kbn-es/src/cluster_exec_options.ts
+++ b/packages/kbn-es/src/cluster_exec_options.ts
@@ -17,4 +17,6 @@ export interface EsClusterExecOptions {
readyTimeout?: number;
onEarlyExit?: (msg: string) => void;
writeLogsToPath?: string;
+ /** Disable creating a temp directory, allowing ES to write to OS's /tmp directory */
+ disableEsTmpDir?: boolean;
}
diff --git a/packages/kbn-es/src/install/install_archive.ts b/packages/kbn-es/src/install/install_archive.ts
index 78e200d4d47fb..2bfef3ab7abef 100644
--- a/packages/kbn-es/src/install/install_archive.ts
+++ b/packages/kbn-es/src/install/install_archive.ts
@@ -40,6 +40,7 @@ export async function installArchive(archive: string, options?: InstallArchiveOp
installPath = path.resolve(basePath, path.basename(archive, '.tar.gz')),
log = defaultLog,
esArgs = [],
+ disableEsTmpDir = process.env.FTR_DISABLE_ES_TMPDIR?.toLowerCase() === 'true',
} = options || {};
let dest = archive;
@@ -62,9 +63,16 @@ export async function installArchive(archive: string, options?: InstallArchiveOp
});
log.info('extracted to %s', chalk.bold(installPath));
- const tmpdir = path.resolve(installPath, 'ES_TMPDIR');
- fs.mkdirSync(tmpdir, { recursive: true });
- log.info('created %s', chalk.bold(tmpdir));
+ /**
+ * If we're running inside a Vagrant VM, and this is running in a synced folder,
+ * ES will fail to start due to ML being unable to write a pipe in the synced folder.
+ * Disabling allows ES to write to the OS's /tmp directory.
+ */
+ if (!disableEsTmpDir) {
+ const tmpdir = path.resolve(installPath, 'ES_TMPDIR');
+ fs.mkdirSync(tmpdir, { recursive: true });
+ log.info('created %s', chalk.bold(tmpdir));
+ }
// starting in 6.3, security is disabled by default. Since we bootstrap
// the keystore, we can enable security ourselves.
@@ -76,7 +84,7 @@ export async function installArchive(archive: string, options?: InstallArchiveOp
...parseSettings(esArgs, { filter: SettingsFilter.SecureOnly }),
]);
- return { installPath };
+ return { installPath, disableEsTmpDir };
}
/**
diff --git a/packages/kbn-es/src/install/types.ts b/packages/kbn-es/src/install/types.ts
index e4b750c0ec472..6217f5b93c7f6 100644
--- a/packages/kbn-es/src/install/types.ts
+++ b/packages/kbn-es/src/install/types.ts
@@ -40,4 +40,6 @@ export interface InstallArchiveOptions {
installPath?: string;
log?: ToolingLog;
esArgs?: string[];
+ /** Disable creating a temp directory, allowing ES to write to OS's /tmp directory */
+ disableEsTmpDir?: boolean;
}
diff --git a/packages/kbn-es/src/integration_tests/cluster.test.ts b/packages/kbn-es/src/integration_tests/cluster.test.ts
index e8246558732c0..0ef9803539fdd 100644
--- a/packages/kbn-es/src/integration_tests/cluster.test.ts
+++ b/packages/kbn-es/src/integration_tests/cluster.test.ts
@@ -179,13 +179,13 @@ describe('#downloadSnapshot()', () => {
});
describe('#installSource()', () => {
- test('awaits installSource() promise and returns { installPath }', async () => {
+ test('awaits installSource() promise and returns { installPath, disableEsTmpDir }', async () => {
let resolveInstallSource: Function;
installSourceMock.mockImplementationOnce(
() =>
new Promise((resolve) => {
resolveInstallSource = () => {
- resolve({ installPath: 'foo' });
+ resolve({ installPath: 'foo', disableEsTmpDir: false });
};
})
);
@@ -196,11 +196,12 @@ describe('#installSource()', () => {
resolveInstallSource!();
await expect(ensureResolve(promise, 'installSource()')).resolves.toEqual({
installPath: 'foo',
+ disableEsTmpDir: false,
});
});
test('passes through all options+log to installSource()', async () => {
- installSourceMock.mockResolvedValue({ installPath: 'foo' });
+ installSourceMock.mockResolvedValue({ installPath: 'foo', disableEsTmpDir: false });
const options: InstallSourceOptions = {
sourcePath: 'bar',
license: 'trial',
@@ -228,13 +229,13 @@ describe('#installSource()', () => {
});
describe('#installSnapshot()', () => {
- test('awaits installSnapshot() promise and returns { installPath }', async () => {
+ test('awaits installSnapshot() promise and returns { installPath, disableEsTmpDir }', async () => {
let resolveInstallSnapshot: Function;
installSnapshotMock.mockImplementationOnce(
() =>
new Promise((resolve) => {
resolveInstallSnapshot = () => {
- resolve({ installPath: 'foo' });
+ resolve({ installPath: 'foo', disableEsTmpDir: false });
};
})
);
@@ -245,11 +246,12 @@ describe('#installSnapshot()', () => {
resolveInstallSnapshot!();
await expect(ensureResolve(promise, 'installSnapshot()')).resolves.toEqual({
installPath: 'foo',
+ disableEsTmpDir: false,
});
});
test('passes through all options+log to installSnapshot()', async () => {
- installSnapshotMock.mockResolvedValue({ installPath: 'foo' });
+ installSnapshotMock.mockResolvedValue({ installPath: 'foo', disableEsTmpDir: false });
const options: InstallSnapshotOptions = {
version: '8.10.0',
license: 'trial',
@@ -278,13 +280,13 @@ describe('#installSnapshot()', () => {
});
describe('#installArchive()', () => {
- test('awaits installArchive() promise and returns { installPath }', async () => {
+ test('awaits installArchive() promise and returns { installPath, disableEsTmpDir }', async () => {
let resolveInstallArchive: Function;
installArchiveMock.mockImplementationOnce(
() =>
new Promise((resolve) => {
resolveInstallArchive = () => {
- resolve({ installPath: 'foo' });
+ resolve({ installPath: 'foo', disableEsTmpDir: false });
};
})
);
@@ -295,11 +297,12 @@ describe('#installArchive()', () => {
resolveInstallArchive!();
await expect(ensureResolve(promise, 'installArchive()')).resolves.toEqual({
installPath: 'foo',
+ disableEsTmpDir: false,
});
});
test('passes through all options+log to installArchive()', async () => {
- installArchiveMock.mockResolvedValue({ installPath: 'foo' });
+ installArchiveMock.mockResolvedValue({ installPath: 'foo', disableEsTmpDir: true });
const options: InstallArchiveOptions = {
license: 'trial',
password: 'changeme',
@@ -307,6 +310,7 @@ describe('#installArchive()', () => {
installPath: 'someInstallPath',
esArgs: ['foo=true'],
log,
+ disableEsTmpDir: true,
};
const cluster = new Cluster({ log });
await cluster.installArchive('bar', options);
diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.g4 b/packages/kbn-esql-ast/src/antlr/esql_lexer.g4
index 39c21a950f278..a4e0492ce1c61 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_lexer.g4
+++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.g4
@@ -199,7 +199,6 @@ FROM_COMMA : COMMA -> type(COMMA);
FROM_ASSIGN : ASSIGN -> type(ASSIGN);
FROM_QUOTED_STRING : QUOTED_STRING -> type(QUOTED_STRING);
-OPTIONS : 'options';
METADATA : 'metadata';
fragment FROM_UNQUOTED_IDENTIFIER_PART
@@ -432,4 +431,4 @@ SETTTING_MULTILINE_COMMENT
SETTING_WS
: WS -> channel(HIDDEN)
- ;
\ No newline at end of file
+ ;
diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.interp b/packages/kbn-esql-ast/src/antlr/esql_lexer.interp
index 0fdcdb1939bd1..fad6acad9ab58 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_lexer.interp
+++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.interp
@@ -71,7 +71,6 @@ null
null
null
null
-'options'
'metadata'
null
null
@@ -184,7 +183,6 @@ QUOTED_IDENTIFIER
EXPR_LINE_COMMENT
EXPR_MULTILINE_COMMENT
EXPR_WS
-OPTIONS
METADATA
FROM_UNQUOTED_IDENTIFIER
FROM_LINE_COMMENT
@@ -315,7 +313,6 @@ FROM_CLOSING_BRACKET
FROM_COMMA
FROM_ASSIGN
FROM_QUOTED_STRING
-OPTIONS
METADATA
FROM_UNQUOTED_IDENTIFIER_PART
FROM_UNQUOTED_IDENTIFIER
@@ -404,4 +401,4 @@ META_MODE
SETTING_MODE
atn:
-[4, 0, 110, 1197, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 4, 18, 482, 8, 18, 11, 18, 12, 18, 483, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 492, 8, 19, 10, 19, 12, 19, 495, 9, 19, 1, 19, 3, 19, 498, 8, 19, 1, 19, 3, 19, 501, 8, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 510, 8, 20, 10, 20, 12, 20, 513, 9, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 4, 21, 521, 8, 21, 11, 21, 12, 21, 522, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 3, 32, 564, 8, 32, 1, 32, 4, 32, 567, 8, 32, 11, 32, 12, 32, 568, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 578, 8, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 3, 37, 585, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 590, 8, 38, 10, 38, 12, 38, 593, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 601, 8, 38, 10, 38, 12, 38, 604, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 611, 8, 38, 1, 38, 3, 38, 614, 8, 38, 3, 38, 616, 8, 38, 1, 39, 4, 39, 619, 8, 39, 11, 39, 12, 39, 620, 1, 40, 4, 40, 624, 8, 40, 11, 40, 12, 40, 625, 1, 40, 1, 40, 5, 40, 630, 8, 40, 10, 40, 12, 40, 633, 9, 40, 1, 40, 1, 40, 4, 40, 637, 8, 40, 11, 40, 12, 40, 638, 1, 40, 4, 40, 642, 8, 40, 11, 40, 12, 40, 643, 1, 40, 1, 40, 5, 40, 648, 8, 40, 10, 40, 12, 40, 651, 9, 40, 3, 40, 653, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 4, 40, 659, 8, 40, 11, 40, 12, 40, 660, 1, 40, 1, 40, 3, 40, 665, 8, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 5, 78, 796, 8, 78, 10, 78, 12, 78, 799, 9, 78, 1, 78, 1, 78, 3, 78, 803, 8, 78, 1, 78, 4, 78, 806, 8, 78, 11, 78, 12, 78, 807, 3, 78, 810, 8, 78, 1, 79, 1, 79, 4, 79, 814, 8, 79, 11, 79, 12, 79, 815, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 879, 8, 92, 1, 93, 4, 93, 882, 8, 93, 11, 93, 12, 93, 883, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 915, 8, 100, 1, 101, 1, 101, 3, 101, 919, 8, 101, 1, 101, 5, 101, 922, 8, 101, 10, 101, 12, 101, 925, 9, 101, 1, 101, 1, 101, 3, 101, 929, 8, 101, 1, 101, 4, 101, 932, 8, 101, 11, 101, 12, 101, 933, 3, 101, 936, 8, 101, 1, 102, 1, 102, 4, 102, 940, 8, 102, 11, 102, 12, 102, 941, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 120, 4, 120, 1017, 8, 120, 11, 120, 12, 120, 1018, 1, 120, 1, 120, 3, 120, 1023, 8, 120, 1, 120, 4, 120, 1026, 8, 120, 11, 120, 12, 120, 1027, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 4, 155, 1182, 8, 155, 11, 155, 12, 155, 1183, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 2, 511, 602, 0, 159, 12, 1, 14, 2, 16, 3, 18, 4, 20, 5, 22, 6, 24, 7, 26, 8, 28, 9, 30, 10, 32, 11, 34, 12, 36, 13, 38, 14, 40, 15, 42, 16, 44, 17, 46, 18, 48, 19, 50, 20, 52, 21, 54, 22, 56, 0, 58, 0, 60, 23, 62, 24, 64, 25, 66, 26, 68, 0, 70, 0, 72, 0, 74, 0, 76, 0, 78, 0, 80, 0, 82, 0, 84, 0, 86, 0, 88, 27, 90, 28, 92, 29, 94, 30, 96, 31, 98, 32, 100, 33, 102, 34, 104, 35, 106, 36, 108, 37, 110, 38, 112, 39, 114, 40, 116, 41, 118, 42, 120, 43, 122, 44, 124, 45, 126, 46, 128, 47, 130, 48, 132, 49, 134, 50, 136, 51, 138, 52, 140, 53, 142, 54, 144, 55, 146, 56, 148, 57, 150, 58, 152, 59, 154, 60, 156, 61, 158, 62, 160, 63, 162, 64, 164, 65, 166, 66, 168, 67, 170, 0, 172, 68, 174, 69, 176, 70, 178, 71, 180, 0, 182, 0, 184, 0, 186, 0, 188, 0, 190, 0, 192, 72, 194, 73, 196, 0, 198, 74, 200, 75, 202, 76, 204, 77, 206, 0, 208, 0, 210, 0, 212, 0, 214, 0, 216, 78, 218, 79, 220, 80, 222, 81, 224, 0, 226, 0, 228, 0, 230, 0, 232, 82, 234, 0, 236, 83, 238, 84, 240, 85, 242, 0, 244, 0, 246, 86, 248, 87, 250, 0, 252, 88, 254, 0, 256, 0, 258, 89, 260, 90, 262, 91, 264, 0, 266, 0, 268, 0, 270, 0, 272, 0, 274, 0, 276, 0, 278, 92, 280, 93, 282, 94, 284, 0, 286, 0, 288, 0, 290, 0, 292, 95, 294, 96, 296, 97, 298, 0, 300, 98, 302, 99, 304, 100, 306, 101, 308, 0, 310, 102, 312, 103, 314, 104, 316, 105, 318, 0, 320, 106, 322, 107, 324, 108, 326, 109, 328, 110, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 35, 2, 0, 68, 68, 100, 100, 2, 0, 73, 73, 105, 105, 2, 0, 83, 83, 115, 115, 2, 0, 69, 69, 101, 101, 2, 0, 67, 67, 99, 99, 2, 0, 84, 84, 116, 116, 2, 0, 82, 82, 114, 114, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 78, 78, 110, 110, 2, 0, 72, 72, 104, 104, 2, 0, 86, 86, 118, 118, 2, 0, 65, 65, 97, 97, 2, 0, 76, 76, 108, 108, 2, 0, 88, 88, 120, 120, 2, 0, 70, 70, 102, 102, 2, 0, 77, 77, 109, 109, 2, 0, 71, 71, 103, 103, 2, 0, 75, 75, 107, 107, 2, 0, 87, 87, 119, 119, 6, 0, 9, 10, 13, 13, 32, 32, 47, 47, 91, 91, 93, 93, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 8, 0, 34, 34, 78, 78, 82, 82, 84, 84, 92, 92, 110, 110, 114, 114, 116, 116, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 2, 0, 43, 43, 45, 45, 1, 0, 96, 96, 2, 0, 66, 66, 98, 98, 2, 0, 89, 89, 121, 121, 2, 0, 85, 85, 117, 117, 10, 0, 9, 10, 13, 13, 32, 32, 44, 44, 47, 47, 61, 61, 91, 91, 93, 93, 96, 96, 124, 124, 2, 0, 42, 42, 47, 47, 11, 0, 9, 10, 13, 13, 32, 32, 34, 35, 44, 44, 47, 47, 58, 58, 60, 60, 62, 63, 92, 92, 124, 124, 1224, 0, 12, 1, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 36, 1, 0, 0, 0, 0, 38, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 54, 1, 0, 0, 0, 1, 56, 1, 0, 0, 0, 1, 58, 1, 0, 0, 0, 1, 60, 1, 0, 0, 0, 1, 62, 1, 0, 0, 0, 1, 64, 1, 0, 0, 0, 2, 66, 1, 0, 0, 0, 2, 88, 1, 0, 0, 0, 2, 90, 1, 0, 0, 0, 2, 92, 1, 0, 0, 0, 2, 94, 1, 0, 0, 0, 2, 96, 1, 0, 0, 0, 2, 98, 1, 0, 0, 0, 2, 100, 1, 0, 0, 0, 2, 102, 1, 0, 0, 0, 2, 104, 1, 0, 0, 0, 2, 106, 1, 0, 0, 0, 2, 108, 1, 0, 0, 0, 2, 110, 1, 0, 0, 0, 2, 112, 1, 0, 0, 0, 2, 114, 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 2, 118, 1, 0, 0, 0, 2, 120, 1, 0, 0, 0, 2, 122, 1, 0, 0, 0, 2, 124, 1, 0, 0, 0, 2, 126, 1, 0, 0, 0, 2, 128, 1, 0, 0, 0, 2, 130, 1, 0, 0, 0, 2, 132, 1, 0, 0, 0, 2, 134, 1, 0, 0, 0, 2, 136, 1, 0, 0, 0, 2, 138, 1, 0, 0, 0, 2, 140, 1, 0, 0, 0, 2, 142, 1, 0, 0, 0, 2, 144, 1, 0, 0, 0, 2, 146, 1, 0, 0, 0, 2, 148, 1, 0, 0, 0, 2, 150, 1, 0, 0, 0, 2, 152, 1, 0, 0, 0, 2, 154, 1, 0, 0, 0, 2, 156, 1, 0, 0, 0, 2, 158, 1, 0, 0, 0, 2, 160, 1, 0, 0, 0, 2, 162, 1, 0, 0, 0, 2, 164, 1, 0, 0, 0, 2, 166, 1, 0, 0, 0, 2, 168, 1, 0, 0, 0, 2, 172, 1, 0, 0, 0, 2, 174, 1, 0, 0, 0, 2, 176, 1, 0, 0, 0, 2, 178, 1, 0, 0, 0, 3, 180, 1, 0, 0, 0, 3, 182, 1, 0, 0, 0, 3, 184, 1, 0, 0, 0, 3, 186, 1, 0, 0, 0, 3, 188, 1, 0, 0, 0, 3, 190, 1, 0, 0, 0, 3, 192, 1, 0, 0, 0, 3, 194, 1, 0, 0, 0, 3, 198, 1, 0, 0, 0, 3, 200, 1, 0, 0, 0, 3, 202, 1, 0, 0, 0, 3, 204, 1, 0, 0, 0, 4, 206, 1, 0, 0, 0, 4, 208, 1, 0, 0, 0, 4, 210, 1, 0, 0, 0, 4, 216, 1, 0, 0, 0, 4, 218, 1, 0, 0, 0, 4, 220, 1, 0, 0, 0, 4, 222, 1, 0, 0, 0, 5, 224, 1, 0, 0, 0, 5, 226, 1, 0, 0, 0, 5, 228, 1, 0, 0, 0, 5, 230, 1, 0, 0, 0, 5, 232, 1, 0, 0, 0, 5, 234, 1, 0, 0, 0, 5, 236, 1, 0, 0, 0, 5, 238, 1, 0, 0, 0, 5, 240, 1, 0, 0, 0, 6, 242, 1, 0, 0, 0, 6, 244, 1, 0, 0, 0, 6, 246, 1, 0, 0, 0, 6, 248, 1, 0, 0, 0, 6, 252, 1, 0, 0, 0, 6, 254, 1, 0, 0, 0, 6, 256, 1, 0, 0, 0, 6, 258, 1, 0, 0, 0, 6, 260, 1, 0, 0, 0, 6, 262, 1, 0, 0, 0, 7, 264, 1, 0, 0, 0, 7, 266, 1, 0, 0, 0, 7, 268, 1, 0, 0, 0, 7, 270, 1, 0, 0, 0, 7, 272, 1, 0, 0, 0, 7, 274, 1, 0, 0, 0, 7, 276, 1, 0, 0, 0, 7, 278, 1, 0, 0, 0, 7, 280, 1, 0, 0, 0, 7, 282, 1, 0, 0, 0, 8, 284, 1, 0, 0, 0, 8, 286, 1, 0, 0, 0, 8, 288, 1, 0, 0, 0, 8, 290, 1, 0, 0, 0, 8, 292, 1, 0, 0, 0, 8, 294, 1, 0, 0, 0, 8, 296, 1, 0, 0, 0, 9, 298, 1, 0, 0, 0, 9, 300, 1, 0, 0, 0, 9, 302, 1, 0, 0, 0, 9, 304, 1, 0, 0, 0, 9, 306, 1, 0, 0, 0, 10, 308, 1, 0, 0, 0, 10, 310, 1, 0, 0, 0, 10, 312, 1, 0, 0, 0, 10, 314, 1, 0, 0, 0, 10, 316, 1, 0, 0, 0, 11, 318, 1, 0, 0, 0, 11, 320, 1, 0, 0, 0, 11, 322, 1, 0, 0, 0, 11, 324, 1, 0, 0, 0, 11, 326, 1, 0, 0, 0, 11, 328, 1, 0, 0, 0, 12, 330, 1, 0, 0, 0, 14, 340, 1, 0, 0, 0, 16, 347, 1, 0, 0, 0, 18, 356, 1, 0, 0, 0, 20, 363, 1, 0, 0, 0, 22, 373, 1, 0, 0, 0, 24, 380, 1, 0, 0, 0, 26, 387, 1, 0, 0, 0, 28, 401, 1, 0, 0, 0, 30, 408, 1, 0, 0, 0, 32, 416, 1, 0, 0, 0, 34, 423, 1, 0, 0, 0, 36, 435, 1, 0, 0, 0, 38, 444, 1, 0, 0, 0, 40, 450, 1, 0, 0, 0, 42, 457, 1, 0, 0, 0, 44, 464, 1, 0, 0, 0, 46, 472, 1, 0, 0, 0, 48, 481, 1, 0, 0, 0, 50, 487, 1, 0, 0, 0, 52, 504, 1, 0, 0, 0, 54, 520, 1, 0, 0, 0, 56, 526, 1, 0, 0, 0, 58, 531, 1, 0, 0, 0, 60, 536, 1, 0, 0, 0, 62, 540, 1, 0, 0, 0, 64, 544, 1, 0, 0, 0, 66, 548, 1, 0, 0, 0, 68, 552, 1, 0, 0, 0, 70, 554, 1, 0, 0, 0, 72, 556, 1, 0, 0, 0, 74, 559, 1, 0, 0, 0, 76, 561, 1, 0, 0, 0, 78, 570, 1, 0, 0, 0, 80, 572, 1, 0, 0, 0, 82, 577, 1, 0, 0, 0, 84, 579, 1, 0, 0, 0, 86, 584, 1, 0, 0, 0, 88, 615, 1, 0, 0, 0, 90, 618, 1, 0, 0, 0, 92, 664, 1, 0, 0, 0, 94, 666, 1, 0, 0, 0, 96, 669, 1, 0, 0, 0, 98, 673, 1, 0, 0, 0, 100, 677, 1, 0, 0, 0, 102, 679, 1, 0, 0, 0, 104, 682, 1, 0, 0, 0, 106, 684, 1, 0, 0, 0, 108, 689, 1, 0, 0, 0, 110, 691, 1, 0, 0, 0, 112, 697, 1, 0, 0, 0, 114, 703, 1, 0, 0, 0, 116, 708, 1, 0, 0, 0, 118, 710, 1, 0, 0, 0, 120, 713, 1, 0, 0, 0, 122, 716, 1, 0, 0, 0, 124, 721, 1, 0, 0, 0, 126, 725, 1, 0, 0, 0, 128, 730, 1, 0, 0, 0, 130, 736, 1, 0, 0, 0, 132, 739, 1, 0, 0, 0, 134, 741, 1, 0, 0, 0, 136, 747, 1, 0, 0, 0, 138, 749, 1, 0, 0, 0, 140, 754, 1, 0, 0, 0, 142, 757, 1, 0, 0, 0, 144, 760, 1, 0, 0, 0, 146, 763, 1, 0, 0, 0, 148, 765, 1, 0, 0, 0, 150, 768, 1, 0, 0, 0, 152, 770, 1, 0, 0, 0, 154, 773, 1, 0, 0, 0, 156, 775, 1, 0, 0, 0, 158, 777, 1, 0, 0, 0, 160, 779, 1, 0, 0, 0, 162, 781, 1, 0, 0, 0, 164, 783, 1, 0, 0, 0, 166, 788, 1, 0, 0, 0, 168, 809, 1, 0, 0, 0, 170, 811, 1, 0, 0, 0, 172, 819, 1, 0, 0, 0, 174, 821, 1, 0, 0, 0, 176, 825, 1, 0, 0, 0, 178, 829, 1, 0, 0, 0, 180, 833, 1, 0, 0, 0, 182, 838, 1, 0, 0, 0, 184, 842, 1, 0, 0, 0, 186, 846, 1, 0, 0, 0, 188, 850, 1, 0, 0, 0, 190, 854, 1, 0, 0, 0, 192, 858, 1, 0, 0, 0, 194, 866, 1, 0, 0, 0, 196, 878, 1, 0, 0, 0, 198, 881, 1, 0, 0, 0, 200, 885, 1, 0, 0, 0, 202, 889, 1, 0, 0, 0, 204, 893, 1, 0, 0, 0, 206, 897, 1, 0, 0, 0, 208, 902, 1, 0, 0, 0, 210, 906, 1, 0, 0, 0, 212, 914, 1, 0, 0, 0, 214, 935, 1, 0, 0, 0, 216, 939, 1, 0, 0, 0, 218, 943, 1, 0, 0, 0, 220, 947, 1, 0, 0, 0, 222, 951, 1, 0, 0, 0, 224, 955, 1, 0, 0, 0, 226, 960, 1, 0, 0, 0, 228, 964, 1, 0, 0, 0, 230, 968, 1, 0, 0, 0, 232, 972, 1, 0, 0, 0, 234, 975, 1, 0, 0, 0, 236, 979, 1, 0, 0, 0, 238, 983, 1, 0, 0, 0, 240, 987, 1, 0, 0, 0, 242, 991, 1, 0, 0, 0, 244, 996, 1, 0, 0, 0, 246, 1001, 1, 0, 0, 0, 248, 1006, 1, 0, 0, 0, 250, 1013, 1, 0, 0, 0, 252, 1022, 1, 0, 0, 0, 254, 1029, 1, 0, 0, 0, 256, 1033, 1, 0, 0, 0, 258, 1037, 1, 0, 0, 0, 260, 1041, 1, 0, 0, 0, 262, 1045, 1, 0, 0, 0, 264, 1049, 1, 0, 0, 0, 266, 1055, 1, 0, 0, 0, 268, 1059, 1, 0, 0, 0, 270, 1063, 1, 0, 0, 0, 272, 1067, 1, 0, 0, 0, 274, 1071, 1, 0, 0, 0, 276, 1075, 1, 0, 0, 0, 278, 1079, 1, 0, 0, 0, 280, 1083, 1, 0, 0, 0, 282, 1087, 1, 0, 0, 0, 284, 1091, 1, 0, 0, 0, 286, 1096, 1, 0, 0, 0, 288, 1100, 1, 0, 0, 0, 290, 1104, 1, 0, 0, 0, 292, 1108, 1, 0, 0, 0, 294, 1112, 1, 0, 0, 0, 296, 1116, 1, 0, 0, 0, 298, 1120, 1, 0, 0, 0, 300, 1125, 1, 0, 0, 0, 302, 1130, 1, 0, 0, 0, 304, 1134, 1, 0, 0, 0, 306, 1138, 1, 0, 0, 0, 308, 1142, 1, 0, 0, 0, 310, 1147, 1, 0, 0, 0, 312, 1157, 1, 0, 0, 0, 314, 1161, 1, 0, 0, 0, 316, 1165, 1, 0, 0, 0, 318, 1169, 1, 0, 0, 0, 320, 1174, 1, 0, 0, 0, 322, 1181, 1, 0, 0, 0, 324, 1185, 1, 0, 0, 0, 326, 1189, 1, 0, 0, 0, 328, 1193, 1, 0, 0, 0, 330, 331, 7, 0, 0, 0, 331, 332, 7, 1, 0, 0, 332, 333, 7, 2, 0, 0, 333, 334, 7, 2, 0, 0, 334, 335, 7, 3, 0, 0, 335, 336, 7, 4, 0, 0, 336, 337, 7, 5, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 6, 0, 0, 0, 339, 13, 1, 0, 0, 0, 340, 341, 7, 0, 0, 0, 341, 342, 7, 6, 0, 0, 342, 343, 7, 7, 0, 0, 343, 344, 7, 8, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 6, 1, 1, 0, 346, 15, 1, 0, 0, 0, 347, 348, 7, 3, 0, 0, 348, 349, 7, 9, 0, 0, 349, 350, 7, 6, 0, 0, 350, 351, 7, 1, 0, 0, 351, 352, 7, 4, 0, 0, 352, 353, 7, 10, 0, 0, 353, 354, 1, 0, 0, 0, 354, 355, 6, 2, 2, 0, 355, 17, 1, 0, 0, 0, 356, 357, 7, 3, 0, 0, 357, 358, 7, 11, 0, 0, 358, 359, 7, 12, 0, 0, 359, 360, 7, 13, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 6, 3, 0, 0, 362, 19, 1, 0, 0, 0, 363, 364, 7, 3, 0, 0, 364, 365, 7, 14, 0, 0, 365, 366, 7, 8, 0, 0, 366, 367, 7, 13, 0, 0, 367, 368, 7, 12, 0, 0, 368, 369, 7, 1, 0, 0, 369, 370, 7, 9, 0, 0, 370, 371, 1, 0, 0, 0, 371, 372, 6, 4, 3, 0, 372, 21, 1, 0, 0, 0, 373, 374, 7, 15, 0, 0, 374, 375, 7, 6, 0, 0, 375, 376, 7, 7, 0, 0, 376, 377, 7, 16, 0, 0, 377, 378, 1, 0, 0, 0, 378, 379, 6, 5, 4, 0, 379, 23, 1, 0, 0, 0, 380, 381, 7, 17, 0, 0, 381, 382, 7, 6, 0, 0, 382, 383, 7, 7, 0, 0, 383, 384, 7, 18, 0, 0, 384, 385, 1, 0, 0, 0, 385, 386, 6, 6, 0, 0, 386, 25, 1, 0, 0, 0, 387, 388, 7, 1, 0, 0, 388, 389, 7, 9, 0, 0, 389, 390, 7, 13, 0, 0, 390, 391, 7, 1, 0, 0, 391, 392, 7, 9, 0, 0, 392, 393, 7, 3, 0, 0, 393, 394, 7, 2, 0, 0, 394, 395, 7, 5, 0, 0, 395, 396, 7, 12, 0, 0, 396, 397, 7, 5, 0, 0, 397, 398, 7, 2, 0, 0, 398, 399, 1, 0, 0, 0, 399, 400, 6, 7, 0, 0, 400, 27, 1, 0, 0, 0, 401, 402, 7, 18, 0, 0, 402, 403, 7, 3, 0, 0, 403, 404, 7, 3, 0, 0, 404, 405, 7, 8, 0, 0, 405, 406, 1, 0, 0, 0, 406, 407, 6, 8, 1, 0, 407, 29, 1, 0, 0, 0, 408, 409, 7, 13, 0, 0, 409, 410, 7, 1, 0, 0, 410, 411, 7, 16, 0, 0, 411, 412, 7, 1, 0, 0, 412, 413, 7, 5, 0, 0, 413, 414, 1, 0, 0, 0, 414, 415, 6, 9, 0, 0, 415, 31, 1, 0, 0, 0, 416, 417, 7, 16, 0, 0, 417, 418, 7, 3, 0, 0, 418, 419, 7, 5, 0, 0, 419, 420, 7, 12, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 6, 10, 5, 0, 422, 33, 1, 0, 0, 0, 423, 424, 7, 16, 0, 0, 424, 425, 7, 11, 0, 0, 425, 426, 5, 95, 0, 0, 426, 427, 7, 3, 0, 0, 427, 428, 7, 14, 0, 0, 428, 429, 7, 8, 0, 0, 429, 430, 7, 12, 0, 0, 430, 431, 7, 9, 0, 0, 431, 432, 7, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 434, 6, 11, 6, 0, 434, 35, 1, 0, 0, 0, 435, 436, 7, 6, 0, 0, 436, 437, 7, 3, 0, 0, 437, 438, 7, 9, 0, 0, 438, 439, 7, 12, 0, 0, 439, 440, 7, 16, 0, 0, 440, 441, 7, 3, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 6, 12, 7, 0, 443, 37, 1, 0, 0, 0, 444, 445, 7, 6, 0, 0, 445, 446, 7, 7, 0, 0, 446, 447, 7, 19, 0, 0, 447, 448, 1, 0, 0, 0, 448, 449, 6, 13, 0, 0, 449, 39, 1, 0, 0, 0, 450, 451, 7, 2, 0, 0, 451, 452, 7, 10, 0, 0, 452, 453, 7, 7, 0, 0, 453, 454, 7, 19, 0, 0, 454, 455, 1, 0, 0, 0, 455, 456, 6, 14, 8, 0, 456, 41, 1, 0, 0, 0, 457, 458, 7, 2, 0, 0, 458, 459, 7, 7, 0, 0, 459, 460, 7, 6, 0, 0, 460, 461, 7, 5, 0, 0, 461, 462, 1, 0, 0, 0, 462, 463, 6, 15, 0, 0, 463, 43, 1, 0, 0, 0, 464, 465, 7, 2, 0, 0, 465, 466, 7, 5, 0, 0, 466, 467, 7, 12, 0, 0, 467, 468, 7, 5, 0, 0, 468, 469, 7, 2, 0, 0, 469, 470, 1, 0, 0, 0, 470, 471, 6, 16, 0, 0, 471, 45, 1, 0, 0, 0, 472, 473, 7, 19, 0, 0, 473, 474, 7, 10, 0, 0, 474, 475, 7, 3, 0, 0, 475, 476, 7, 6, 0, 0, 476, 477, 7, 3, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 6, 17, 0, 0, 479, 47, 1, 0, 0, 0, 480, 482, 8, 20, 0, 0, 481, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 486, 6, 18, 0, 0, 486, 49, 1, 0, 0, 0, 487, 488, 5, 47, 0, 0, 488, 489, 5, 47, 0, 0, 489, 493, 1, 0, 0, 0, 490, 492, 8, 21, 0, 0, 491, 490, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 497, 1, 0, 0, 0, 495, 493, 1, 0, 0, 0, 496, 498, 5, 13, 0, 0, 497, 496, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0, 498, 500, 1, 0, 0, 0, 499, 501, 5, 10, 0, 0, 500, 499, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 503, 6, 19, 9, 0, 503, 51, 1, 0, 0, 0, 504, 505, 5, 47, 0, 0, 505, 506, 5, 42, 0, 0, 506, 511, 1, 0, 0, 0, 507, 510, 3, 52, 20, 0, 508, 510, 9, 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 508, 1, 0, 0, 0, 510, 513, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 512, 514, 1, 0, 0, 0, 513, 511, 1, 0, 0, 0, 514, 515, 5, 42, 0, 0, 515, 516, 5, 47, 0, 0, 516, 517, 1, 0, 0, 0, 517, 518, 6, 20, 9, 0, 518, 53, 1, 0, 0, 0, 519, 521, 7, 22, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 6, 21, 9, 0, 525, 55, 1, 0, 0, 0, 526, 527, 3, 164, 76, 0, 527, 528, 1, 0, 0, 0, 528, 529, 6, 22, 10, 0, 529, 530, 6, 22, 11, 0, 530, 57, 1, 0, 0, 0, 531, 532, 3, 66, 27, 0, 532, 533, 1, 0, 0, 0, 533, 534, 6, 23, 12, 0, 534, 535, 6, 23, 13, 0, 535, 59, 1, 0, 0, 0, 536, 537, 3, 54, 21, 0, 537, 538, 1, 0, 0, 0, 538, 539, 6, 24, 9, 0, 539, 61, 1, 0, 0, 0, 540, 541, 3, 50, 19, 0, 541, 542, 1, 0, 0, 0, 542, 543, 6, 25, 9, 0, 543, 63, 1, 0, 0, 0, 544, 545, 3, 52, 20, 0, 545, 546, 1, 0, 0, 0, 546, 547, 6, 26, 9, 0, 547, 65, 1, 0, 0, 0, 548, 549, 5, 124, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 6, 27, 13, 0, 551, 67, 1, 0, 0, 0, 552, 553, 7, 23, 0, 0, 553, 69, 1, 0, 0, 0, 554, 555, 7, 24, 0, 0, 555, 71, 1, 0, 0, 0, 556, 557, 5, 92, 0, 0, 557, 558, 7, 25, 0, 0, 558, 73, 1, 0, 0, 0, 559, 560, 8, 26, 0, 0, 560, 75, 1, 0, 0, 0, 561, 563, 7, 3, 0, 0, 562, 564, 7, 27, 0, 0, 563, 562, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 566, 1, 0, 0, 0, 565, 567, 3, 68, 28, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 77, 1, 0, 0, 0, 570, 571, 5, 64, 0, 0, 571, 79, 1, 0, 0, 0, 572, 573, 5, 96, 0, 0, 573, 81, 1, 0, 0, 0, 574, 578, 8, 28, 0, 0, 575, 576, 5, 96, 0, 0, 576, 578, 5, 96, 0, 0, 577, 574, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 578, 83, 1, 0, 0, 0, 579, 580, 5, 95, 0, 0, 580, 85, 1, 0, 0, 0, 581, 585, 3, 70, 29, 0, 582, 585, 3, 68, 28, 0, 583, 585, 3, 84, 36, 0, 584, 581, 1, 0, 0, 0, 584, 582, 1, 0, 0, 0, 584, 583, 1, 0, 0, 0, 585, 87, 1, 0, 0, 0, 586, 591, 5, 34, 0, 0, 587, 590, 3, 72, 30, 0, 588, 590, 3, 74, 31, 0, 589, 587, 1, 0, 0, 0, 589, 588, 1, 0, 0, 0, 590, 593, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 594, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 594, 616, 5, 34, 0, 0, 595, 596, 5, 34, 0, 0, 596, 597, 5, 34, 0, 0, 597, 598, 5, 34, 0, 0, 598, 602, 1, 0, 0, 0, 599, 601, 8, 21, 0, 0, 600, 599, 1, 0, 0, 0, 601, 604, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 603, 605, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 605, 606, 5, 34, 0, 0, 606, 607, 5, 34, 0, 0, 607, 608, 5, 34, 0, 0, 608, 610, 1, 0, 0, 0, 609, 611, 5, 34, 0, 0, 610, 609, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 613, 1, 0, 0, 0, 612, 614, 5, 34, 0, 0, 613, 612, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 616, 1, 0, 0, 0, 615, 586, 1, 0, 0, 0, 615, 595, 1, 0, 0, 0, 616, 89, 1, 0, 0, 0, 617, 619, 3, 68, 28, 0, 618, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 620, 621, 1, 0, 0, 0, 621, 91, 1, 0, 0, 0, 622, 624, 3, 68, 28, 0, 623, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 631, 3, 108, 48, 0, 628, 630, 3, 68, 28, 0, 629, 628, 1, 0, 0, 0, 630, 633, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 665, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 636, 3, 108, 48, 0, 635, 637, 3, 68, 28, 0, 636, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 638, 639, 1, 0, 0, 0, 639, 665, 1, 0, 0, 0, 640, 642, 3, 68, 28, 0, 641, 640, 1, 0, 0, 0, 642, 643, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 652, 1, 0, 0, 0, 645, 649, 3, 108, 48, 0, 646, 648, 3, 68, 28, 0, 647, 646, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 653, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 652, 645, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 3, 76, 32, 0, 655, 665, 1, 0, 0, 0, 656, 658, 3, 108, 48, 0, 657, 659, 3, 68, 28, 0, 658, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663, 3, 76, 32, 0, 663, 665, 1, 0, 0, 0, 664, 623, 1, 0, 0, 0, 664, 634, 1, 0, 0, 0, 664, 641, 1, 0, 0, 0, 664, 656, 1, 0, 0, 0, 665, 93, 1, 0, 0, 0, 666, 667, 7, 29, 0, 0, 667, 668, 7, 30, 0, 0, 668, 95, 1, 0, 0, 0, 669, 670, 7, 12, 0, 0, 670, 671, 7, 9, 0, 0, 671, 672, 7, 0, 0, 0, 672, 97, 1, 0, 0, 0, 673, 674, 7, 12, 0, 0, 674, 675, 7, 2, 0, 0, 675, 676, 7, 4, 0, 0, 676, 99, 1, 0, 0, 0, 677, 678, 5, 61, 0, 0, 678, 101, 1, 0, 0, 0, 679, 680, 5, 58, 0, 0, 680, 681, 5, 58, 0, 0, 681, 103, 1, 0, 0, 0, 682, 683, 5, 44, 0, 0, 683, 105, 1, 0, 0, 0, 684, 685, 7, 0, 0, 0, 685, 686, 7, 3, 0, 0, 686, 687, 7, 2, 0, 0, 687, 688, 7, 4, 0, 0, 688, 107, 1, 0, 0, 0, 689, 690, 5, 46, 0, 0, 690, 109, 1, 0, 0, 0, 691, 692, 7, 15, 0, 0, 692, 693, 7, 12, 0, 0, 693, 694, 7, 13, 0, 0, 694, 695, 7, 2, 0, 0, 695, 696, 7, 3, 0, 0, 696, 111, 1, 0, 0, 0, 697, 698, 7, 15, 0, 0, 698, 699, 7, 1, 0, 0, 699, 700, 7, 6, 0, 0, 700, 701, 7, 2, 0, 0, 701, 702, 7, 5, 0, 0, 702, 113, 1, 0, 0, 0, 703, 704, 7, 13, 0, 0, 704, 705, 7, 12, 0, 0, 705, 706, 7, 2, 0, 0, 706, 707, 7, 5, 0, 0, 707, 115, 1, 0, 0, 0, 708, 709, 5, 40, 0, 0, 709, 117, 1, 0, 0, 0, 710, 711, 7, 1, 0, 0, 711, 712, 7, 9, 0, 0, 712, 119, 1, 0, 0, 0, 713, 714, 7, 1, 0, 0, 714, 715, 7, 2, 0, 0, 715, 121, 1, 0, 0, 0, 716, 717, 7, 13, 0, 0, 717, 718, 7, 1, 0, 0, 718, 719, 7, 18, 0, 0, 719, 720, 7, 3, 0, 0, 720, 123, 1, 0, 0, 0, 721, 722, 7, 9, 0, 0, 722, 723, 7, 7, 0, 0, 723, 724, 7, 5, 0, 0, 724, 125, 1, 0, 0, 0, 725, 726, 7, 9, 0, 0, 726, 727, 7, 31, 0, 0, 727, 728, 7, 13, 0, 0, 728, 729, 7, 13, 0, 0, 729, 127, 1, 0, 0, 0, 730, 731, 7, 9, 0, 0, 731, 732, 7, 31, 0, 0, 732, 733, 7, 13, 0, 0, 733, 734, 7, 13, 0, 0, 734, 735, 7, 2, 0, 0, 735, 129, 1, 0, 0, 0, 736, 737, 7, 7, 0, 0, 737, 738, 7, 6, 0, 0, 738, 131, 1, 0, 0, 0, 739, 740, 5, 63, 0, 0, 740, 133, 1, 0, 0, 0, 741, 742, 7, 6, 0, 0, 742, 743, 7, 13, 0, 0, 743, 744, 7, 1, 0, 0, 744, 745, 7, 18, 0, 0, 745, 746, 7, 3, 0, 0, 746, 135, 1, 0, 0, 0, 747, 748, 5, 41, 0, 0, 748, 137, 1, 0, 0, 0, 749, 750, 7, 5, 0, 0, 750, 751, 7, 6, 0, 0, 751, 752, 7, 31, 0, 0, 752, 753, 7, 3, 0, 0, 753, 139, 1, 0, 0, 0, 754, 755, 5, 61, 0, 0, 755, 756, 5, 61, 0, 0, 756, 141, 1, 0, 0, 0, 757, 758, 5, 61, 0, 0, 758, 759, 5, 126, 0, 0, 759, 143, 1, 0, 0, 0, 760, 761, 5, 33, 0, 0, 761, 762, 5, 61, 0, 0, 762, 145, 1, 0, 0, 0, 763, 764, 5, 60, 0, 0, 764, 147, 1, 0, 0, 0, 765, 766, 5, 60, 0, 0, 766, 767, 5, 61, 0, 0, 767, 149, 1, 0, 0, 0, 768, 769, 5, 62, 0, 0, 769, 151, 1, 0, 0, 0, 770, 771, 5, 62, 0, 0, 771, 772, 5, 61, 0, 0, 772, 153, 1, 0, 0, 0, 773, 774, 5, 43, 0, 0, 774, 155, 1, 0, 0, 0, 775, 776, 5, 45, 0, 0, 776, 157, 1, 0, 0, 0, 777, 778, 5, 42, 0, 0, 778, 159, 1, 0, 0, 0, 779, 780, 5, 47, 0, 0, 780, 161, 1, 0, 0, 0, 781, 782, 5, 37, 0, 0, 782, 163, 1, 0, 0, 0, 783, 784, 5, 91, 0, 0, 784, 785, 1, 0, 0, 0, 785, 786, 6, 76, 0, 0, 786, 787, 6, 76, 0, 0, 787, 165, 1, 0, 0, 0, 788, 789, 5, 93, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 6, 77, 13, 0, 791, 792, 6, 77, 13, 0, 792, 167, 1, 0, 0, 0, 793, 797, 3, 70, 29, 0, 794, 796, 3, 86, 37, 0, 795, 794, 1, 0, 0, 0, 796, 799, 1, 0, 0, 0, 797, 795, 1, 0, 0, 0, 797, 798, 1, 0, 0, 0, 798, 810, 1, 0, 0, 0, 799, 797, 1, 0, 0, 0, 800, 803, 3, 84, 36, 0, 801, 803, 3, 78, 33, 0, 802, 800, 1, 0, 0, 0, 802, 801, 1, 0, 0, 0, 803, 805, 1, 0, 0, 0, 804, 806, 3, 86, 37, 0, 805, 804, 1, 0, 0, 0, 806, 807, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0, 807, 808, 1, 0, 0, 0, 808, 810, 1, 0, 0, 0, 809, 793, 1, 0, 0, 0, 809, 802, 1, 0, 0, 0, 810, 169, 1, 0, 0, 0, 811, 813, 3, 80, 34, 0, 812, 814, 3, 82, 35, 0, 813, 812, 1, 0, 0, 0, 814, 815, 1, 0, 0, 0, 815, 813, 1, 0, 0, 0, 815, 816, 1, 0, 0, 0, 816, 817, 1, 0, 0, 0, 817, 818, 3, 80, 34, 0, 818, 171, 1, 0, 0, 0, 819, 820, 3, 170, 79, 0, 820, 173, 1, 0, 0, 0, 821, 822, 3, 50, 19, 0, 822, 823, 1, 0, 0, 0, 823, 824, 6, 81, 9, 0, 824, 175, 1, 0, 0, 0, 825, 826, 3, 52, 20, 0, 826, 827, 1, 0, 0, 0, 827, 828, 6, 82, 9, 0, 828, 177, 1, 0, 0, 0, 829, 830, 3, 54, 21, 0, 830, 831, 1, 0, 0, 0, 831, 832, 6, 83, 9, 0, 832, 179, 1, 0, 0, 0, 833, 834, 3, 66, 27, 0, 834, 835, 1, 0, 0, 0, 835, 836, 6, 84, 12, 0, 836, 837, 6, 84, 13, 0, 837, 181, 1, 0, 0, 0, 838, 839, 3, 164, 76, 0, 839, 840, 1, 0, 0, 0, 840, 841, 6, 85, 10, 0, 841, 183, 1, 0, 0, 0, 842, 843, 3, 166, 77, 0, 843, 844, 1, 0, 0, 0, 844, 845, 6, 86, 14, 0, 845, 185, 1, 0, 0, 0, 846, 847, 3, 104, 46, 0, 847, 848, 1, 0, 0, 0, 848, 849, 6, 87, 15, 0, 849, 187, 1, 0, 0, 0, 850, 851, 3, 100, 44, 0, 851, 852, 1, 0, 0, 0, 852, 853, 6, 88, 16, 0, 853, 189, 1, 0, 0, 0, 854, 855, 3, 88, 38, 0, 855, 856, 1, 0, 0, 0, 856, 857, 6, 89, 17, 0, 857, 191, 1, 0, 0, 0, 858, 859, 7, 7, 0, 0, 859, 860, 7, 8, 0, 0, 860, 861, 7, 5, 0, 0, 861, 862, 7, 1, 0, 0, 862, 863, 7, 7, 0, 0, 863, 864, 7, 9, 0, 0, 864, 865, 7, 2, 0, 0, 865, 193, 1, 0, 0, 0, 866, 867, 7, 16, 0, 0, 867, 868, 7, 3, 0, 0, 868, 869, 7, 5, 0, 0, 869, 870, 7, 12, 0, 0, 870, 871, 7, 0, 0, 0, 871, 872, 7, 12, 0, 0, 872, 873, 7, 5, 0, 0, 873, 874, 7, 12, 0, 0, 874, 195, 1, 0, 0, 0, 875, 879, 8, 32, 0, 0, 876, 877, 5, 47, 0, 0, 877, 879, 8, 33, 0, 0, 878, 875, 1, 0, 0, 0, 878, 876, 1, 0, 0, 0, 879, 197, 1, 0, 0, 0, 880, 882, 3, 196, 92, 0, 881, 880, 1, 0, 0, 0, 882, 883, 1, 0, 0, 0, 883, 881, 1, 0, 0, 0, 883, 884, 1, 0, 0, 0, 884, 199, 1, 0, 0, 0, 885, 886, 3, 50, 19, 0, 886, 887, 1, 0, 0, 0, 887, 888, 6, 94, 9, 0, 888, 201, 1, 0, 0, 0, 889, 890, 3, 52, 20, 0, 890, 891, 1, 0, 0, 0, 891, 892, 6, 95, 9, 0, 892, 203, 1, 0, 0, 0, 893, 894, 3, 54, 21, 0, 894, 895, 1, 0, 0, 0, 895, 896, 6, 96, 9, 0, 896, 205, 1, 0, 0, 0, 897, 898, 3, 66, 27, 0, 898, 899, 1, 0, 0, 0, 899, 900, 6, 97, 12, 0, 900, 901, 6, 97, 13, 0, 901, 207, 1, 0, 0, 0, 902, 903, 3, 108, 48, 0, 903, 904, 1, 0, 0, 0, 904, 905, 6, 98, 18, 0, 905, 209, 1, 0, 0, 0, 906, 907, 3, 104, 46, 0, 907, 908, 1, 0, 0, 0, 908, 909, 6, 99, 15, 0, 909, 211, 1, 0, 0, 0, 910, 915, 3, 70, 29, 0, 911, 915, 3, 68, 28, 0, 912, 915, 3, 84, 36, 0, 913, 915, 3, 158, 73, 0, 914, 910, 1, 0, 0, 0, 914, 911, 1, 0, 0, 0, 914, 912, 1, 0, 0, 0, 914, 913, 1, 0, 0, 0, 915, 213, 1, 0, 0, 0, 916, 919, 3, 70, 29, 0, 917, 919, 3, 158, 73, 0, 918, 916, 1, 0, 0, 0, 918, 917, 1, 0, 0, 0, 919, 923, 1, 0, 0, 0, 920, 922, 3, 212, 100, 0, 921, 920, 1, 0, 0, 0, 922, 925, 1, 0, 0, 0, 923, 921, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 936, 1, 0, 0, 0, 925, 923, 1, 0, 0, 0, 926, 929, 3, 84, 36, 0, 927, 929, 3, 78, 33, 0, 928, 926, 1, 0, 0, 0, 928, 927, 1, 0, 0, 0, 929, 931, 1, 0, 0, 0, 930, 932, 3, 212, 100, 0, 931, 930, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 931, 1, 0, 0, 0, 933, 934, 1, 0, 0, 0, 934, 936, 1, 0, 0, 0, 935, 918, 1, 0, 0, 0, 935, 928, 1, 0, 0, 0, 936, 215, 1, 0, 0, 0, 937, 940, 3, 214, 101, 0, 938, 940, 3, 170, 79, 0, 939, 937, 1, 0, 0, 0, 939, 938, 1, 0, 0, 0, 940, 941, 1, 0, 0, 0, 941, 939, 1, 0, 0, 0, 941, 942, 1, 0, 0, 0, 942, 217, 1, 0, 0, 0, 943, 944, 3, 50, 19, 0, 944, 945, 1, 0, 0, 0, 945, 946, 6, 103, 9, 0, 946, 219, 1, 0, 0, 0, 947, 948, 3, 52, 20, 0, 948, 949, 1, 0, 0, 0, 949, 950, 6, 104, 9, 0, 950, 221, 1, 0, 0, 0, 951, 952, 3, 54, 21, 0, 952, 953, 1, 0, 0, 0, 953, 954, 6, 105, 9, 0, 954, 223, 1, 0, 0, 0, 955, 956, 3, 66, 27, 0, 956, 957, 1, 0, 0, 0, 957, 958, 6, 106, 12, 0, 958, 959, 6, 106, 13, 0, 959, 225, 1, 0, 0, 0, 960, 961, 3, 100, 44, 0, 961, 962, 1, 0, 0, 0, 962, 963, 6, 107, 16, 0, 963, 227, 1, 0, 0, 0, 964, 965, 3, 104, 46, 0, 965, 966, 1, 0, 0, 0, 966, 967, 6, 108, 15, 0, 967, 229, 1, 0, 0, 0, 968, 969, 3, 108, 48, 0, 969, 970, 1, 0, 0, 0, 970, 971, 6, 109, 18, 0, 971, 231, 1, 0, 0, 0, 972, 973, 7, 12, 0, 0, 973, 974, 7, 2, 0, 0, 974, 233, 1, 0, 0, 0, 975, 976, 3, 216, 102, 0, 976, 977, 1, 0, 0, 0, 977, 978, 6, 111, 19, 0, 978, 235, 1, 0, 0, 0, 979, 980, 3, 50, 19, 0, 980, 981, 1, 0, 0, 0, 981, 982, 6, 112, 9, 0, 982, 237, 1, 0, 0, 0, 983, 984, 3, 52, 20, 0, 984, 985, 1, 0, 0, 0, 985, 986, 6, 113, 9, 0, 986, 239, 1, 0, 0, 0, 987, 988, 3, 54, 21, 0, 988, 989, 1, 0, 0, 0, 989, 990, 6, 114, 9, 0, 990, 241, 1, 0, 0, 0, 991, 992, 3, 66, 27, 0, 992, 993, 1, 0, 0, 0, 993, 994, 6, 115, 12, 0, 994, 995, 6, 115, 13, 0, 995, 243, 1, 0, 0, 0, 996, 997, 3, 164, 76, 0, 997, 998, 1, 0, 0, 0, 998, 999, 6, 116, 10, 0, 999, 1000, 6, 116, 20, 0, 1000, 245, 1, 0, 0, 0, 1001, 1002, 7, 7, 0, 0, 1002, 1003, 7, 9, 0, 0, 1003, 1004, 1, 0, 0, 0, 1004, 1005, 6, 117, 21, 0, 1005, 247, 1, 0, 0, 0, 1006, 1007, 7, 19, 0, 0, 1007, 1008, 7, 1, 0, 0, 1008, 1009, 7, 5, 0, 0, 1009, 1010, 7, 10, 0, 0, 1010, 1011, 1, 0, 0, 0, 1011, 1012, 6, 118, 21, 0, 1012, 249, 1, 0, 0, 0, 1013, 1014, 8, 34, 0, 0, 1014, 251, 1, 0, 0, 0, 1015, 1017, 3, 250, 119, 0, 1016, 1015, 1, 0, 0, 0, 1017, 1018, 1, 0, 0, 0, 1018, 1016, 1, 0, 0, 0, 1018, 1019, 1, 0, 0, 0, 1019, 1020, 1, 0, 0, 0, 1020, 1021, 3, 320, 154, 0, 1021, 1023, 1, 0, 0, 0, 1022, 1016, 1, 0, 0, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1025, 1, 0, 0, 0, 1024, 1026, 3, 250, 119, 0, 1025, 1024, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 1025, 1, 0, 0, 0, 1027, 1028, 1, 0, 0, 0, 1028, 253, 1, 0, 0, 0, 1029, 1030, 3, 172, 80, 0, 1030, 1031, 1, 0, 0, 0, 1031, 1032, 6, 121, 22, 0, 1032, 255, 1, 0, 0, 0, 1033, 1034, 3, 252, 120, 0, 1034, 1035, 1, 0, 0, 0, 1035, 1036, 6, 122, 23, 0, 1036, 257, 1, 0, 0, 0, 1037, 1038, 3, 50, 19, 0, 1038, 1039, 1, 0, 0, 0, 1039, 1040, 6, 123, 9, 0, 1040, 259, 1, 0, 0, 0, 1041, 1042, 3, 52, 20, 0, 1042, 1043, 1, 0, 0, 0, 1043, 1044, 6, 124, 9, 0, 1044, 261, 1, 0, 0, 0, 1045, 1046, 3, 54, 21, 0, 1046, 1047, 1, 0, 0, 0, 1047, 1048, 6, 125, 9, 0, 1048, 263, 1, 0, 0, 0, 1049, 1050, 3, 66, 27, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1052, 6, 126, 12, 0, 1052, 1053, 6, 126, 13, 0, 1053, 1054, 6, 126, 13, 0, 1054, 265, 1, 0, 0, 0, 1055, 1056, 3, 100, 44, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1058, 6, 127, 16, 0, 1058, 267, 1, 0, 0, 0, 1059, 1060, 3, 104, 46, 0, 1060, 1061, 1, 0, 0, 0, 1061, 1062, 6, 128, 15, 0, 1062, 269, 1, 0, 0, 0, 1063, 1064, 3, 108, 48, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1066, 6, 129, 18, 0, 1066, 271, 1, 0, 0, 0, 1067, 1068, 3, 248, 118, 0, 1068, 1069, 1, 0, 0, 0, 1069, 1070, 6, 130, 24, 0, 1070, 273, 1, 0, 0, 0, 1071, 1072, 3, 216, 102, 0, 1072, 1073, 1, 0, 0, 0, 1073, 1074, 6, 131, 19, 0, 1074, 275, 1, 0, 0, 0, 1075, 1076, 3, 172, 80, 0, 1076, 1077, 1, 0, 0, 0, 1077, 1078, 6, 132, 22, 0, 1078, 277, 1, 0, 0, 0, 1079, 1080, 3, 50, 19, 0, 1080, 1081, 1, 0, 0, 0, 1081, 1082, 6, 133, 9, 0, 1082, 279, 1, 0, 0, 0, 1083, 1084, 3, 52, 20, 0, 1084, 1085, 1, 0, 0, 0, 1085, 1086, 6, 134, 9, 0, 1086, 281, 1, 0, 0, 0, 1087, 1088, 3, 54, 21, 0, 1088, 1089, 1, 0, 0, 0, 1089, 1090, 6, 135, 9, 0, 1090, 283, 1, 0, 0, 0, 1091, 1092, 3, 66, 27, 0, 1092, 1093, 1, 0, 0, 0, 1093, 1094, 6, 136, 12, 0, 1094, 1095, 6, 136, 13, 0, 1095, 285, 1, 0, 0, 0, 1096, 1097, 3, 108, 48, 0, 1097, 1098, 1, 0, 0, 0, 1098, 1099, 6, 137, 18, 0, 1099, 287, 1, 0, 0, 0, 1100, 1101, 3, 172, 80, 0, 1101, 1102, 1, 0, 0, 0, 1102, 1103, 6, 138, 22, 0, 1103, 289, 1, 0, 0, 0, 1104, 1105, 3, 168, 78, 0, 1105, 1106, 1, 0, 0, 0, 1106, 1107, 6, 139, 25, 0, 1107, 291, 1, 0, 0, 0, 1108, 1109, 3, 50, 19, 0, 1109, 1110, 1, 0, 0, 0, 1110, 1111, 6, 140, 9, 0, 1111, 293, 1, 0, 0, 0, 1112, 1113, 3, 52, 20, 0, 1113, 1114, 1, 0, 0, 0, 1114, 1115, 6, 141, 9, 0, 1115, 295, 1, 0, 0, 0, 1116, 1117, 3, 54, 21, 0, 1117, 1118, 1, 0, 0, 0, 1118, 1119, 6, 142, 9, 0, 1119, 297, 1, 0, 0, 0, 1120, 1121, 3, 66, 27, 0, 1121, 1122, 1, 0, 0, 0, 1122, 1123, 6, 143, 12, 0, 1123, 1124, 6, 143, 13, 0, 1124, 299, 1, 0, 0, 0, 1125, 1126, 7, 1, 0, 0, 1126, 1127, 7, 9, 0, 0, 1127, 1128, 7, 15, 0, 0, 1128, 1129, 7, 7, 0, 0, 1129, 301, 1, 0, 0, 0, 1130, 1131, 3, 50, 19, 0, 1131, 1132, 1, 0, 0, 0, 1132, 1133, 6, 145, 9, 0, 1133, 303, 1, 0, 0, 0, 1134, 1135, 3, 52, 20, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 6, 146, 9, 0, 1137, 305, 1, 0, 0, 0, 1138, 1139, 3, 54, 21, 0, 1139, 1140, 1, 0, 0, 0, 1140, 1141, 6, 147, 9, 0, 1141, 307, 1, 0, 0, 0, 1142, 1143, 3, 66, 27, 0, 1143, 1144, 1, 0, 0, 0, 1144, 1145, 6, 148, 12, 0, 1145, 1146, 6, 148, 13, 0, 1146, 309, 1, 0, 0, 0, 1147, 1148, 7, 15, 0, 0, 1148, 1149, 7, 31, 0, 0, 1149, 1150, 7, 9, 0, 0, 1150, 1151, 7, 4, 0, 0, 1151, 1152, 7, 5, 0, 0, 1152, 1153, 7, 1, 0, 0, 1153, 1154, 7, 7, 0, 0, 1154, 1155, 7, 9, 0, 0, 1155, 1156, 7, 2, 0, 0, 1156, 311, 1, 0, 0, 0, 1157, 1158, 3, 50, 19, 0, 1158, 1159, 1, 0, 0, 0, 1159, 1160, 6, 150, 9, 0, 1160, 313, 1, 0, 0, 0, 1161, 1162, 3, 52, 20, 0, 1162, 1163, 1, 0, 0, 0, 1163, 1164, 6, 151, 9, 0, 1164, 315, 1, 0, 0, 0, 1165, 1166, 3, 54, 21, 0, 1166, 1167, 1, 0, 0, 0, 1167, 1168, 6, 152, 9, 0, 1168, 317, 1, 0, 0, 0, 1169, 1170, 3, 166, 77, 0, 1170, 1171, 1, 0, 0, 0, 1171, 1172, 6, 153, 14, 0, 1172, 1173, 6, 153, 13, 0, 1173, 319, 1, 0, 0, 0, 1174, 1175, 5, 58, 0, 0, 1175, 321, 1, 0, 0, 0, 1176, 1182, 3, 78, 33, 0, 1177, 1182, 3, 68, 28, 0, 1178, 1182, 3, 108, 48, 0, 1179, 1182, 3, 70, 29, 0, 1180, 1182, 3, 84, 36, 0, 1181, 1176, 1, 0, 0, 0, 1181, 1177, 1, 0, 0, 0, 1181, 1178, 1, 0, 0, 0, 1181, 1179, 1, 0, 0, 0, 1181, 1180, 1, 0, 0, 0, 1182, 1183, 1, 0, 0, 0, 1183, 1181, 1, 0, 0, 0, 1183, 1184, 1, 0, 0, 0, 1184, 323, 1, 0, 0, 0, 1185, 1186, 3, 50, 19, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1188, 6, 156, 9, 0, 1188, 325, 1, 0, 0, 0, 1189, 1190, 3, 52, 20, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 6, 157, 9, 0, 1192, 327, 1, 0, 0, 0, 1193, 1194, 3, 54, 21, 0, 1194, 1195, 1, 0, 0, 0, 1195, 1196, 6, 158, 9, 0, 1196, 329, 1, 0, 0, 0, 58, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 483, 493, 497, 500, 509, 511, 522, 563, 568, 577, 584, 589, 591, 602, 610, 613, 615, 620, 625, 631, 638, 643, 649, 652, 660, 664, 797, 802, 807, 809, 815, 878, 883, 914, 918, 923, 928, 933, 935, 939, 941, 1018, 1022, 1027, 1181, 1183, 26, 5, 2, 0, 5, 4, 0, 5, 6, 0, 5, 1, 0, 5, 3, 0, 5, 10, 0, 5, 8, 0, 5, 5, 0, 5, 9, 0, 0, 1, 0, 7, 65, 0, 5, 0, 0, 7, 26, 0, 4, 0, 0, 7, 66, 0, 7, 35, 0, 7, 33, 0, 7, 27, 0, 7, 37, 0, 7, 78, 0, 5, 11, 0, 5, 7, 0, 7, 68, 0, 7, 88, 0, 7, 87, 0, 7, 67, 0]
\ No newline at end of file
+[4, 0, 109, 1187, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 4, 18, 480, 8, 18, 11, 18, 12, 18, 481, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 490, 8, 19, 10, 19, 12, 19, 493, 9, 19, 1, 19, 3, 19, 496, 8, 19, 1, 19, 3, 19, 499, 8, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 508, 8, 20, 10, 20, 12, 20, 511, 9, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 4, 21, 519, 8, 21, 11, 21, 12, 21, 520, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 3, 32, 562, 8, 32, 1, 32, 4, 32, 565, 8, 32, 11, 32, 12, 32, 566, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 576, 8, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 3, 37, 583, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 588, 8, 38, 10, 38, 12, 38, 591, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 599, 8, 38, 10, 38, 12, 38, 602, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 609, 8, 38, 1, 38, 3, 38, 612, 8, 38, 3, 38, 614, 8, 38, 1, 39, 4, 39, 617, 8, 39, 11, 39, 12, 39, 618, 1, 40, 4, 40, 622, 8, 40, 11, 40, 12, 40, 623, 1, 40, 1, 40, 5, 40, 628, 8, 40, 10, 40, 12, 40, 631, 9, 40, 1, 40, 1, 40, 4, 40, 635, 8, 40, 11, 40, 12, 40, 636, 1, 40, 4, 40, 640, 8, 40, 11, 40, 12, 40, 641, 1, 40, 1, 40, 5, 40, 646, 8, 40, 10, 40, 12, 40, 649, 9, 40, 3, 40, 651, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 4, 40, 657, 8, 40, 11, 40, 12, 40, 658, 1, 40, 1, 40, 3, 40, 663, 8, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 5, 78, 794, 8, 78, 10, 78, 12, 78, 797, 9, 78, 1, 78, 1, 78, 3, 78, 801, 8, 78, 1, 78, 4, 78, 804, 8, 78, 11, 78, 12, 78, 805, 3, 78, 808, 8, 78, 1, 79, 1, 79, 4, 79, 812, 8, 79, 11, 79, 12, 79, 813, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 3, 91, 869, 8, 91, 1, 92, 4, 92, 872, 8, 92, 11, 92, 12, 92, 873, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 905, 8, 99, 1, 100, 1, 100, 3, 100, 909, 8, 100, 1, 100, 5, 100, 912, 8, 100, 10, 100, 12, 100, 915, 9, 100, 1, 100, 1, 100, 3, 100, 919, 8, 100, 1, 100, 4, 100, 922, 8, 100, 11, 100, 12, 100, 923, 3, 100, 926, 8, 100, 1, 101, 1, 101, 4, 101, 930, 8, 101, 11, 101, 12, 101, 931, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 119, 4, 119, 1007, 8, 119, 11, 119, 12, 119, 1008, 1, 119, 1, 119, 3, 119, 1013, 8, 119, 1, 119, 4, 119, 1016, 8, 119, 11, 119, 12, 119, 1017, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 4, 154, 1172, 8, 154, 11, 154, 12, 154, 1173, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 2, 509, 600, 0, 158, 12, 1, 14, 2, 16, 3, 18, 4, 20, 5, 22, 6, 24, 7, 26, 8, 28, 9, 30, 10, 32, 11, 34, 12, 36, 13, 38, 14, 40, 15, 42, 16, 44, 17, 46, 18, 48, 19, 50, 20, 52, 21, 54, 22, 56, 0, 58, 0, 60, 23, 62, 24, 64, 25, 66, 26, 68, 0, 70, 0, 72, 0, 74, 0, 76, 0, 78, 0, 80, 0, 82, 0, 84, 0, 86, 0, 88, 27, 90, 28, 92, 29, 94, 30, 96, 31, 98, 32, 100, 33, 102, 34, 104, 35, 106, 36, 108, 37, 110, 38, 112, 39, 114, 40, 116, 41, 118, 42, 120, 43, 122, 44, 124, 45, 126, 46, 128, 47, 130, 48, 132, 49, 134, 50, 136, 51, 138, 52, 140, 53, 142, 54, 144, 55, 146, 56, 148, 57, 150, 58, 152, 59, 154, 60, 156, 61, 158, 62, 160, 63, 162, 64, 164, 65, 166, 66, 168, 67, 170, 0, 172, 68, 174, 69, 176, 70, 178, 71, 180, 0, 182, 0, 184, 0, 186, 0, 188, 0, 190, 0, 192, 72, 194, 0, 196, 73, 198, 74, 200, 75, 202, 76, 204, 0, 206, 0, 208, 0, 210, 0, 212, 0, 214, 77, 216, 78, 218, 79, 220, 80, 222, 0, 224, 0, 226, 0, 228, 0, 230, 81, 232, 0, 234, 82, 236, 83, 238, 84, 240, 0, 242, 0, 244, 85, 246, 86, 248, 0, 250, 87, 252, 0, 254, 0, 256, 88, 258, 89, 260, 90, 262, 0, 264, 0, 266, 0, 268, 0, 270, 0, 272, 0, 274, 0, 276, 91, 278, 92, 280, 93, 282, 0, 284, 0, 286, 0, 288, 0, 290, 94, 292, 95, 294, 96, 296, 0, 298, 97, 300, 98, 302, 99, 304, 100, 306, 0, 308, 101, 310, 102, 312, 103, 314, 104, 316, 0, 318, 105, 320, 106, 322, 107, 324, 108, 326, 109, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 35, 2, 0, 68, 68, 100, 100, 2, 0, 73, 73, 105, 105, 2, 0, 83, 83, 115, 115, 2, 0, 69, 69, 101, 101, 2, 0, 67, 67, 99, 99, 2, 0, 84, 84, 116, 116, 2, 0, 82, 82, 114, 114, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 78, 78, 110, 110, 2, 0, 72, 72, 104, 104, 2, 0, 86, 86, 118, 118, 2, 0, 65, 65, 97, 97, 2, 0, 76, 76, 108, 108, 2, 0, 88, 88, 120, 120, 2, 0, 70, 70, 102, 102, 2, 0, 77, 77, 109, 109, 2, 0, 71, 71, 103, 103, 2, 0, 75, 75, 107, 107, 2, 0, 87, 87, 119, 119, 6, 0, 9, 10, 13, 13, 32, 32, 47, 47, 91, 91, 93, 93, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 8, 0, 34, 34, 78, 78, 82, 82, 84, 84, 92, 92, 110, 110, 114, 114, 116, 116, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 2, 0, 43, 43, 45, 45, 1, 0, 96, 96, 2, 0, 66, 66, 98, 98, 2, 0, 89, 89, 121, 121, 2, 0, 85, 85, 117, 117, 10, 0, 9, 10, 13, 13, 32, 32, 44, 44, 47, 47, 61, 61, 91, 91, 93, 93, 96, 96, 124, 124, 2, 0, 42, 42, 47, 47, 11, 0, 9, 10, 13, 13, 32, 32, 34, 35, 44, 44, 47, 47, 58, 58, 60, 60, 62, 63, 92, 92, 124, 124, 1214, 0, 12, 1, 0, 0, 0, 0, 14, 1, 0, 0, 0, 0, 16, 1, 0, 0, 0, 0, 18, 1, 0, 0, 0, 0, 20, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 30, 1, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 36, 1, 0, 0, 0, 0, 38, 1, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 42, 1, 0, 0, 0, 0, 44, 1, 0, 0, 0, 0, 46, 1, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 52, 1, 0, 0, 0, 0, 54, 1, 0, 0, 0, 1, 56, 1, 0, 0, 0, 1, 58, 1, 0, 0, 0, 1, 60, 1, 0, 0, 0, 1, 62, 1, 0, 0, 0, 1, 64, 1, 0, 0, 0, 2, 66, 1, 0, 0, 0, 2, 88, 1, 0, 0, 0, 2, 90, 1, 0, 0, 0, 2, 92, 1, 0, 0, 0, 2, 94, 1, 0, 0, 0, 2, 96, 1, 0, 0, 0, 2, 98, 1, 0, 0, 0, 2, 100, 1, 0, 0, 0, 2, 102, 1, 0, 0, 0, 2, 104, 1, 0, 0, 0, 2, 106, 1, 0, 0, 0, 2, 108, 1, 0, 0, 0, 2, 110, 1, 0, 0, 0, 2, 112, 1, 0, 0, 0, 2, 114, 1, 0, 0, 0, 2, 116, 1, 0, 0, 0, 2, 118, 1, 0, 0, 0, 2, 120, 1, 0, 0, 0, 2, 122, 1, 0, 0, 0, 2, 124, 1, 0, 0, 0, 2, 126, 1, 0, 0, 0, 2, 128, 1, 0, 0, 0, 2, 130, 1, 0, 0, 0, 2, 132, 1, 0, 0, 0, 2, 134, 1, 0, 0, 0, 2, 136, 1, 0, 0, 0, 2, 138, 1, 0, 0, 0, 2, 140, 1, 0, 0, 0, 2, 142, 1, 0, 0, 0, 2, 144, 1, 0, 0, 0, 2, 146, 1, 0, 0, 0, 2, 148, 1, 0, 0, 0, 2, 150, 1, 0, 0, 0, 2, 152, 1, 0, 0, 0, 2, 154, 1, 0, 0, 0, 2, 156, 1, 0, 0, 0, 2, 158, 1, 0, 0, 0, 2, 160, 1, 0, 0, 0, 2, 162, 1, 0, 0, 0, 2, 164, 1, 0, 0, 0, 2, 166, 1, 0, 0, 0, 2, 168, 1, 0, 0, 0, 2, 172, 1, 0, 0, 0, 2, 174, 1, 0, 0, 0, 2, 176, 1, 0, 0, 0, 2, 178, 1, 0, 0, 0, 3, 180, 1, 0, 0, 0, 3, 182, 1, 0, 0, 0, 3, 184, 1, 0, 0, 0, 3, 186, 1, 0, 0, 0, 3, 188, 1, 0, 0, 0, 3, 190, 1, 0, 0, 0, 3, 192, 1, 0, 0, 0, 3, 196, 1, 0, 0, 0, 3, 198, 1, 0, 0, 0, 3, 200, 1, 0, 0, 0, 3, 202, 1, 0, 0, 0, 4, 204, 1, 0, 0, 0, 4, 206, 1, 0, 0, 0, 4, 208, 1, 0, 0, 0, 4, 214, 1, 0, 0, 0, 4, 216, 1, 0, 0, 0, 4, 218, 1, 0, 0, 0, 4, 220, 1, 0, 0, 0, 5, 222, 1, 0, 0, 0, 5, 224, 1, 0, 0, 0, 5, 226, 1, 0, 0, 0, 5, 228, 1, 0, 0, 0, 5, 230, 1, 0, 0, 0, 5, 232, 1, 0, 0, 0, 5, 234, 1, 0, 0, 0, 5, 236, 1, 0, 0, 0, 5, 238, 1, 0, 0, 0, 6, 240, 1, 0, 0, 0, 6, 242, 1, 0, 0, 0, 6, 244, 1, 0, 0, 0, 6, 246, 1, 0, 0, 0, 6, 250, 1, 0, 0, 0, 6, 252, 1, 0, 0, 0, 6, 254, 1, 0, 0, 0, 6, 256, 1, 0, 0, 0, 6, 258, 1, 0, 0, 0, 6, 260, 1, 0, 0, 0, 7, 262, 1, 0, 0, 0, 7, 264, 1, 0, 0, 0, 7, 266, 1, 0, 0, 0, 7, 268, 1, 0, 0, 0, 7, 270, 1, 0, 0, 0, 7, 272, 1, 0, 0, 0, 7, 274, 1, 0, 0, 0, 7, 276, 1, 0, 0, 0, 7, 278, 1, 0, 0, 0, 7, 280, 1, 0, 0, 0, 8, 282, 1, 0, 0, 0, 8, 284, 1, 0, 0, 0, 8, 286, 1, 0, 0, 0, 8, 288, 1, 0, 0, 0, 8, 290, 1, 0, 0, 0, 8, 292, 1, 0, 0, 0, 8, 294, 1, 0, 0, 0, 9, 296, 1, 0, 0, 0, 9, 298, 1, 0, 0, 0, 9, 300, 1, 0, 0, 0, 9, 302, 1, 0, 0, 0, 9, 304, 1, 0, 0, 0, 10, 306, 1, 0, 0, 0, 10, 308, 1, 0, 0, 0, 10, 310, 1, 0, 0, 0, 10, 312, 1, 0, 0, 0, 10, 314, 1, 0, 0, 0, 11, 316, 1, 0, 0, 0, 11, 318, 1, 0, 0, 0, 11, 320, 1, 0, 0, 0, 11, 322, 1, 0, 0, 0, 11, 324, 1, 0, 0, 0, 11, 326, 1, 0, 0, 0, 12, 328, 1, 0, 0, 0, 14, 338, 1, 0, 0, 0, 16, 345, 1, 0, 0, 0, 18, 354, 1, 0, 0, 0, 20, 361, 1, 0, 0, 0, 22, 371, 1, 0, 0, 0, 24, 378, 1, 0, 0, 0, 26, 385, 1, 0, 0, 0, 28, 399, 1, 0, 0, 0, 30, 406, 1, 0, 0, 0, 32, 414, 1, 0, 0, 0, 34, 421, 1, 0, 0, 0, 36, 433, 1, 0, 0, 0, 38, 442, 1, 0, 0, 0, 40, 448, 1, 0, 0, 0, 42, 455, 1, 0, 0, 0, 44, 462, 1, 0, 0, 0, 46, 470, 1, 0, 0, 0, 48, 479, 1, 0, 0, 0, 50, 485, 1, 0, 0, 0, 52, 502, 1, 0, 0, 0, 54, 518, 1, 0, 0, 0, 56, 524, 1, 0, 0, 0, 58, 529, 1, 0, 0, 0, 60, 534, 1, 0, 0, 0, 62, 538, 1, 0, 0, 0, 64, 542, 1, 0, 0, 0, 66, 546, 1, 0, 0, 0, 68, 550, 1, 0, 0, 0, 70, 552, 1, 0, 0, 0, 72, 554, 1, 0, 0, 0, 74, 557, 1, 0, 0, 0, 76, 559, 1, 0, 0, 0, 78, 568, 1, 0, 0, 0, 80, 570, 1, 0, 0, 0, 82, 575, 1, 0, 0, 0, 84, 577, 1, 0, 0, 0, 86, 582, 1, 0, 0, 0, 88, 613, 1, 0, 0, 0, 90, 616, 1, 0, 0, 0, 92, 662, 1, 0, 0, 0, 94, 664, 1, 0, 0, 0, 96, 667, 1, 0, 0, 0, 98, 671, 1, 0, 0, 0, 100, 675, 1, 0, 0, 0, 102, 677, 1, 0, 0, 0, 104, 680, 1, 0, 0, 0, 106, 682, 1, 0, 0, 0, 108, 687, 1, 0, 0, 0, 110, 689, 1, 0, 0, 0, 112, 695, 1, 0, 0, 0, 114, 701, 1, 0, 0, 0, 116, 706, 1, 0, 0, 0, 118, 708, 1, 0, 0, 0, 120, 711, 1, 0, 0, 0, 122, 714, 1, 0, 0, 0, 124, 719, 1, 0, 0, 0, 126, 723, 1, 0, 0, 0, 128, 728, 1, 0, 0, 0, 130, 734, 1, 0, 0, 0, 132, 737, 1, 0, 0, 0, 134, 739, 1, 0, 0, 0, 136, 745, 1, 0, 0, 0, 138, 747, 1, 0, 0, 0, 140, 752, 1, 0, 0, 0, 142, 755, 1, 0, 0, 0, 144, 758, 1, 0, 0, 0, 146, 761, 1, 0, 0, 0, 148, 763, 1, 0, 0, 0, 150, 766, 1, 0, 0, 0, 152, 768, 1, 0, 0, 0, 154, 771, 1, 0, 0, 0, 156, 773, 1, 0, 0, 0, 158, 775, 1, 0, 0, 0, 160, 777, 1, 0, 0, 0, 162, 779, 1, 0, 0, 0, 164, 781, 1, 0, 0, 0, 166, 786, 1, 0, 0, 0, 168, 807, 1, 0, 0, 0, 170, 809, 1, 0, 0, 0, 172, 817, 1, 0, 0, 0, 174, 819, 1, 0, 0, 0, 176, 823, 1, 0, 0, 0, 178, 827, 1, 0, 0, 0, 180, 831, 1, 0, 0, 0, 182, 836, 1, 0, 0, 0, 184, 840, 1, 0, 0, 0, 186, 844, 1, 0, 0, 0, 188, 848, 1, 0, 0, 0, 190, 852, 1, 0, 0, 0, 192, 856, 1, 0, 0, 0, 194, 868, 1, 0, 0, 0, 196, 871, 1, 0, 0, 0, 198, 875, 1, 0, 0, 0, 200, 879, 1, 0, 0, 0, 202, 883, 1, 0, 0, 0, 204, 887, 1, 0, 0, 0, 206, 892, 1, 0, 0, 0, 208, 896, 1, 0, 0, 0, 210, 904, 1, 0, 0, 0, 212, 925, 1, 0, 0, 0, 214, 929, 1, 0, 0, 0, 216, 933, 1, 0, 0, 0, 218, 937, 1, 0, 0, 0, 220, 941, 1, 0, 0, 0, 222, 945, 1, 0, 0, 0, 224, 950, 1, 0, 0, 0, 226, 954, 1, 0, 0, 0, 228, 958, 1, 0, 0, 0, 230, 962, 1, 0, 0, 0, 232, 965, 1, 0, 0, 0, 234, 969, 1, 0, 0, 0, 236, 973, 1, 0, 0, 0, 238, 977, 1, 0, 0, 0, 240, 981, 1, 0, 0, 0, 242, 986, 1, 0, 0, 0, 244, 991, 1, 0, 0, 0, 246, 996, 1, 0, 0, 0, 248, 1003, 1, 0, 0, 0, 250, 1012, 1, 0, 0, 0, 252, 1019, 1, 0, 0, 0, 254, 1023, 1, 0, 0, 0, 256, 1027, 1, 0, 0, 0, 258, 1031, 1, 0, 0, 0, 260, 1035, 1, 0, 0, 0, 262, 1039, 1, 0, 0, 0, 264, 1045, 1, 0, 0, 0, 266, 1049, 1, 0, 0, 0, 268, 1053, 1, 0, 0, 0, 270, 1057, 1, 0, 0, 0, 272, 1061, 1, 0, 0, 0, 274, 1065, 1, 0, 0, 0, 276, 1069, 1, 0, 0, 0, 278, 1073, 1, 0, 0, 0, 280, 1077, 1, 0, 0, 0, 282, 1081, 1, 0, 0, 0, 284, 1086, 1, 0, 0, 0, 286, 1090, 1, 0, 0, 0, 288, 1094, 1, 0, 0, 0, 290, 1098, 1, 0, 0, 0, 292, 1102, 1, 0, 0, 0, 294, 1106, 1, 0, 0, 0, 296, 1110, 1, 0, 0, 0, 298, 1115, 1, 0, 0, 0, 300, 1120, 1, 0, 0, 0, 302, 1124, 1, 0, 0, 0, 304, 1128, 1, 0, 0, 0, 306, 1132, 1, 0, 0, 0, 308, 1137, 1, 0, 0, 0, 310, 1147, 1, 0, 0, 0, 312, 1151, 1, 0, 0, 0, 314, 1155, 1, 0, 0, 0, 316, 1159, 1, 0, 0, 0, 318, 1164, 1, 0, 0, 0, 320, 1171, 1, 0, 0, 0, 322, 1175, 1, 0, 0, 0, 324, 1179, 1, 0, 0, 0, 326, 1183, 1, 0, 0, 0, 328, 329, 7, 0, 0, 0, 329, 330, 7, 1, 0, 0, 330, 331, 7, 2, 0, 0, 331, 332, 7, 2, 0, 0, 332, 333, 7, 3, 0, 0, 333, 334, 7, 4, 0, 0, 334, 335, 7, 5, 0, 0, 335, 336, 1, 0, 0, 0, 336, 337, 6, 0, 0, 0, 337, 13, 1, 0, 0, 0, 338, 339, 7, 0, 0, 0, 339, 340, 7, 6, 0, 0, 340, 341, 7, 7, 0, 0, 341, 342, 7, 8, 0, 0, 342, 343, 1, 0, 0, 0, 343, 344, 6, 1, 1, 0, 344, 15, 1, 0, 0, 0, 345, 346, 7, 3, 0, 0, 346, 347, 7, 9, 0, 0, 347, 348, 7, 6, 0, 0, 348, 349, 7, 1, 0, 0, 349, 350, 7, 4, 0, 0, 350, 351, 7, 10, 0, 0, 351, 352, 1, 0, 0, 0, 352, 353, 6, 2, 2, 0, 353, 17, 1, 0, 0, 0, 354, 355, 7, 3, 0, 0, 355, 356, 7, 11, 0, 0, 356, 357, 7, 12, 0, 0, 357, 358, 7, 13, 0, 0, 358, 359, 1, 0, 0, 0, 359, 360, 6, 3, 0, 0, 360, 19, 1, 0, 0, 0, 361, 362, 7, 3, 0, 0, 362, 363, 7, 14, 0, 0, 363, 364, 7, 8, 0, 0, 364, 365, 7, 13, 0, 0, 365, 366, 7, 12, 0, 0, 366, 367, 7, 1, 0, 0, 367, 368, 7, 9, 0, 0, 368, 369, 1, 0, 0, 0, 369, 370, 6, 4, 3, 0, 370, 21, 1, 0, 0, 0, 371, 372, 7, 15, 0, 0, 372, 373, 7, 6, 0, 0, 373, 374, 7, 7, 0, 0, 374, 375, 7, 16, 0, 0, 375, 376, 1, 0, 0, 0, 376, 377, 6, 5, 4, 0, 377, 23, 1, 0, 0, 0, 378, 379, 7, 17, 0, 0, 379, 380, 7, 6, 0, 0, 380, 381, 7, 7, 0, 0, 381, 382, 7, 18, 0, 0, 382, 383, 1, 0, 0, 0, 383, 384, 6, 6, 0, 0, 384, 25, 1, 0, 0, 0, 385, 386, 7, 1, 0, 0, 386, 387, 7, 9, 0, 0, 387, 388, 7, 13, 0, 0, 388, 389, 7, 1, 0, 0, 389, 390, 7, 9, 0, 0, 390, 391, 7, 3, 0, 0, 391, 392, 7, 2, 0, 0, 392, 393, 7, 5, 0, 0, 393, 394, 7, 12, 0, 0, 394, 395, 7, 5, 0, 0, 395, 396, 7, 2, 0, 0, 396, 397, 1, 0, 0, 0, 397, 398, 6, 7, 0, 0, 398, 27, 1, 0, 0, 0, 399, 400, 7, 18, 0, 0, 400, 401, 7, 3, 0, 0, 401, 402, 7, 3, 0, 0, 402, 403, 7, 8, 0, 0, 403, 404, 1, 0, 0, 0, 404, 405, 6, 8, 1, 0, 405, 29, 1, 0, 0, 0, 406, 407, 7, 13, 0, 0, 407, 408, 7, 1, 0, 0, 408, 409, 7, 16, 0, 0, 409, 410, 7, 1, 0, 0, 410, 411, 7, 5, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 6, 9, 0, 0, 413, 31, 1, 0, 0, 0, 414, 415, 7, 16, 0, 0, 415, 416, 7, 3, 0, 0, 416, 417, 7, 5, 0, 0, 417, 418, 7, 12, 0, 0, 418, 419, 1, 0, 0, 0, 419, 420, 6, 10, 5, 0, 420, 33, 1, 0, 0, 0, 421, 422, 7, 16, 0, 0, 422, 423, 7, 11, 0, 0, 423, 424, 5, 95, 0, 0, 424, 425, 7, 3, 0, 0, 425, 426, 7, 14, 0, 0, 426, 427, 7, 8, 0, 0, 427, 428, 7, 12, 0, 0, 428, 429, 7, 9, 0, 0, 429, 430, 7, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 432, 6, 11, 6, 0, 432, 35, 1, 0, 0, 0, 433, 434, 7, 6, 0, 0, 434, 435, 7, 3, 0, 0, 435, 436, 7, 9, 0, 0, 436, 437, 7, 12, 0, 0, 437, 438, 7, 16, 0, 0, 438, 439, 7, 3, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 6, 12, 7, 0, 441, 37, 1, 0, 0, 0, 442, 443, 7, 6, 0, 0, 443, 444, 7, 7, 0, 0, 444, 445, 7, 19, 0, 0, 445, 446, 1, 0, 0, 0, 446, 447, 6, 13, 0, 0, 447, 39, 1, 0, 0, 0, 448, 449, 7, 2, 0, 0, 449, 450, 7, 10, 0, 0, 450, 451, 7, 7, 0, 0, 451, 452, 7, 19, 0, 0, 452, 453, 1, 0, 0, 0, 453, 454, 6, 14, 8, 0, 454, 41, 1, 0, 0, 0, 455, 456, 7, 2, 0, 0, 456, 457, 7, 7, 0, 0, 457, 458, 7, 6, 0, 0, 458, 459, 7, 5, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 6, 15, 0, 0, 461, 43, 1, 0, 0, 0, 462, 463, 7, 2, 0, 0, 463, 464, 7, 5, 0, 0, 464, 465, 7, 12, 0, 0, 465, 466, 7, 5, 0, 0, 466, 467, 7, 2, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469, 6, 16, 0, 0, 469, 45, 1, 0, 0, 0, 470, 471, 7, 19, 0, 0, 471, 472, 7, 10, 0, 0, 472, 473, 7, 3, 0, 0, 473, 474, 7, 6, 0, 0, 474, 475, 7, 3, 0, 0, 475, 476, 1, 0, 0, 0, 476, 477, 6, 17, 0, 0, 477, 47, 1, 0, 0, 0, 478, 480, 8, 20, 0, 0, 479, 478, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 484, 6, 18, 0, 0, 484, 49, 1, 0, 0, 0, 485, 486, 5, 47, 0, 0, 486, 487, 5, 47, 0, 0, 487, 491, 1, 0, 0, 0, 488, 490, 8, 21, 0, 0, 489, 488, 1, 0, 0, 0, 490, 493, 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 494, 496, 5, 13, 0, 0, 495, 494, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 498, 1, 0, 0, 0, 497, 499, 5, 10, 0, 0, 498, 497, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 501, 6, 19, 9, 0, 501, 51, 1, 0, 0, 0, 502, 503, 5, 47, 0, 0, 503, 504, 5, 42, 0, 0, 504, 509, 1, 0, 0, 0, 505, 508, 3, 52, 20, 0, 506, 508, 9, 0, 0, 0, 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 511, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0, 510, 512, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 512, 513, 5, 42, 0, 0, 513, 514, 5, 47, 0, 0, 514, 515, 1, 0, 0, 0, 515, 516, 6, 20, 9, 0, 516, 53, 1, 0, 0, 0, 517, 519, 7, 22, 0, 0, 518, 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 518, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 523, 6, 21, 9, 0, 523, 55, 1, 0, 0, 0, 524, 525, 3, 164, 76, 0, 525, 526, 1, 0, 0, 0, 526, 527, 6, 22, 10, 0, 527, 528, 6, 22, 11, 0, 528, 57, 1, 0, 0, 0, 529, 530, 3, 66, 27, 0, 530, 531, 1, 0, 0, 0, 531, 532, 6, 23, 12, 0, 532, 533, 6, 23, 13, 0, 533, 59, 1, 0, 0, 0, 534, 535, 3, 54, 21, 0, 535, 536, 1, 0, 0, 0, 536, 537, 6, 24, 9, 0, 537, 61, 1, 0, 0, 0, 538, 539, 3, 50, 19, 0, 539, 540, 1, 0, 0, 0, 540, 541, 6, 25, 9, 0, 541, 63, 1, 0, 0, 0, 542, 543, 3, 52, 20, 0, 543, 544, 1, 0, 0, 0, 544, 545, 6, 26, 9, 0, 545, 65, 1, 0, 0, 0, 546, 547, 5, 124, 0, 0, 547, 548, 1, 0, 0, 0, 548, 549, 6, 27, 13, 0, 549, 67, 1, 0, 0, 0, 550, 551, 7, 23, 0, 0, 551, 69, 1, 0, 0, 0, 552, 553, 7, 24, 0, 0, 553, 71, 1, 0, 0, 0, 554, 555, 5, 92, 0, 0, 555, 556, 7, 25, 0, 0, 556, 73, 1, 0, 0, 0, 557, 558, 8, 26, 0, 0, 558, 75, 1, 0, 0, 0, 559, 561, 7, 3, 0, 0, 560, 562, 7, 27, 0, 0, 561, 560, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 564, 1, 0, 0, 0, 563, 565, 3, 68, 28, 0, 564, 563, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 567, 1, 0, 0, 0, 567, 77, 1, 0, 0, 0, 568, 569, 5, 64, 0, 0, 569, 79, 1, 0, 0, 0, 570, 571, 5, 96, 0, 0, 571, 81, 1, 0, 0, 0, 572, 576, 8, 28, 0, 0, 573, 574, 5, 96, 0, 0, 574, 576, 5, 96, 0, 0, 575, 572, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 576, 83, 1, 0, 0, 0, 577, 578, 5, 95, 0, 0, 578, 85, 1, 0, 0, 0, 579, 583, 3, 70, 29, 0, 580, 583, 3, 68, 28, 0, 581, 583, 3, 84, 36, 0, 582, 579, 1, 0, 0, 0, 582, 580, 1, 0, 0, 0, 582, 581, 1, 0, 0, 0, 583, 87, 1, 0, 0, 0, 584, 589, 5, 34, 0, 0, 585, 588, 3, 72, 30, 0, 586, 588, 3, 74, 31, 0, 587, 585, 1, 0, 0, 0, 587, 586, 1, 0, 0, 0, 588, 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 592, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 592, 614, 5, 34, 0, 0, 593, 594, 5, 34, 0, 0, 594, 595, 5, 34, 0, 0, 595, 596, 5, 34, 0, 0, 596, 600, 1, 0, 0, 0, 597, 599, 8, 21, 0, 0, 598, 597, 1, 0, 0, 0, 599, 602, 1, 0, 0, 0, 600, 601, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 601, 603, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 603, 604, 5, 34, 0, 0, 604, 605, 5, 34, 0, 0, 605, 606, 5, 34, 0, 0, 606, 608, 1, 0, 0, 0, 607, 609, 5, 34, 0, 0, 608, 607, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 611, 1, 0, 0, 0, 610, 612, 5, 34, 0, 0, 611, 610, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 614, 1, 0, 0, 0, 613, 584, 1, 0, 0, 0, 613, 593, 1, 0, 0, 0, 614, 89, 1, 0, 0, 0, 615, 617, 3, 68, 28, 0, 616, 615, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 91, 1, 0, 0, 0, 620, 622, 3, 68, 28, 0, 621, 620, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 621, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 629, 3, 108, 48, 0, 626, 628, 3, 68, 28, 0, 627, 626, 1, 0, 0, 0, 628, 631, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 663, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 632, 634, 3, 108, 48, 0, 633, 635, 3, 68, 28, 0, 634, 633, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 663, 1, 0, 0, 0, 638, 640, 3, 68, 28, 0, 639, 638, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 650, 1, 0, 0, 0, 643, 647, 3, 108, 48, 0, 644, 646, 3, 68, 28, 0, 645, 644, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 650, 643, 1, 0, 0, 0, 650, 651, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 653, 3, 76, 32, 0, 653, 663, 1, 0, 0, 0, 654, 656, 3, 108, 48, 0, 655, 657, 3, 68, 28, 0, 656, 655, 1, 0, 0, 0, 657, 658, 1, 0, 0, 0, 658, 656, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660, 661, 3, 76, 32, 0, 661, 663, 1, 0, 0, 0, 662, 621, 1, 0, 0, 0, 662, 632, 1, 0, 0, 0, 662, 639, 1, 0, 0, 0, 662, 654, 1, 0, 0, 0, 663, 93, 1, 0, 0, 0, 664, 665, 7, 29, 0, 0, 665, 666, 7, 30, 0, 0, 666, 95, 1, 0, 0, 0, 667, 668, 7, 12, 0, 0, 668, 669, 7, 9, 0, 0, 669, 670, 7, 0, 0, 0, 670, 97, 1, 0, 0, 0, 671, 672, 7, 12, 0, 0, 672, 673, 7, 2, 0, 0, 673, 674, 7, 4, 0, 0, 674, 99, 1, 0, 0, 0, 675, 676, 5, 61, 0, 0, 676, 101, 1, 0, 0, 0, 677, 678, 5, 58, 0, 0, 678, 679, 5, 58, 0, 0, 679, 103, 1, 0, 0, 0, 680, 681, 5, 44, 0, 0, 681, 105, 1, 0, 0, 0, 682, 683, 7, 0, 0, 0, 683, 684, 7, 3, 0, 0, 684, 685, 7, 2, 0, 0, 685, 686, 7, 4, 0, 0, 686, 107, 1, 0, 0, 0, 687, 688, 5, 46, 0, 0, 688, 109, 1, 0, 0, 0, 689, 690, 7, 15, 0, 0, 690, 691, 7, 12, 0, 0, 691, 692, 7, 13, 0, 0, 692, 693, 7, 2, 0, 0, 693, 694, 7, 3, 0, 0, 694, 111, 1, 0, 0, 0, 695, 696, 7, 15, 0, 0, 696, 697, 7, 1, 0, 0, 697, 698, 7, 6, 0, 0, 698, 699, 7, 2, 0, 0, 699, 700, 7, 5, 0, 0, 700, 113, 1, 0, 0, 0, 701, 702, 7, 13, 0, 0, 702, 703, 7, 12, 0, 0, 703, 704, 7, 2, 0, 0, 704, 705, 7, 5, 0, 0, 705, 115, 1, 0, 0, 0, 706, 707, 5, 40, 0, 0, 707, 117, 1, 0, 0, 0, 708, 709, 7, 1, 0, 0, 709, 710, 7, 9, 0, 0, 710, 119, 1, 0, 0, 0, 711, 712, 7, 1, 0, 0, 712, 713, 7, 2, 0, 0, 713, 121, 1, 0, 0, 0, 714, 715, 7, 13, 0, 0, 715, 716, 7, 1, 0, 0, 716, 717, 7, 18, 0, 0, 717, 718, 7, 3, 0, 0, 718, 123, 1, 0, 0, 0, 719, 720, 7, 9, 0, 0, 720, 721, 7, 7, 0, 0, 721, 722, 7, 5, 0, 0, 722, 125, 1, 0, 0, 0, 723, 724, 7, 9, 0, 0, 724, 725, 7, 31, 0, 0, 725, 726, 7, 13, 0, 0, 726, 727, 7, 13, 0, 0, 727, 127, 1, 0, 0, 0, 728, 729, 7, 9, 0, 0, 729, 730, 7, 31, 0, 0, 730, 731, 7, 13, 0, 0, 731, 732, 7, 13, 0, 0, 732, 733, 7, 2, 0, 0, 733, 129, 1, 0, 0, 0, 734, 735, 7, 7, 0, 0, 735, 736, 7, 6, 0, 0, 736, 131, 1, 0, 0, 0, 737, 738, 5, 63, 0, 0, 738, 133, 1, 0, 0, 0, 739, 740, 7, 6, 0, 0, 740, 741, 7, 13, 0, 0, 741, 742, 7, 1, 0, 0, 742, 743, 7, 18, 0, 0, 743, 744, 7, 3, 0, 0, 744, 135, 1, 0, 0, 0, 745, 746, 5, 41, 0, 0, 746, 137, 1, 0, 0, 0, 747, 748, 7, 5, 0, 0, 748, 749, 7, 6, 0, 0, 749, 750, 7, 31, 0, 0, 750, 751, 7, 3, 0, 0, 751, 139, 1, 0, 0, 0, 752, 753, 5, 61, 0, 0, 753, 754, 5, 61, 0, 0, 754, 141, 1, 0, 0, 0, 755, 756, 5, 61, 0, 0, 756, 757, 5, 126, 0, 0, 757, 143, 1, 0, 0, 0, 758, 759, 5, 33, 0, 0, 759, 760, 5, 61, 0, 0, 760, 145, 1, 0, 0, 0, 761, 762, 5, 60, 0, 0, 762, 147, 1, 0, 0, 0, 763, 764, 5, 60, 0, 0, 764, 765, 5, 61, 0, 0, 765, 149, 1, 0, 0, 0, 766, 767, 5, 62, 0, 0, 767, 151, 1, 0, 0, 0, 768, 769, 5, 62, 0, 0, 769, 770, 5, 61, 0, 0, 770, 153, 1, 0, 0, 0, 771, 772, 5, 43, 0, 0, 772, 155, 1, 0, 0, 0, 773, 774, 5, 45, 0, 0, 774, 157, 1, 0, 0, 0, 775, 776, 5, 42, 0, 0, 776, 159, 1, 0, 0, 0, 777, 778, 5, 47, 0, 0, 778, 161, 1, 0, 0, 0, 779, 780, 5, 37, 0, 0, 780, 163, 1, 0, 0, 0, 781, 782, 5, 91, 0, 0, 782, 783, 1, 0, 0, 0, 783, 784, 6, 76, 0, 0, 784, 785, 6, 76, 0, 0, 785, 165, 1, 0, 0, 0, 786, 787, 5, 93, 0, 0, 787, 788, 1, 0, 0, 0, 788, 789, 6, 77, 13, 0, 789, 790, 6, 77, 13, 0, 790, 167, 1, 0, 0, 0, 791, 795, 3, 70, 29, 0, 792, 794, 3, 86, 37, 0, 793, 792, 1, 0, 0, 0, 794, 797, 1, 0, 0, 0, 795, 793, 1, 0, 0, 0, 795, 796, 1, 0, 0, 0, 796, 808, 1, 0, 0, 0, 797, 795, 1, 0, 0, 0, 798, 801, 3, 84, 36, 0, 799, 801, 3, 78, 33, 0, 800, 798, 1, 0, 0, 0, 800, 799, 1, 0, 0, 0, 801, 803, 1, 0, 0, 0, 802, 804, 3, 86, 37, 0, 803, 802, 1, 0, 0, 0, 804, 805, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 805, 806, 1, 0, 0, 0, 806, 808, 1, 0, 0, 0, 807, 791, 1, 0, 0, 0, 807, 800, 1, 0, 0, 0, 808, 169, 1, 0, 0, 0, 809, 811, 3, 80, 34, 0, 810, 812, 3, 82, 35, 0, 811, 810, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 811, 1, 0, 0, 0, 813, 814, 1, 0, 0, 0, 814, 815, 1, 0, 0, 0, 815, 816, 3, 80, 34, 0, 816, 171, 1, 0, 0, 0, 817, 818, 3, 170, 79, 0, 818, 173, 1, 0, 0, 0, 819, 820, 3, 50, 19, 0, 820, 821, 1, 0, 0, 0, 821, 822, 6, 81, 9, 0, 822, 175, 1, 0, 0, 0, 823, 824, 3, 52, 20, 0, 824, 825, 1, 0, 0, 0, 825, 826, 6, 82, 9, 0, 826, 177, 1, 0, 0, 0, 827, 828, 3, 54, 21, 0, 828, 829, 1, 0, 0, 0, 829, 830, 6, 83, 9, 0, 830, 179, 1, 0, 0, 0, 831, 832, 3, 66, 27, 0, 832, 833, 1, 0, 0, 0, 833, 834, 6, 84, 12, 0, 834, 835, 6, 84, 13, 0, 835, 181, 1, 0, 0, 0, 836, 837, 3, 164, 76, 0, 837, 838, 1, 0, 0, 0, 838, 839, 6, 85, 10, 0, 839, 183, 1, 0, 0, 0, 840, 841, 3, 166, 77, 0, 841, 842, 1, 0, 0, 0, 842, 843, 6, 86, 14, 0, 843, 185, 1, 0, 0, 0, 844, 845, 3, 104, 46, 0, 845, 846, 1, 0, 0, 0, 846, 847, 6, 87, 15, 0, 847, 187, 1, 0, 0, 0, 848, 849, 3, 100, 44, 0, 849, 850, 1, 0, 0, 0, 850, 851, 6, 88, 16, 0, 851, 189, 1, 0, 0, 0, 852, 853, 3, 88, 38, 0, 853, 854, 1, 0, 0, 0, 854, 855, 6, 89, 17, 0, 855, 191, 1, 0, 0, 0, 856, 857, 7, 16, 0, 0, 857, 858, 7, 3, 0, 0, 858, 859, 7, 5, 0, 0, 859, 860, 7, 12, 0, 0, 860, 861, 7, 0, 0, 0, 861, 862, 7, 12, 0, 0, 862, 863, 7, 5, 0, 0, 863, 864, 7, 12, 0, 0, 864, 193, 1, 0, 0, 0, 865, 869, 8, 32, 0, 0, 866, 867, 5, 47, 0, 0, 867, 869, 8, 33, 0, 0, 868, 865, 1, 0, 0, 0, 868, 866, 1, 0, 0, 0, 869, 195, 1, 0, 0, 0, 870, 872, 3, 194, 91, 0, 871, 870, 1, 0, 0, 0, 872, 873, 1, 0, 0, 0, 873, 871, 1, 0, 0, 0, 873, 874, 1, 0, 0, 0, 874, 197, 1, 0, 0, 0, 875, 876, 3, 50, 19, 0, 876, 877, 1, 0, 0, 0, 877, 878, 6, 93, 9, 0, 878, 199, 1, 0, 0, 0, 879, 880, 3, 52, 20, 0, 880, 881, 1, 0, 0, 0, 881, 882, 6, 94, 9, 0, 882, 201, 1, 0, 0, 0, 883, 884, 3, 54, 21, 0, 884, 885, 1, 0, 0, 0, 885, 886, 6, 95, 9, 0, 886, 203, 1, 0, 0, 0, 887, 888, 3, 66, 27, 0, 888, 889, 1, 0, 0, 0, 889, 890, 6, 96, 12, 0, 890, 891, 6, 96, 13, 0, 891, 205, 1, 0, 0, 0, 892, 893, 3, 108, 48, 0, 893, 894, 1, 0, 0, 0, 894, 895, 6, 97, 18, 0, 895, 207, 1, 0, 0, 0, 896, 897, 3, 104, 46, 0, 897, 898, 1, 0, 0, 0, 898, 899, 6, 98, 15, 0, 899, 209, 1, 0, 0, 0, 900, 905, 3, 70, 29, 0, 901, 905, 3, 68, 28, 0, 902, 905, 3, 84, 36, 0, 903, 905, 3, 158, 73, 0, 904, 900, 1, 0, 0, 0, 904, 901, 1, 0, 0, 0, 904, 902, 1, 0, 0, 0, 904, 903, 1, 0, 0, 0, 905, 211, 1, 0, 0, 0, 906, 909, 3, 70, 29, 0, 907, 909, 3, 158, 73, 0, 908, 906, 1, 0, 0, 0, 908, 907, 1, 0, 0, 0, 909, 913, 1, 0, 0, 0, 910, 912, 3, 210, 99, 0, 911, 910, 1, 0, 0, 0, 912, 915, 1, 0, 0, 0, 913, 911, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 926, 1, 0, 0, 0, 915, 913, 1, 0, 0, 0, 916, 919, 3, 84, 36, 0, 917, 919, 3, 78, 33, 0, 918, 916, 1, 0, 0, 0, 918, 917, 1, 0, 0, 0, 919, 921, 1, 0, 0, 0, 920, 922, 3, 210, 99, 0, 921, 920, 1, 0, 0, 0, 922, 923, 1, 0, 0, 0, 923, 921, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 926, 1, 0, 0, 0, 925, 908, 1, 0, 0, 0, 925, 918, 1, 0, 0, 0, 926, 213, 1, 0, 0, 0, 927, 930, 3, 212, 100, 0, 928, 930, 3, 170, 79, 0, 929, 927, 1, 0, 0, 0, 929, 928, 1, 0, 0, 0, 930, 931, 1, 0, 0, 0, 931, 929, 1, 0, 0, 0, 931, 932, 1, 0, 0, 0, 932, 215, 1, 0, 0, 0, 933, 934, 3, 50, 19, 0, 934, 935, 1, 0, 0, 0, 935, 936, 6, 102, 9, 0, 936, 217, 1, 0, 0, 0, 937, 938, 3, 52, 20, 0, 938, 939, 1, 0, 0, 0, 939, 940, 6, 103, 9, 0, 940, 219, 1, 0, 0, 0, 941, 942, 3, 54, 21, 0, 942, 943, 1, 0, 0, 0, 943, 944, 6, 104, 9, 0, 944, 221, 1, 0, 0, 0, 945, 946, 3, 66, 27, 0, 946, 947, 1, 0, 0, 0, 947, 948, 6, 105, 12, 0, 948, 949, 6, 105, 13, 0, 949, 223, 1, 0, 0, 0, 950, 951, 3, 100, 44, 0, 951, 952, 1, 0, 0, 0, 952, 953, 6, 106, 16, 0, 953, 225, 1, 0, 0, 0, 954, 955, 3, 104, 46, 0, 955, 956, 1, 0, 0, 0, 956, 957, 6, 107, 15, 0, 957, 227, 1, 0, 0, 0, 958, 959, 3, 108, 48, 0, 959, 960, 1, 0, 0, 0, 960, 961, 6, 108, 18, 0, 961, 229, 1, 0, 0, 0, 962, 963, 7, 12, 0, 0, 963, 964, 7, 2, 0, 0, 964, 231, 1, 0, 0, 0, 965, 966, 3, 214, 101, 0, 966, 967, 1, 0, 0, 0, 967, 968, 6, 110, 19, 0, 968, 233, 1, 0, 0, 0, 969, 970, 3, 50, 19, 0, 970, 971, 1, 0, 0, 0, 971, 972, 6, 111, 9, 0, 972, 235, 1, 0, 0, 0, 973, 974, 3, 52, 20, 0, 974, 975, 1, 0, 0, 0, 975, 976, 6, 112, 9, 0, 976, 237, 1, 0, 0, 0, 977, 978, 3, 54, 21, 0, 978, 979, 1, 0, 0, 0, 979, 980, 6, 113, 9, 0, 980, 239, 1, 0, 0, 0, 981, 982, 3, 66, 27, 0, 982, 983, 1, 0, 0, 0, 983, 984, 6, 114, 12, 0, 984, 985, 6, 114, 13, 0, 985, 241, 1, 0, 0, 0, 986, 987, 3, 164, 76, 0, 987, 988, 1, 0, 0, 0, 988, 989, 6, 115, 10, 0, 989, 990, 6, 115, 20, 0, 990, 243, 1, 0, 0, 0, 991, 992, 7, 7, 0, 0, 992, 993, 7, 9, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 6, 116, 21, 0, 995, 245, 1, 0, 0, 0, 996, 997, 7, 19, 0, 0, 997, 998, 7, 1, 0, 0, 998, 999, 7, 5, 0, 0, 999, 1000, 7, 10, 0, 0, 1000, 1001, 1, 0, 0, 0, 1001, 1002, 6, 117, 21, 0, 1002, 247, 1, 0, 0, 0, 1003, 1004, 8, 34, 0, 0, 1004, 249, 1, 0, 0, 0, 1005, 1007, 3, 248, 118, 0, 1006, 1005, 1, 0, 0, 0, 1007, 1008, 1, 0, 0, 0, 1008, 1006, 1, 0, 0, 0, 1008, 1009, 1, 0, 0, 0, 1009, 1010, 1, 0, 0, 0, 1010, 1011, 3, 318, 153, 0, 1011, 1013, 1, 0, 0, 0, 1012, 1006, 1, 0, 0, 0, 1012, 1013, 1, 0, 0, 0, 1013, 1015, 1, 0, 0, 0, 1014, 1016, 3, 248, 118, 0, 1015, 1014, 1, 0, 0, 0, 1016, 1017, 1, 0, 0, 0, 1017, 1015, 1, 0, 0, 0, 1017, 1018, 1, 0, 0, 0, 1018, 251, 1, 0, 0, 0, 1019, 1020, 3, 172, 80, 0, 1020, 1021, 1, 0, 0, 0, 1021, 1022, 6, 120, 22, 0, 1022, 253, 1, 0, 0, 0, 1023, 1024, 3, 250, 119, 0, 1024, 1025, 1, 0, 0, 0, 1025, 1026, 6, 121, 23, 0, 1026, 255, 1, 0, 0, 0, 1027, 1028, 3, 50, 19, 0, 1028, 1029, 1, 0, 0, 0, 1029, 1030, 6, 122, 9, 0, 1030, 257, 1, 0, 0, 0, 1031, 1032, 3, 52, 20, 0, 1032, 1033, 1, 0, 0, 0, 1033, 1034, 6, 123, 9, 0, 1034, 259, 1, 0, 0, 0, 1035, 1036, 3, 54, 21, 0, 1036, 1037, 1, 0, 0, 0, 1037, 1038, 6, 124, 9, 0, 1038, 261, 1, 0, 0, 0, 1039, 1040, 3, 66, 27, 0, 1040, 1041, 1, 0, 0, 0, 1041, 1042, 6, 125, 12, 0, 1042, 1043, 6, 125, 13, 0, 1043, 1044, 6, 125, 13, 0, 1044, 263, 1, 0, 0, 0, 1045, 1046, 3, 100, 44, 0, 1046, 1047, 1, 0, 0, 0, 1047, 1048, 6, 126, 16, 0, 1048, 265, 1, 0, 0, 0, 1049, 1050, 3, 104, 46, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1052, 6, 127, 15, 0, 1052, 267, 1, 0, 0, 0, 1053, 1054, 3, 108, 48, 0, 1054, 1055, 1, 0, 0, 0, 1055, 1056, 6, 128, 18, 0, 1056, 269, 1, 0, 0, 0, 1057, 1058, 3, 246, 117, 0, 1058, 1059, 1, 0, 0, 0, 1059, 1060, 6, 129, 24, 0, 1060, 271, 1, 0, 0, 0, 1061, 1062, 3, 214, 101, 0, 1062, 1063, 1, 0, 0, 0, 1063, 1064, 6, 130, 19, 0, 1064, 273, 1, 0, 0, 0, 1065, 1066, 3, 172, 80, 0, 1066, 1067, 1, 0, 0, 0, 1067, 1068, 6, 131, 22, 0, 1068, 275, 1, 0, 0, 0, 1069, 1070, 3, 50, 19, 0, 1070, 1071, 1, 0, 0, 0, 1071, 1072, 6, 132, 9, 0, 1072, 277, 1, 0, 0, 0, 1073, 1074, 3, 52, 20, 0, 1074, 1075, 1, 0, 0, 0, 1075, 1076, 6, 133, 9, 0, 1076, 279, 1, 0, 0, 0, 1077, 1078, 3, 54, 21, 0, 1078, 1079, 1, 0, 0, 0, 1079, 1080, 6, 134, 9, 0, 1080, 281, 1, 0, 0, 0, 1081, 1082, 3, 66, 27, 0, 1082, 1083, 1, 0, 0, 0, 1083, 1084, 6, 135, 12, 0, 1084, 1085, 6, 135, 13, 0, 1085, 283, 1, 0, 0, 0, 1086, 1087, 3, 108, 48, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1089, 6, 136, 18, 0, 1089, 285, 1, 0, 0, 0, 1090, 1091, 3, 172, 80, 0, 1091, 1092, 1, 0, 0, 0, 1092, 1093, 6, 137, 22, 0, 1093, 287, 1, 0, 0, 0, 1094, 1095, 3, 168, 78, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 6, 138, 25, 0, 1097, 289, 1, 0, 0, 0, 1098, 1099, 3, 50, 19, 0, 1099, 1100, 1, 0, 0, 0, 1100, 1101, 6, 139, 9, 0, 1101, 291, 1, 0, 0, 0, 1102, 1103, 3, 52, 20, 0, 1103, 1104, 1, 0, 0, 0, 1104, 1105, 6, 140, 9, 0, 1105, 293, 1, 0, 0, 0, 1106, 1107, 3, 54, 21, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1109, 6, 141, 9, 0, 1109, 295, 1, 0, 0, 0, 1110, 1111, 3, 66, 27, 0, 1111, 1112, 1, 0, 0, 0, 1112, 1113, 6, 142, 12, 0, 1113, 1114, 6, 142, 13, 0, 1114, 297, 1, 0, 0, 0, 1115, 1116, 7, 1, 0, 0, 1116, 1117, 7, 9, 0, 0, 1117, 1118, 7, 15, 0, 0, 1118, 1119, 7, 7, 0, 0, 1119, 299, 1, 0, 0, 0, 1120, 1121, 3, 50, 19, 0, 1121, 1122, 1, 0, 0, 0, 1122, 1123, 6, 144, 9, 0, 1123, 301, 1, 0, 0, 0, 1124, 1125, 3, 52, 20, 0, 1125, 1126, 1, 0, 0, 0, 1126, 1127, 6, 145, 9, 0, 1127, 303, 1, 0, 0, 0, 1128, 1129, 3, 54, 21, 0, 1129, 1130, 1, 0, 0, 0, 1130, 1131, 6, 146, 9, 0, 1131, 305, 1, 0, 0, 0, 1132, 1133, 3, 66, 27, 0, 1133, 1134, 1, 0, 0, 0, 1134, 1135, 6, 147, 12, 0, 1135, 1136, 6, 147, 13, 0, 1136, 307, 1, 0, 0, 0, 1137, 1138, 7, 15, 0, 0, 1138, 1139, 7, 31, 0, 0, 1139, 1140, 7, 9, 0, 0, 1140, 1141, 7, 4, 0, 0, 1141, 1142, 7, 5, 0, 0, 1142, 1143, 7, 1, 0, 0, 1143, 1144, 7, 7, 0, 0, 1144, 1145, 7, 9, 0, 0, 1145, 1146, 7, 2, 0, 0, 1146, 309, 1, 0, 0, 0, 1147, 1148, 3, 50, 19, 0, 1148, 1149, 1, 0, 0, 0, 1149, 1150, 6, 149, 9, 0, 1150, 311, 1, 0, 0, 0, 1151, 1152, 3, 52, 20, 0, 1152, 1153, 1, 0, 0, 0, 1153, 1154, 6, 150, 9, 0, 1154, 313, 1, 0, 0, 0, 1155, 1156, 3, 54, 21, 0, 1156, 1157, 1, 0, 0, 0, 1157, 1158, 6, 151, 9, 0, 1158, 315, 1, 0, 0, 0, 1159, 1160, 3, 166, 77, 0, 1160, 1161, 1, 0, 0, 0, 1161, 1162, 6, 152, 14, 0, 1162, 1163, 6, 152, 13, 0, 1163, 317, 1, 0, 0, 0, 1164, 1165, 5, 58, 0, 0, 1165, 319, 1, 0, 0, 0, 1166, 1172, 3, 78, 33, 0, 1167, 1172, 3, 68, 28, 0, 1168, 1172, 3, 108, 48, 0, 1169, 1172, 3, 70, 29, 0, 1170, 1172, 3, 84, 36, 0, 1171, 1166, 1, 0, 0, 0, 1171, 1167, 1, 0, 0, 0, 1171, 1168, 1, 0, 0, 0, 1171, 1169, 1, 0, 0, 0, 1171, 1170, 1, 0, 0, 0, 1172, 1173, 1, 0, 0, 0, 1173, 1171, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 321, 1, 0, 0, 0, 1175, 1176, 3, 50, 19, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1178, 6, 155, 9, 0, 1178, 323, 1, 0, 0, 0, 1179, 1180, 3, 52, 20, 0, 1180, 1181, 1, 0, 0, 0, 1181, 1182, 6, 156, 9, 0, 1182, 325, 1, 0, 0, 0, 1183, 1184, 3, 54, 21, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1186, 6, 157, 9, 0, 1186, 327, 1, 0, 0, 0, 58, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 481, 491, 495, 498, 507, 509, 520, 561, 566, 575, 582, 587, 589, 600, 608, 611, 613, 618, 623, 629, 636, 641, 647, 650, 658, 662, 795, 800, 805, 807, 813, 868, 873, 904, 908, 913, 918, 923, 925, 929, 931, 1008, 1012, 1017, 1171, 1173, 26, 5, 2, 0, 5, 4, 0, 5, 6, 0, 5, 1, 0, 5, 3, 0, 5, 10, 0, 5, 8, 0, 5, 5, 0, 5, 9, 0, 0, 1, 0, 7, 65, 0, 5, 0, 0, 7, 26, 0, 4, 0, 0, 7, 66, 0, 7, 35, 0, 7, 33, 0, 7, 27, 0, 7, 37, 0, 7, 77, 0, 5, 11, 0, 5, 7, 0, 7, 68, 0, 7, 87, 0, 7, 86, 0, 7, 67, 0]
\ No newline at end of file
diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens b/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens
index b496aa68b61f7..d2e7a695282ec 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens
+++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.tokens
@@ -69,45 +69,44 @@ QUOTED_IDENTIFIER=68
EXPR_LINE_COMMENT=69
EXPR_MULTILINE_COMMENT=70
EXPR_WS=71
-OPTIONS=72
-METADATA=73
-FROM_UNQUOTED_IDENTIFIER=74
-FROM_LINE_COMMENT=75
-FROM_MULTILINE_COMMENT=76
-FROM_WS=77
-ID_PATTERN=78
-PROJECT_LINE_COMMENT=79
-PROJECT_MULTILINE_COMMENT=80
-PROJECT_WS=81
-AS=82
-RENAME_LINE_COMMENT=83
-RENAME_MULTILINE_COMMENT=84
-RENAME_WS=85
-ON=86
-WITH=87
-ENRICH_POLICY_NAME=88
-ENRICH_LINE_COMMENT=89
-ENRICH_MULTILINE_COMMENT=90
-ENRICH_WS=91
-ENRICH_FIELD_LINE_COMMENT=92
-ENRICH_FIELD_MULTILINE_COMMENT=93
-ENRICH_FIELD_WS=94
-MVEXPAND_LINE_COMMENT=95
-MVEXPAND_MULTILINE_COMMENT=96
-MVEXPAND_WS=97
-INFO=98
-SHOW_LINE_COMMENT=99
-SHOW_MULTILINE_COMMENT=100
-SHOW_WS=101
-FUNCTIONS=102
-META_LINE_COMMENT=103
-META_MULTILINE_COMMENT=104
-META_WS=105
-COLON=106
-SETTING=107
-SETTING_LINE_COMMENT=108
-SETTTING_MULTILINE_COMMENT=109
-SETTING_WS=110
+METADATA=72
+FROM_UNQUOTED_IDENTIFIER=73
+FROM_LINE_COMMENT=74
+FROM_MULTILINE_COMMENT=75
+FROM_WS=76
+ID_PATTERN=77
+PROJECT_LINE_COMMENT=78
+PROJECT_MULTILINE_COMMENT=79
+PROJECT_WS=80
+AS=81
+RENAME_LINE_COMMENT=82
+RENAME_MULTILINE_COMMENT=83
+RENAME_WS=84
+ON=85
+WITH=86
+ENRICH_POLICY_NAME=87
+ENRICH_LINE_COMMENT=88
+ENRICH_MULTILINE_COMMENT=89
+ENRICH_WS=90
+ENRICH_FIELD_LINE_COMMENT=91
+ENRICH_FIELD_MULTILINE_COMMENT=92
+ENRICH_FIELD_WS=93
+MVEXPAND_LINE_COMMENT=94
+MVEXPAND_MULTILINE_COMMENT=95
+MVEXPAND_WS=96
+INFO=97
+SHOW_LINE_COMMENT=98
+SHOW_MULTILINE_COMMENT=99
+SHOW_WS=100
+FUNCTIONS=101
+META_LINE_COMMENT=102
+META_MULTILINE_COMMENT=103
+META_WS=104
+COLON=105
+SETTING=106
+SETTING_LINE_COMMENT=107
+SETTTING_MULTILINE_COMMENT=108
+SETTING_WS=109
'dissect'=1
'drop'=2
'enrich'=3
@@ -163,11 +162,10 @@ SETTING_WS=110
'/'=63
'%'=64
']'=66
-'options'=72
-'metadata'=73
-'as'=82
-'on'=86
-'with'=87
-'info'=98
-'functions'=102
-':'=106
+'metadata'=72
+'as'=81
+'on'=85
+'with'=86
+'info'=97
+'functions'=101
+':'=105
diff --git a/packages/kbn-esql-ast/src/antlr/esql_lexer.ts b/packages/kbn-esql-ast/src/antlr/esql_lexer.ts
index d10efdb06e4bb..33ff8b4a75db3 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_lexer.ts
+++ b/packages/kbn-esql-ast/src/antlr/esql_lexer.ts
@@ -84,45 +84,44 @@ export default class esql_lexer extends Lexer {
public static readonly EXPR_LINE_COMMENT = 69;
public static readonly EXPR_MULTILINE_COMMENT = 70;
public static readonly EXPR_WS = 71;
- public static readonly OPTIONS = 72;
- public static readonly METADATA = 73;
- public static readonly FROM_UNQUOTED_IDENTIFIER = 74;
- public static readonly FROM_LINE_COMMENT = 75;
- public static readonly FROM_MULTILINE_COMMENT = 76;
- public static readonly FROM_WS = 77;
- public static readonly ID_PATTERN = 78;
- public static readonly PROJECT_LINE_COMMENT = 79;
- public static readonly PROJECT_MULTILINE_COMMENT = 80;
- public static readonly PROJECT_WS = 81;
- public static readonly AS = 82;
- public static readonly RENAME_LINE_COMMENT = 83;
- public static readonly RENAME_MULTILINE_COMMENT = 84;
- public static readonly RENAME_WS = 85;
- public static readonly ON = 86;
- public static readonly WITH = 87;
- public static readonly ENRICH_POLICY_NAME = 88;
- public static readonly ENRICH_LINE_COMMENT = 89;
- public static readonly ENRICH_MULTILINE_COMMENT = 90;
- public static readonly ENRICH_WS = 91;
- public static readonly ENRICH_FIELD_LINE_COMMENT = 92;
- public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 93;
- public static readonly ENRICH_FIELD_WS = 94;
- public static readonly MVEXPAND_LINE_COMMENT = 95;
- public static readonly MVEXPAND_MULTILINE_COMMENT = 96;
- public static readonly MVEXPAND_WS = 97;
- public static readonly INFO = 98;
- public static readonly SHOW_LINE_COMMENT = 99;
- public static readonly SHOW_MULTILINE_COMMENT = 100;
- public static readonly SHOW_WS = 101;
- public static readonly FUNCTIONS = 102;
- public static readonly META_LINE_COMMENT = 103;
- public static readonly META_MULTILINE_COMMENT = 104;
- public static readonly META_WS = 105;
- public static readonly COLON = 106;
- public static readonly SETTING = 107;
- public static readonly SETTING_LINE_COMMENT = 108;
- public static readonly SETTTING_MULTILINE_COMMENT = 109;
- public static readonly SETTING_WS = 110;
+ public static readonly METADATA = 72;
+ public static readonly FROM_UNQUOTED_IDENTIFIER = 73;
+ public static readonly FROM_LINE_COMMENT = 74;
+ public static readonly FROM_MULTILINE_COMMENT = 75;
+ public static readonly FROM_WS = 76;
+ public static readonly ID_PATTERN = 77;
+ public static readonly PROJECT_LINE_COMMENT = 78;
+ public static readonly PROJECT_MULTILINE_COMMENT = 79;
+ public static readonly PROJECT_WS = 80;
+ public static readonly AS = 81;
+ public static readonly RENAME_LINE_COMMENT = 82;
+ public static readonly RENAME_MULTILINE_COMMENT = 83;
+ public static readonly RENAME_WS = 84;
+ public static readonly ON = 85;
+ public static readonly WITH = 86;
+ public static readonly ENRICH_POLICY_NAME = 87;
+ public static readonly ENRICH_LINE_COMMENT = 88;
+ public static readonly ENRICH_MULTILINE_COMMENT = 89;
+ public static readonly ENRICH_WS = 90;
+ public static readonly ENRICH_FIELD_LINE_COMMENT = 91;
+ public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 92;
+ public static readonly ENRICH_FIELD_WS = 93;
+ public static readonly MVEXPAND_LINE_COMMENT = 94;
+ public static readonly MVEXPAND_MULTILINE_COMMENT = 95;
+ public static readonly MVEXPAND_WS = 96;
+ public static readonly INFO = 97;
+ public static readonly SHOW_LINE_COMMENT = 98;
+ public static readonly SHOW_MULTILINE_COMMENT = 99;
+ public static readonly SHOW_WS = 100;
+ public static readonly FUNCTIONS = 101;
+ public static readonly META_LINE_COMMENT = 102;
+ public static readonly META_MULTILINE_COMMENT = 103;
+ public static readonly META_WS = 104;
+ public static readonly COLON = 105;
+ public static readonly SETTING = 106;
+ public static readonly SETTING_LINE_COMMENT = 107;
+ public static readonly SETTTING_MULTILINE_COMMENT = 108;
+ public static readonly SETTING_WS = 109;
public static readonly EOF = Token.EOF;
public static readonly EXPLAIN_MODE = 1;
public static readonly EXPRESSION_MODE = 2;
@@ -174,7 +173,6 @@ export default class esql_lexer extends Lexer {
"']'", null,
null, null,
null, null,
- "'options'",
"'metadata'",
null, null,
null, null,
@@ -237,7 +235,6 @@ export default class esql_lexer extends Lexer {
"EXPR_LINE_COMMENT",
"EXPR_MULTILINE_COMMENT",
"EXPR_WS",
- "OPTIONS",
"METADATA",
"FROM_UNQUOTED_IDENTIFIER",
"FROM_LINE_COMMENT",
@@ -294,22 +291,21 @@ export default class esql_lexer extends Lexer {
"CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", "QUOTED_ID", "QUOTED_IDENTIFIER",
"EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", "FROM_PIPE",
"FROM_OPENING_BRACKET", "FROM_CLOSING_BRACKET", "FROM_COMMA", "FROM_ASSIGN",
- "FROM_QUOTED_STRING", "OPTIONS", "METADATA", "FROM_UNQUOTED_IDENTIFIER_PART",
- "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT",
- "FROM_WS", "PROJECT_PIPE", "PROJECT_DOT", "PROJECT_COMMA", "UNQUOTED_ID_BODY_WITH_PATTERN",
- "UNQUOTED_ID_PATTERN", "ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT",
- "PROJECT_WS", "RENAME_PIPE", "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT",
- "AS", "RENAME_ID_PATTERN", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT",
- "RENAME_WS", "ENRICH_PIPE", "ENRICH_OPENING_BRACKET", "ON", "WITH", "ENRICH_POLICY_NAME_BODY",
- "ENRICH_POLICY_NAME", "ENRICH_QUOTED_IDENTIFIER", "ENRICH_MODE_UNQUOTED_VALUE",
- "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_PIPE",
- "ENRICH_FIELD_ASSIGN", "ENRICH_FIELD_COMMA", "ENRICH_FIELD_DOT", "ENRICH_FIELD_WITH",
- "ENRICH_FIELD_ID_PATTERN", "ENRICH_FIELD_QUOTED_IDENTIFIER", "ENRICH_FIELD_LINE_COMMENT",
- "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_PIPE",
- "MVEXPAND_DOT", "MVEXPAND_QUOTED_IDENTIFIER", "MVEXPAND_UNQUOTED_IDENTIFIER",
- "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS",
- "SHOW_PIPE", "INFO", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT", "SHOW_WS",
- "META_PIPE", "FUNCTIONS", "META_LINE_COMMENT", "META_MULTILINE_COMMENT",
+ "FROM_QUOTED_STRING", "METADATA", "FROM_UNQUOTED_IDENTIFIER_PART", "FROM_UNQUOTED_IDENTIFIER",
+ "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", "FROM_WS", "PROJECT_PIPE",
+ "PROJECT_DOT", "PROJECT_COMMA", "UNQUOTED_ID_BODY_WITH_PATTERN", "UNQUOTED_ID_PATTERN",
+ "ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS",
+ "RENAME_PIPE", "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT", "AS", "RENAME_ID_PATTERN",
+ "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", "RENAME_WS", "ENRICH_PIPE",
+ "ENRICH_OPENING_BRACKET", "ON", "WITH", "ENRICH_POLICY_NAME_BODY", "ENRICH_POLICY_NAME",
+ "ENRICH_QUOTED_IDENTIFIER", "ENRICH_MODE_UNQUOTED_VALUE", "ENRICH_LINE_COMMENT",
+ "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_PIPE", "ENRICH_FIELD_ASSIGN",
+ "ENRICH_FIELD_COMMA", "ENRICH_FIELD_DOT", "ENRICH_FIELD_WITH", "ENRICH_FIELD_ID_PATTERN",
+ "ENRICH_FIELD_QUOTED_IDENTIFIER", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT",
+ "ENRICH_FIELD_WS", "MVEXPAND_PIPE", "MVEXPAND_DOT", "MVEXPAND_QUOTED_IDENTIFIER",
+ "MVEXPAND_UNQUOTED_IDENTIFIER", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT",
+ "MVEXPAND_WS", "SHOW_PIPE", "INFO", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT",
+ "SHOW_WS", "META_PIPE", "FUNCTIONS", "META_LINE_COMMENT", "META_MULTILINE_COMMENT",
"META_WS", "SETTING_CLOSING_BRACKET", "COLON", "SETTING", "SETTING_LINE_COMMENT",
"SETTTING_MULTILINE_COMMENT", "SETTING_WS",
];
@@ -332,7 +328,7 @@ export default class esql_lexer extends Lexer {
public get modeNames(): string[] { return esql_lexer.modeNames; }
- public static readonly _serializedATN: number[] = [4,0,110,1197,6,-1,6,
+ public static readonly _serializedATN: number[] = [4,0,109,1187,6,-1,6,
-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,
2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,
2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,
@@ -356,386 +352,383 @@ export default class esql_lexer extends Lexer {
7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,
7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,
7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,
- 7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,
- 7,158,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,
- 4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,
- 6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,
- 7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,
- 1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,
- 11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,
- 1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,
- 15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,
- 1,17,1,17,1,17,1,17,1,18,4,18,482,8,18,11,18,12,18,483,1,18,1,18,1,19,1,
- 19,1,19,1,19,5,19,492,8,19,10,19,12,19,495,9,19,1,19,3,19,498,8,19,1,19,
- 3,19,501,8,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,5,20,510,8,20,10,20,12,
- 20,513,9,20,1,20,1,20,1,20,1,20,1,20,1,21,4,21,521,8,21,11,21,12,21,522,
- 1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,
- 24,1,24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,28,
- 1,28,1,29,1,29,1,30,1,30,1,30,1,31,1,31,1,32,1,32,3,32,564,8,32,1,32,4,
- 32,567,8,32,11,32,12,32,568,1,33,1,33,1,34,1,34,1,35,1,35,1,35,3,35,578,
- 8,35,1,36,1,36,1,37,1,37,1,37,3,37,585,8,37,1,38,1,38,1,38,5,38,590,8,38,
- 10,38,12,38,593,9,38,1,38,1,38,1,38,1,38,1,38,1,38,5,38,601,8,38,10,38,
- 12,38,604,9,38,1,38,1,38,1,38,1,38,1,38,3,38,611,8,38,1,38,3,38,614,8,38,
- 3,38,616,8,38,1,39,4,39,619,8,39,11,39,12,39,620,1,40,4,40,624,8,40,11,
- 40,12,40,625,1,40,1,40,5,40,630,8,40,10,40,12,40,633,9,40,1,40,1,40,4,40,
- 637,8,40,11,40,12,40,638,1,40,4,40,642,8,40,11,40,12,40,643,1,40,1,40,5,
- 40,648,8,40,10,40,12,40,651,9,40,3,40,653,8,40,1,40,1,40,1,40,1,40,4,40,
- 659,8,40,11,40,12,40,660,1,40,1,40,3,40,665,8,40,1,41,1,41,1,41,1,42,1,
- 42,1,42,1,42,1,43,1,43,1,43,1,43,1,44,1,44,1,45,1,45,1,45,1,46,1,46,1,47,
- 1,47,1,47,1,47,1,47,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,
- 50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,53,1,53,1,53,1,54,
- 1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,
- 57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1,60,1,61,1,61,
- 1,61,1,61,1,61,1,61,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,
- 65,1,65,1,65,1,66,1,66,1,66,1,67,1,67,1,68,1,68,1,68,1,69,1,69,1,70,1,70,
- 1,70,1,71,1,71,1,72,1,72,1,73,1,73,1,74,1,74,1,75,1,75,1,76,1,76,1,76,1,
- 76,1,76,1,77,1,77,1,77,1,77,1,77,1,78,1,78,5,78,796,8,78,10,78,12,78,799,
- 9,78,1,78,1,78,3,78,803,8,78,1,78,4,78,806,8,78,11,78,12,78,807,3,78,810,
- 8,78,1,79,1,79,4,79,814,8,79,11,79,12,79,815,1,79,1,79,1,80,1,80,1,81,1,
- 81,1,81,1,81,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,
- 1,84,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,88,1,
- 88,1,88,1,88,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,
- 1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,3,92,879,8,
- 92,1,93,4,93,882,8,93,11,93,12,93,883,1,94,1,94,1,94,1,94,1,95,1,95,1,95,
- 1,95,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,
- 99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,3,100,915,8,100,1,101,1,101,3,
- 101,919,8,101,1,101,5,101,922,8,101,10,101,12,101,925,9,101,1,101,1,101,
- 3,101,929,8,101,1,101,4,101,932,8,101,11,101,12,101,933,3,101,936,8,101,
- 1,102,1,102,4,102,940,8,102,11,102,12,102,941,1,103,1,103,1,103,1,103,1,
- 104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,
- 106,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,
- 109,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,
- 113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,
- 115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,118,1,
- 118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,120,4,120,1017,8,120,11,
- 120,12,120,1018,1,120,1,120,3,120,1023,8,120,1,120,4,120,1026,8,120,11,
- 120,12,120,1027,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,123,1,
- 123,1,123,1,123,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,126,1,
- 126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,
- 128,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,
- 131,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,
- 134,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,
- 137,1,137,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,140,1,140,1,
- 140,1,140,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,143,1,143,1,
- 143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,
- 146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,
- 148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,
- 150,1,150,1,150,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,153,1,
- 153,1,153,1,153,1,153,1,154,1,154,1,155,1,155,1,155,1,155,1,155,4,155,1182,
- 8,155,11,155,12,155,1183,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,
- 1,158,1,158,1,158,1,158,2,511,602,0,159,12,1,14,2,16,3,18,4,20,5,22,6,24,
- 7,26,8,28,9,30,10,32,11,34,12,36,13,38,14,40,15,42,16,44,17,46,18,48,19,
- 50,20,52,21,54,22,56,0,58,0,60,23,62,24,64,25,66,26,68,0,70,0,72,0,74,0,
- 76,0,78,0,80,0,82,0,84,0,86,0,88,27,90,28,92,29,94,30,96,31,98,32,100,33,
- 102,34,104,35,106,36,108,37,110,38,112,39,114,40,116,41,118,42,120,43,122,
- 44,124,45,126,46,128,47,130,48,132,49,134,50,136,51,138,52,140,53,142,54,
- 144,55,146,56,148,57,150,58,152,59,154,60,156,61,158,62,160,63,162,64,164,
- 65,166,66,168,67,170,0,172,68,174,69,176,70,178,71,180,0,182,0,184,0,186,
- 0,188,0,190,0,192,72,194,73,196,0,198,74,200,75,202,76,204,77,206,0,208,
- 0,210,0,212,0,214,0,216,78,218,79,220,80,222,81,224,0,226,0,228,0,230,0,
- 232,82,234,0,236,83,238,84,240,85,242,0,244,0,246,86,248,87,250,0,252,88,
- 254,0,256,0,258,89,260,90,262,91,264,0,266,0,268,0,270,0,272,0,274,0,276,
- 0,278,92,280,93,282,94,284,0,286,0,288,0,290,0,292,95,294,96,296,97,298,
- 0,300,98,302,99,304,100,306,101,308,0,310,102,312,103,314,104,316,105,318,
- 0,320,106,322,107,324,108,326,109,328,110,12,0,1,2,3,4,5,6,7,8,9,10,11,
- 35,2,0,68,68,100,100,2,0,73,73,105,105,2,0,83,83,115,115,2,0,69,69,101,
- 101,2,0,67,67,99,99,2,0,84,84,116,116,2,0,82,82,114,114,2,0,79,79,111,111,
- 2,0,80,80,112,112,2,0,78,78,110,110,2,0,72,72,104,104,2,0,86,86,118,118,
- 2,0,65,65,97,97,2,0,76,76,108,108,2,0,88,88,120,120,2,0,70,70,102,102,2,
- 0,77,77,109,109,2,0,71,71,103,103,2,0,75,75,107,107,2,0,87,87,119,119,6,
- 0,9,10,13,13,32,32,47,47,91,91,93,93,2,0,10,10,13,13,3,0,9,10,13,13,32,
- 32,1,0,48,57,2,0,65,90,97,122,8,0,34,34,78,78,82,82,84,84,92,92,110,110,
- 114,114,116,116,4,0,10,10,13,13,34,34,92,92,2,0,43,43,45,45,1,0,96,96,2,
- 0,66,66,98,98,2,0,89,89,121,121,2,0,85,85,117,117,10,0,9,10,13,13,32,32,
- 44,44,47,47,61,61,91,91,93,93,96,96,124,124,2,0,42,42,47,47,11,0,9,10,13,
- 13,32,32,34,35,44,44,47,47,58,58,60,60,62,63,92,92,124,124,1224,0,12,1,
- 0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,
- 0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,
- 0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,
- 0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0,1,56,1,
- 0,0,0,1,58,1,0,0,0,1,60,1,0,0,0,1,62,1,0,0,0,1,64,1,0,0,0,2,66,1,0,0,0,
- 2,88,1,0,0,0,2,90,1,0,0,0,2,92,1,0,0,0,2,94,1,0,0,0,2,96,1,0,0,0,2,98,1,
- 0,0,0,2,100,1,0,0,0,2,102,1,0,0,0,2,104,1,0,0,0,2,106,1,0,0,0,2,108,1,0,
- 0,0,2,110,1,0,0,0,2,112,1,0,0,0,2,114,1,0,0,0,2,116,1,0,0,0,2,118,1,0,0,
- 0,2,120,1,0,0,0,2,122,1,0,0,0,2,124,1,0,0,0,2,126,1,0,0,0,2,128,1,0,0,0,
- 2,130,1,0,0,0,2,132,1,0,0,0,2,134,1,0,0,0,2,136,1,0,0,0,2,138,1,0,0,0,2,
- 140,1,0,0,0,2,142,1,0,0,0,2,144,1,0,0,0,2,146,1,0,0,0,2,148,1,0,0,0,2,150,
- 1,0,0,0,2,152,1,0,0,0,2,154,1,0,0,0,2,156,1,0,0,0,2,158,1,0,0,0,2,160,1,
- 0,0,0,2,162,1,0,0,0,2,164,1,0,0,0,2,166,1,0,0,0,2,168,1,0,0,0,2,172,1,0,
- 0,0,2,174,1,0,0,0,2,176,1,0,0,0,2,178,1,0,0,0,3,180,1,0,0,0,3,182,1,0,0,
- 0,3,184,1,0,0,0,3,186,1,0,0,0,3,188,1,0,0,0,3,190,1,0,0,0,3,192,1,0,0,0,
- 3,194,1,0,0,0,3,198,1,0,0,0,3,200,1,0,0,0,3,202,1,0,0,0,3,204,1,0,0,0,4,
- 206,1,0,0,0,4,208,1,0,0,0,4,210,1,0,0,0,4,216,1,0,0,0,4,218,1,0,0,0,4,220,
- 1,0,0,0,4,222,1,0,0,0,5,224,1,0,0,0,5,226,1,0,0,0,5,228,1,0,0,0,5,230,1,
- 0,0,0,5,232,1,0,0,0,5,234,1,0,0,0,5,236,1,0,0,0,5,238,1,0,0,0,5,240,1,0,
- 0,0,6,242,1,0,0,0,6,244,1,0,0,0,6,246,1,0,0,0,6,248,1,0,0,0,6,252,1,0,0,
- 0,6,254,1,0,0,0,6,256,1,0,0,0,6,258,1,0,0,0,6,260,1,0,0,0,6,262,1,0,0,0,
- 7,264,1,0,0,0,7,266,1,0,0,0,7,268,1,0,0,0,7,270,1,0,0,0,7,272,1,0,0,0,7,
- 274,1,0,0,0,7,276,1,0,0,0,7,278,1,0,0,0,7,280,1,0,0,0,7,282,1,0,0,0,8,284,
- 1,0,0,0,8,286,1,0,0,0,8,288,1,0,0,0,8,290,1,0,0,0,8,292,1,0,0,0,8,294,1,
- 0,0,0,8,296,1,0,0,0,9,298,1,0,0,0,9,300,1,0,0,0,9,302,1,0,0,0,9,304,1,0,
- 0,0,9,306,1,0,0,0,10,308,1,0,0,0,10,310,1,0,0,0,10,312,1,0,0,0,10,314,1,
- 0,0,0,10,316,1,0,0,0,11,318,1,0,0,0,11,320,1,0,0,0,11,322,1,0,0,0,11,324,
- 1,0,0,0,11,326,1,0,0,0,11,328,1,0,0,0,12,330,1,0,0,0,14,340,1,0,0,0,16,
- 347,1,0,0,0,18,356,1,0,0,0,20,363,1,0,0,0,22,373,1,0,0,0,24,380,1,0,0,0,
- 26,387,1,0,0,0,28,401,1,0,0,0,30,408,1,0,0,0,32,416,1,0,0,0,34,423,1,0,
- 0,0,36,435,1,0,0,0,38,444,1,0,0,0,40,450,1,0,0,0,42,457,1,0,0,0,44,464,
- 1,0,0,0,46,472,1,0,0,0,48,481,1,0,0,0,50,487,1,0,0,0,52,504,1,0,0,0,54,
- 520,1,0,0,0,56,526,1,0,0,0,58,531,1,0,0,0,60,536,1,0,0,0,62,540,1,0,0,0,
- 64,544,1,0,0,0,66,548,1,0,0,0,68,552,1,0,0,0,70,554,1,0,0,0,72,556,1,0,
- 0,0,74,559,1,0,0,0,76,561,1,0,0,0,78,570,1,0,0,0,80,572,1,0,0,0,82,577,
- 1,0,0,0,84,579,1,0,0,0,86,584,1,0,0,0,88,615,1,0,0,0,90,618,1,0,0,0,92,
- 664,1,0,0,0,94,666,1,0,0,0,96,669,1,0,0,0,98,673,1,0,0,0,100,677,1,0,0,
- 0,102,679,1,0,0,0,104,682,1,0,0,0,106,684,1,0,0,0,108,689,1,0,0,0,110,691,
- 1,0,0,0,112,697,1,0,0,0,114,703,1,0,0,0,116,708,1,0,0,0,118,710,1,0,0,0,
- 120,713,1,0,0,0,122,716,1,0,0,0,124,721,1,0,0,0,126,725,1,0,0,0,128,730,
- 1,0,0,0,130,736,1,0,0,0,132,739,1,0,0,0,134,741,1,0,0,0,136,747,1,0,0,0,
- 138,749,1,0,0,0,140,754,1,0,0,0,142,757,1,0,0,0,144,760,1,0,0,0,146,763,
- 1,0,0,0,148,765,1,0,0,0,150,768,1,0,0,0,152,770,1,0,0,0,154,773,1,0,0,0,
- 156,775,1,0,0,0,158,777,1,0,0,0,160,779,1,0,0,0,162,781,1,0,0,0,164,783,
- 1,0,0,0,166,788,1,0,0,0,168,809,1,0,0,0,170,811,1,0,0,0,172,819,1,0,0,0,
- 174,821,1,0,0,0,176,825,1,0,0,0,178,829,1,0,0,0,180,833,1,0,0,0,182,838,
- 1,0,0,0,184,842,1,0,0,0,186,846,1,0,0,0,188,850,1,0,0,0,190,854,1,0,0,0,
- 192,858,1,0,0,0,194,866,1,0,0,0,196,878,1,0,0,0,198,881,1,0,0,0,200,885,
- 1,0,0,0,202,889,1,0,0,0,204,893,1,0,0,0,206,897,1,0,0,0,208,902,1,0,0,0,
- 210,906,1,0,0,0,212,914,1,0,0,0,214,935,1,0,0,0,216,939,1,0,0,0,218,943,
- 1,0,0,0,220,947,1,0,0,0,222,951,1,0,0,0,224,955,1,0,0,0,226,960,1,0,0,0,
- 228,964,1,0,0,0,230,968,1,0,0,0,232,972,1,0,0,0,234,975,1,0,0,0,236,979,
- 1,0,0,0,238,983,1,0,0,0,240,987,1,0,0,0,242,991,1,0,0,0,244,996,1,0,0,0,
- 246,1001,1,0,0,0,248,1006,1,0,0,0,250,1013,1,0,0,0,252,1022,1,0,0,0,254,
- 1029,1,0,0,0,256,1033,1,0,0,0,258,1037,1,0,0,0,260,1041,1,0,0,0,262,1045,
- 1,0,0,0,264,1049,1,0,0,0,266,1055,1,0,0,0,268,1059,1,0,0,0,270,1063,1,0,
- 0,0,272,1067,1,0,0,0,274,1071,1,0,0,0,276,1075,1,0,0,0,278,1079,1,0,0,0,
- 280,1083,1,0,0,0,282,1087,1,0,0,0,284,1091,1,0,0,0,286,1096,1,0,0,0,288,
- 1100,1,0,0,0,290,1104,1,0,0,0,292,1108,1,0,0,0,294,1112,1,0,0,0,296,1116,
- 1,0,0,0,298,1120,1,0,0,0,300,1125,1,0,0,0,302,1130,1,0,0,0,304,1134,1,0,
- 0,0,306,1138,1,0,0,0,308,1142,1,0,0,0,310,1147,1,0,0,0,312,1157,1,0,0,0,
- 314,1161,1,0,0,0,316,1165,1,0,0,0,318,1169,1,0,0,0,320,1174,1,0,0,0,322,
- 1181,1,0,0,0,324,1185,1,0,0,0,326,1189,1,0,0,0,328,1193,1,0,0,0,330,331,
- 7,0,0,0,331,332,7,1,0,0,332,333,7,2,0,0,333,334,7,2,0,0,334,335,7,3,0,0,
- 335,336,7,4,0,0,336,337,7,5,0,0,337,338,1,0,0,0,338,339,6,0,0,0,339,13,
- 1,0,0,0,340,341,7,0,0,0,341,342,7,6,0,0,342,343,7,7,0,0,343,344,7,8,0,0,
- 344,345,1,0,0,0,345,346,6,1,1,0,346,15,1,0,0,0,347,348,7,3,0,0,348,349,
- 7,9,0,0,349,350,7,6,0,0,350,351,7,1,0,0,351,352,7,4,0,0,352,353,7,10,0,
- 0,353,354,1,0,0,0,354,355,6,2,2,0,355,17,1,0,0,0,356,357,7,3,0,0,357,358,
- 7,11,0,0,358,359,7,12,0,0,359,360,7,13,0,0,360,361,1,0,0,0,361,362,6,3,
- 0,0,362,19,1,0,0,0,363,364,7,3,0,0,364,365,7,14,0,0,365,366,7,8,0,0,366,
- 367,7,13,0,0,367,368,7,12,0,0,368,369,7,1,0,0,369,370,7,9,0,0,370,371,1,
- 0,0,0,371,372,6,4,3,0,372,21,1,0,0,0,373,374,7,15,0,0,374,375,7,6,0,0,375,
- 376,7,7,0,0,376,377,7,16,0,0,377,378,1,0,0,0,378,379,6,5,4,0,379,23,1,0,
- 0,0,380,381,7,17,0,0,381,382,7,6,0,0,382,383,7,7,0,0,383,384,7,18,0,0,384,
- 385,1,0,0,0,385,386,6,6,0,0,386,25,1,0,0,0,387,388,7,1,0,0,388,389,7,9,
- 0,0,389,390,7,13,0,0,390,391,7,1,0,0,391,392,7,9,0,0,392,393,7,3,0,0,393,
- 394,7,2,0,0,394,395,7,5,0,0,395,396,7,12,0,0,396,397,7,5,0,0,397,398,7,
- 2,0,0,398,399,1,0,0,0,399,400,6,7,0,0,400,27,1,0,0,0,401,402,7,18,0,0,402,
- 403,7,3,0,0,403,404,7,3,0,0,404,405,7,8,0,0,405,406,1,0,0,0,406,407,6,8,
- 1,0,407,29,1,0,0,0,408,409,7,13,0,0,409,410,7,1,0,0,410,411,7,16,0,0,411,
- 412,7,1,0,0,412,413,7,5,0,0,413,414,1,0,0,0,414,415,6,9,0,0,415,31,1,0,
- 0,0,416,417,7,16,0,0,417,418,7,3,0,0,418,419,7,5,0,0,419,420,7,12,0,0,420,
- 421,1,0,0,0,421,422,6,10,5,0,422,33,1,0,0,0,423,424,7,16,0,0,424,425,7,
- 11,0,0,425,426,5,95,0,0,426,427,7,3,0,0,427,428,7,14,0,0,428,429,7,8,0,
- 0,429,430,7,12,0,0,430,431,7,9,0,0,431,432,7,0,0,0,432,433,1,0,0,0,433,
- 434,6,11,6,0,434,35,1,0,0,0,435,436,7,6,0,0,436,437,7,3,0,0,437,438,7,9,
- 0,0,438,439,7,12,0,0,439,440,7,16,0,0,440,441,7,3,0,0,441,442,1,0,0,0,442,
- 443,6,12,7,0,443,37,1,0,0,0,444,445,7,6,0,0,445,446,7,7,0,0,446,447,7,19,
- 0,0,447,448,1,0,0,0,448,449,6,13,0,0,449,39,1,0,0,0,450,451,7,2,0,0,451,
- 452,7,10,0,0,452,453,7,7,0,0,453,454,7,19,0,0,454,455,1,0,0,0,455,456,6,
- 14,8,0,456,41,1,0,0,0,457,458,7,2,0,0,458,459,7,7,0,0,459,460,7,6,0,0,460,
- 461,7,5,0,0,461,462,1,0,0,0,462,463,6,15,0,0,463,43,1,0,0,0,464,465,7,2,
- 0,0,465,466,7,5,0,0,466,467,7,12,0,0,467,468,7,5,0,0,468,469,7,2,0,0,469,
- 470,1,0,0,0,470,471,6,16,0,0,471,45,1,0,0,0,472,473,7,19,0,0,473,474,7,
- 10,0,0,474,475,7,3,0,0,475,476,7,6,0,0,476,477,7,3,0,0,477,478,1,0,0,0,
- 478,479,6,17,0,0,479,47,1,0,0,0,480,482,8,20,0,0,481,480,1,0,0,0,482,483,
- 1,0,0,0,483,481,1,0,0,0,483,484,1,0,0,0,484,485,1,0,0,0,485,486,6,18,0,
- 0,486,49,1,0,0,0,487,488,5,47,0,0,488,489,5,47,0,0,489,493,1,0,0,0,490,
- 492,8,21,0,0,491,490,1,0,0,0,492,495,1,0,0,0,493,491,1,0,0,0,493,494,1,
- 0,0,0,494,497,1,0,0,0,495,493,1,0,0,0,496,498,5,13,0,0,497,496,1,0,0,0,
- 497,498,1,0,0,0,498,500,1,0,0,0,499,501,5,10,0,0,500,499,1,0,0,0,500,501,
- 1,0,0,0,501,502,1,0,0,0,502,503,6,19,9,0,503,51,1,0,0,0,504,505,5,47,0,
- 0,505,506,5,42,0,0,506,511,1,0,0,0,507,510,3,52,20,0,508,510,9,0,0,0,509,
- 507,1,0,0,0,509,508,1,0,0,0,510,513,1,0,0,0,511,512,1,0,0,0,511,509,1,0,
- 0,0,512,514,1,0,0,0,513,511,1,0,0,0,514,515,5,42,0,0,515,516,5,47,0,0,516,
- 517,1,0,0,0,517,518,6,20,9,0,518,53,1,0,0,0,519,521,7,22,0,0,520,519,1,
- 0,0,0,521,522,1,0,0,0,522,520,1,0,0,0,522,523,1,0,0,0,523,524,1,0,0,0,524,
- 525,6,21,9,0,525,55,1,0,0,0,526,527,3,164,76,0,527,528,1,0,0,0,528,529,
- 6,22,10,0,529,530,6,22,11,0,530,57,1,0,0,0,531,532,3,66,27,0,532,533,1,
- 0,0,0,533,534,6,23,12,0,534,535,6,23,13,0,535,59,1,0,0,0,536,537,3,54,21,
- 0,537,538,1,0,0,0,538,539,6,24,9,0,539,61,1,0,0,0,540,541,3,50,19,0,541,
- 542,1,0,0,0,542,543,6,25,9,0,543,63,1,0,0,0,544,545,3,52,20,0,545,546,1,
- 0,0,0,546,547,6,26,9,0,547,65,1,0,0,0,548,549,5,124,0,0,549,550,1,0,0,0,
- 550,551,6,27,13,0,551,67,1,0,0,0,552,553,7,23,0,0,553,69,1,0,0,0,554,555,
- 7,24,0,0,555,71,1,0,0,0,556,557,5,92,0,0,557,558,7,25,0,0,558,73,1,0,0,
- 0,559,560,8,26,0,0,560,75,1,0,0,0,561,563,7,3,0,0,562,564,7,27,0,0,563,
- 562,1,0,0,0,563,564,1,0,0,0,564,566,1,0,0,0,565,567,3,68,28,0,566,565,1,
- 0,0,0,567,568,1,0,0,0,568,566,1,0,0,0,568,569,1,0,0,0,569,77,1,0,0,0,570,
- 571,5,64,0,0,571,79,1,0,0,0,572,573,5,96,0,0,573,81,1,0,0,0,574,578,8,28,
- 0,0,575,576,5,96,0,0,576,578,5,96,0,0,577,574,1,0,0,0,577,575,1,0,0,0,578,
- 83,1,0,0,0,579,580,5,95,0,0,580,85,1,0,0,0,581,585,3,70,29,0,582,585,3,
- 68,28,0,583,585,3,84,36,0,584,581,1,0,0,0,584,582,1,0,0,0,584,583,1,0,0,
- 0,585,87,1,0,0,0,586,591,5,34,0,0,587,590,3,72,30,0,588,590,3,74,31,0,589,
- 587,1,0,0,0,589,588,1,0,0,0,590,593,1,0,0,0,591,589,1,0,0,0,591,592,1,0,
- 0,0,592,594,1,0,0,0,593,591,1,0,0,0,594,616,5,34,0,0,595,596,5,34,0,0,596,
- 597,5,34,0,0,597,598,5,34,0,0,598,602,1,0,0,0,599,601,8,21,0,0,600,599,
- 1,0,0,0,601,604,1,0,0,0,602,603,1,0,0,0,602,600,1,0,0,0,603,605,1,0,0,0,
- 604,602,1,0,0,0,605,606,5,34,0,0,606,607,5,34,0,0,607,608,5,34,0,0,608,
- 610,1,0,0,0,609,611,5,34,0,0,610,609,1,0,0,0,610,611,1,0,0,0,611,613,1,
- 0,0,0,612,614,5,34,0,0,613,612,1,0,0,0,613,614,1,0,0,0,614,616,1,0,0,0,
- 615,586,1,0,0,0,615,595,1,0,0,0,616,89,1,0,0,0,617,619,3,68,28,0,618,617,
- 1,0,0,0,619,620,1,0,0,0,620,618,1,0,0,0,620,621,1,0,0,0,621,91,1,0,0,0,
- 622,624,3,68,28,0,623,622,1,0,0,0,624,625,1,0,0,0,625,623,1,0,0,0,625,626,
- 1,0,0,0,626,627,1,0,0,0,627,631,3,108,48,0,628,630,3,68,28,0,629,628,1,
- 0,0,0,630,633,1,0,0,0,631,629,1,0,0,0,631,632,1,0,0,0,632,665,1,0,0,0,633,
- 631,1,0,0,0,634,636,3,108,48,0,635,637,3,68,28,0,636,635,1,0,0,0,637,638,
- 1,0,0,0,638,636,1,0,0,0,638,639,1,0,0,0,639,665,1,0,0,0,640,642,3,68,28,
- 0,641,640,1,0,0,0,642,643,1,0,0,0,643,641,1,0,0,0,643,644,1,0,0,0,644,652,
- 1,0,0,0,645,649,3,108,48,0,646,648,3,68,28,0,647,646,1,0,0,0,648,651,1,
- 0,0,0,649,647,1,0,0,0,649,650,1,0,0,0,650,653,1,0,0,0,651,649,1,0,0,0,652,
- 645,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,655,3,76,32,0,655,665,1,
- 0,0,0,656,658,3,108,48,0,657,659,3,68,28,0,658,657,1,0,0,0,659,660,1,0,
- 0,0,660,658,1,0,0,0,660,661,1,0,0,0,661,662,1,0,0,0,662,663,3,76,32,0,663,
- 665,1,0,0,0,664,623,1,0,0,0,664,634,1,0,0,0,664,641,1,0,0,0,664,656,1,0,
- 0,0,665,93,1,0,0,0,666,667,7,29,0,0,667,668,7,30,0,0,668,95,1,0,0,0,669,
- 670,7,12,0,0,670,671,7,9,0,0,671,672,7,0,0,0,672,97,1,0,0,0,673,674,7,12,
- 0,0,674,675,7,2,0,0,675,676,7,4,0,0,676,99,1,0,0,0,677,678,5,61,0,0,678,
- 101,1,0,0,0,679,680,5,58,0,0,680,681,5,58,0,0,681,103,1,0,0,0,682,683,5,
- 44,0,0,683,105,1,0,0,0,684,685,7,0,0,0,685,686,7,3,0,0,686,687,7,2,0,0,
- 687,688,7,4,0,0,688,107,1,0,0,0,689,690,5,46,0,0,690,109,1,0,0,0,691,692,
- 7,15,0,0,692,693,7,12,0,0,693,694,7,13,0,0,694,695,7,2,0,0,695,696,7,3,
- 0,0,696,111,1,0,0,0,697,698,7,15,0,0,698,699,7,1,0,0,699,700,7,6,0,0,700,
- 701,7,2,0,0,701,702,7,5,0,0,702,113,1,0,0,0,703,704,7,13,0,0,704,705,7,
- 12,0,0,705,706,7,2,0,0,706,707,7,5,0,0,707,115,1,0,0,0,708,709,5,40,0,0,
- 709,117,1,0,0,0,710,711,7,1,0,0,711,712,7,9,0,0,712,119,1,0,0,0,713,714,
- 7,1,0,0,714,715,7,2,0,0,715,121,1,0,0,0,716,717,7,13,0,0,717,718,7,1,0,
- 0,718,719,7,18,0,0,719,720,7,3,0,0,720,123,1,0,0,0,721,722,7,9,0,0,722,
- 723,7,7,0,0,723,724,7,5,0,0,724,125,1,0,0,0,725,726,7,9,0,0,726,727,7,31,
- 0,0,727,728,7,13,0,0,728,729,7,13,0,0,729,127,1,0,0,0,730,731,7,9,0,0,731,
- 732,7,31,0,0,732,733,7,13,0,0,733,734,7,13,0,0,734,735,7,2,0,0,735,129,
- 1,0,0,0,736,737,7,7,0,0,737,738,7,6,0,0,738,131,1,0,0,0,739,740,5,63,0,
- 0,740,133,1,0,0,0,741,742,7,6,0,0,742,743,7,13,0,0,743,744,7,1,0,0,744,
- 745,7,18,0,0,745,746,7,3,0,0,746,135,1,0,0,0,747,748,5,41,0,0,748,137,1,
- 0,0,0,749,750,7,5,0,0,750,751,7,6,0,0,751,752,7,31,0,0,752,753,7,3,0,0,
- 753,139,1,0,0,0,754,755,5,61,0,0,755,756,5,61,0,0,756,141,1,0,0,0,757,758,
- 5,61,0,0,758,759,5,126,0,0,759,143,1,0,0,0,760,761,5,33,0,0,761,762,5,61,
- 0,0,762,145,1,0,0,0,763,764,5,60,0,0,764,147,1,0,0,0,765,766,5,60,0,0,766,
- 767,5,61,0,0,767,149,1,0,0,0,768,769,5,62,0,0,769,151,1,0,0,0,770,771,5,
- 62,0,0,771,772,5,61,0,0,772,153,1,0,0,0,773,774,5,43,0,0,774,155,1,0,0,
- 0,775,776,5,45,0,0,776,157,1,0,0,0,777,778,5,42,0,0,778,159,1,0,0,0,779,
- 780,5,47,0,0,780,161,1,0,0,0,781,782,5,37,0,0,782,163,1,0,0,0,783,784,5,
- 91,0,0,784,785,1,0,0,0,785,786,6,76,0,0,786,787,6,76,0,0,787,165,1,0,0,
- 0,788,789,5,93,0,0,789,790,1,0,0,0,790,791,6,77,13,0,791,792,6,77,13,0,
- 792,167,1,0,0,0,793,797,3,70,29,0,794,796,3,86,37,0,795,794,1,0,0,0,796,
- 799,1,0,0,0,797,795,1,0,0,0,797,798,1,0,0,0,798,810,1,0,0,0,799,797,1,0,
- 0,0,800,803,3,84,36,0,801,803,3,78,33,0,802,800,1,0,0,0,802,801,1,0,0,0,
- 803,805,1,0,0,0,804,806,3,86,37,0,805,804,1,0,0,0,806,807,1,0,0,0,807,805,
- 1,0,0,0,807,808,1,0,0,0,808,810,1,0,0,0,809,793,1,0,0,0,809,802,1,0,0,0,
- 810,169,1,0,0,0,811,813,3,80,34,0,812,814,3,82,35,0,813,812,1,0,0,0,814,
- 815,1,0,0,0,815,813,1,0,0,0,815,816,1,0,0,0,816,817,1,0,0,0,817,818,3,80,
- 34,0,818,171,1,0,0,0,819,820,3,170,79,0,820,173,1,0,0,0,821,822,3,50,19,
- 0,822,823,1,0,0,0,823,824,6,81,9,0,824,175,1,0,0,0,825,826,3,52,20,0,826,
- 827,1,0,0,0,827,828,6,82,9,0,828,177,1,0,0,0,829,830,3,54,21,0,830,831,
- 1,0,0,0,831,832,6,83,9,0,832,179,1,0,0,0,833,834,3,66,27,0,834,835,1,0,
- 0,0,835,836,6,84,12,0,836,837,6,84,13,0,837,181,1,0,0,0,838,839,3,164,76,
- 0,839,840,1,0,0,0,840,841,6,85,10,0,841,183,1,0,0,0,842,843,3,166,77,0,
- 843,844,1,0,0,0,844,845,6,86,14,0,845,185,1,0,0,0,846,847,3,104,46,0,847,
- 848,1,0,0,0,848,849,6,87,15,0,849,187,1,0,0,0,850,851,3,100,44,0,851,852,
- 1,0,0,0,852,853,6,88,16,0,853,189,1,0,0,0,854,855,3,88,38,0,855,856,1,0,
- 0,0,856,857,6,89,17,0,857,191,1,0,0,0,858,859,7,7,0,0,859,860,7,8,0,0,860,
- 861,7,5,0,0,861,862,7,1,0,0,862,863,7,7,0,0,863,864,7,9,0,0,864,865,7,2,
- 0,0,865,193,1,0,0,0,866,867,7,16,0,0,867,868,7,3,0,0,868,869,7,5,0,0,869,
- 870,7,12,0,0,870,871,7,0,0,0,871,872,7,12,0,0,872,873,7,5,0,0,873,874,7,
- 12,0,0,874,195,1,0,0,0,875,879,8,32,0,0,876,877,5,47,0,0,877,879,8,33,0,
- 0,878,875,1,0,0,0,878,876,1,0,0,0,879,197,1,0,0,0,880,882,3,196,92,0,881,
- 880,1,0,0,0,882,883,1,0,0,0,883,881,1,0,0,0,883,884,1,0,0,0,884,199,1,0,
- 0,0,885,886,3,50,19,0,886,887,1,0,0,0,887,888,6,94,9,0,888,201,1,0,0,0,
- 889,890,3,52,20,0,890,891,1,0,0,0,891,892,6,95,9,0,892,203,1,0,0,0,893,
- 894,3,54,21,0,894,895,1,0,0,0,895,896,6,96,9,0,896,205,1,0,0,0,897,898,
- 3,66,27,0,898,899,1,0,0,0,899,900,6,97,12,0,900,901,6,97,13,0,901,207,1,
- 0,0,0,902,903,3,108,48,0,903,904,1,0,0,0,904,905,6,98,18,0,905,209,1,0,
- 0,0,906,907,3,104,46,0,907,908,1,0,0,0,908,909,6,99,15,0,909,211,1,0,0,
- 0,910,915,3,70,29,0,911,915,3,68,28,0,912,915,3,84,36,0,913,915,3,158,73,
- 0,914,910,1,0,0,0,914,911,1,0,0,0,914,912,1,0,0,0,914,913,1,0,0,0,915,213,
- 1,0,0,0,916,919,3,70,29,0,917,919,3,158,73,0,918,916,1,0,0,0,918,917,1,
- 0,0,0,919,923,1,0,0,0,920,922,3,212,100,0,921,920,1,0,0,0,922,925,1,0,0,
- 0,923,921,1,0,0,0,923,924,1,0,0,0,924,936,1,0,0,0,925,923,1,0,0,0,926,929,
- 3,84,36,0,927,929,3,78,33,0,928,926,1,0,0,0,928,927,1,0,0,0,929,931,1,0,
- 0,0,930,932,3,212,100,0,931,930,1,0,0,0,932,933,1,0,0,0,933,931,1,0,0,0,
- 933,934,1,0,0,0,934,936,1,0,0,0,935,918,1,0,0,0,935,928,1,0,0,0,936,215,
- 1,0,0,0,937,940,3,214,101,0,938,940,3,170,79,0,939,937,1,0,0,0,939,938,
- 1,0,0,0,940,941,1,0,0,0,941,939,1,0,0,0,941,942,1,0,0,0,942,217,1,0,0,0,
- 943,944,3,50,19,0,944,945,1,0,0,0,945,946,6,103,9,0,946,219,1,0,0,0,947,
- 948,3,52,20,0,948,949,1,0,0,0,949,950,6,104,9,0,950,221,1,0,0,0,951,952,
- 3,54,21,0,952,953,1,0,0,0,953,954,6,105,9,0,954,223,1,0,0,0,955,956,3,66,
- 27,0,956,957,1,0,0,0,957,958,6,106,12,0,958,959,6,106,13,0,959,225,1,0,
- 0,0,960,961,3,100,44,0,961,962,1,0,0,0,962,963,6,107,16,0,963,227,1,0,0,
- 0,964,965,3,104,46,0,965,966,1,0,0,0,966,967,6,108,15,0,967,229,1,0,0,0,
- 968,969,3,108,48,0,969,970,1,0,0,0,970,971,6,109,18,0,971,231,1,0,0,0,972,
- 973,7,12,0,0,973,974,7,2,0,0,974,233,1,0,0,0,975,976,3,216,102,0,976,977,
- 1,0,0,0,977,978,6,111,19,0,978,235,1,0,0,0,979,980,3,50,19,0,980,981,1,
- 0,0,0,981,982,6,112,9,0,982,237,1,0,0,0,983,984,3,52,20,0,984,985,1,0,0,
- 0,985,986,6,113,9,0,986,239,1,0,0,0,987,988,3,54,21,0,988,989,1,0,0,0,989,
- 990,6,114,9,0,990,241,1,0,0,0,991,992,3,66,27,0,992,993,1,0,0,0,993,994,
- 6,115,12,0,994,995,6,115,13,0,995,243,1,0,0,0,996,997,3,164,76,0,997,998,
- 1,0,0,0,998,999,6,116,10,0,999,1000,6,116,20,0,1000,245,1,0,0,0,1001,1002,
- 7,7,0,0,1002,1003,7,9,0,0,1003,1004,1,0,0,0,1004,1005,6,117,21,0,1005,247,
- 1,0,0,0,1006,1007,7,19,0,0,1007,1008,7,1,0,0,1008,1009,7,5,0,0,1009,1010,
- 7,10,0,0,1010,1011,1,0,0,0,1011,1012,6,118,21,0,1012,249,1,0,0,0,1013,1014,
- 8,34,0,0,1014,251,1,0,0,0,1015,1017,3,250,119,0,1016,1015,1,0,0,0,1017,
- 1018,1,0,0,0,1018,1016,1,0,0,0,1018,1019,1,0,0,0,1019,1020,1,0,0,0,1020,
- 1021,3,320,154,0,1021,1023,1,0,0,0,1022,1016,1,0,0,0,1022,1023,1,0,0,0,
- 1023,1025,1,0,0,0,1024,1026,3,250,119,0,1025,1024,1,0,0,0,1026,1027,1,0,
- 0,0,1027,1025,1,0,0,0,1027,1028,1,0,0,0,1028,253,1,0,0,0,1029,1030,3,172,
- 80,0,1030,1031,1,0,0,0,1031,1032,6,121,22,0,1032,255,1,0,0,0,1033,1034,
- 3,252,120,0,1034,1035,1,0,0,0,1035,1036,6,122,23,0,1036,257,1,0,0,0,1037,
- 1038,3,50,19,0,1038,1039,1,0,0,0,1039,1040,6,123,9,0,1040,259,1,0,0,0,1041,
- 1042,3,52,20,0,1042,1043,1,0,0,0,1043,1044,6,124,9,0,1044,261,1,0,0,0,1045,
- 1046,3,54,21,0,1046,1047,1,0,0,0,1047,1048,6,125,9,0,1048,263,1,0,0,0,1049,
- 1050,3,66,27,0,1050,1051,1,0,0,0,1051,1052,6,126,12,0,1052,1053,6,126,13,
- 0,1053,1054,6,126,13,0,1054,265,1,0,0,0,1055,1056,3,100,44,0,1056,1057,
- 1,0,0,0,1057,1058,6,127,16,0,1058,267,1,0,0,0,1059,1060,3,104,46,0,1060,
- 1061,1,0,0,0,1061,1062,6,128,15,0,1062,269,1,0,0,0,1063,1064,3,108,48,0,
- 1064,1065,1,0,0,0,1065,1066,6,129,18,0,1066,271,1,0,0,0,1067,1068,3,248,
- 118,0,1068,1069,1,0,0,0,1069,1070,6,130,24,0,1070,273,1,0,0,0,1071,1072,
- 3,216,102,0,1072,1073,1,0,0,0,1073,1074,6,131,19,0,1074,275,1,0,0,0,1075,
- 1076,3,172,80,0,1076,1077,1,0,0,0,1077,1078,6,132,22,0,1078,277,1,0,0,0,
- 1079,1080,3,50,19,0,1080,1081,1,0,0,0,1081,1082,6,133,9,0,1082,279,1,0,
- 0,0,1083,1084,3,52,20,0,1084,1085,1,0,0,0,1085,1086,6,134,9,0,1086,281,
- 1,0,0,0,1087,1088,3,54,21,0,1088,1089,1,0,0,0,1089,1090,6,135,9,0,1090,
- 283,1,0,0,0,1091,1092,3,66,27,0,1092,1093,1,0,0,0,1093,1094,6,136,12,0,
- 1094,1095,6,136,13,0,1095,285,1,0,0,0,1096,1097,3,108,48,0,1097,1098,1,
- 0,0,0,1098,1099,6,137,18,0,1099,287,1,0,0,0,1100,1101,3,172,80,0,1101,1102,
- 1,0,0,0,1102,1103,6,138,22,0,1103,289,1,0,0,0,1104,1105,3,168,78,0,1105,
- 1106,1,0,0,0,1106,1107,6,139,25,0,1107,291,1,0,0,0,1108,1109,3,50,19,0,
- 1109,1110,1,0,0,0,1110,1111,6,140,9,0,1111,293,1,0,0,0,1112,1113,3,52,20,
- 0,1113,1114,1,0,0,0,1114,1115,6,141,9,0,1115,295,1,0,0,0,1116,1117,3,54,
- 21,0,1117,1118,1,0,0,0,1118,1119,6,142,9,0,1119,297,1,0,0,0,1120,1121,3,
- 66,27,0,1121,1122,1,0,0,0,1122,1123,6,143,12,0,1123,1124,6,143,13,0,1124,
- 299,1,0,0,0,1125,1126,7,1,0,0,1126,1127,7,9,0,0,1127,1128,7,15,0,0,1128,
- 1129,7,7,0,0,1129,301,1,0,0,0,1130,1131,3,50,19,0,1131,1132,1,0,0,0,1132,
- 1133,6,145,9,0,1133,303,1,0,0,0,1134,1135,3,52,20,0,1135,1136,1,0,0,0,1136,
- 1137,6,146,9,0,1137,305,1,0,0,0,1138,1139,3,54,21,0,1139,1140,1,0,0,0,1140,
- 1141,6,147,9,0,1141,307,1,0,0,0,1142,1143,3,66,27,0,1143,1144,1,0,0,0,1144,
- 1145,6,148,12,0,1145,1146,6,148,13,0,1146,309,1,0,0,0,1147,1148,7,15,0,
- 0,1148,1149,7,31,0,0,1149,1150,7,9,0,0,1150,1151,7,4,0,0,1151,1152,7,5,
- 0,0,1152,1153,7,1,0,0,1153,1154,7,7,0,0,1154,1155,7,9,0,0,1155,1156,7,2,
- 0,0,1156,311,1,0,0,0,1157,1158,3,50,19,0,1158,1159,1,0,0,0,1159,1160,6,
- 150,9,0,1160,313,1,0,0,0,1161,1162,3,52,20,0,1162,1163,1,0,0,0,1163,1164,
- 6,151,9,0,1164,315,1,0,0,0,1165,1166,3,54,21,0,1166,1167,1,0,0,0,1167,1168,
- 6,152,9,0,1168,317,1,0,0,0,1169,1170,3,166,77,0,1170,1171,1,0,0,0,1171,
- 1172,6,153,14,0,1172,1173,6,153,13,0,1173,319,1,0,0,0,1174,1175,5,58,0,
- 0,1175,321,1,0,0,0,1176,1182,3,78,33,0,1177,1182,3,68,28,0,1178,1182,3,
- 108,48,0,1179,1182,3,70,29,0,1180,1182,3,84,36,0,1181,1176,1,0,0,0,1181,
- 1177,1,0,0,0,1181,1178,1,0,0,0,1181,1179,1,0,0,0,1181,1180,1,0,0,0,1182,
- 1183,1,0,0,0,1183,1181,1,0,0,0,1183,1184,1,0,0,0,1184,323,1,0,0,0,1185,
- 1186,3,50,19,0,1186,1187,1,0,0,0,1187,1188,6,156,9,0,1188,325,1,0,0,0,1189,
- 1190,3,52,20,0,1190,1191,1,0,0,0,1191,1192,6,157,9,0,1192,327,1,0,0,0,1193,
- 1194,3,54,21,0,1194,1195,1,0,0,0,1195,1196,6,158,9,0,1196,329,1,0,0,0,58,
- 0,1,2,3,4,5,6,7,8,9,10,11,483,493,497,500,509,511,522,563,568,577,584,589,
- 591,602,610,613,615,620,625,631,638,643,649,652,660,664,797,802,807,809,
- 815,878,883,914,918,923,928,933,935,939,941,1018,1022,1027,1181,1183,26,
- 5,2,0,5,4,0,5,6,0,5,1,0,5,3,0,5,10,0,5,8,0,5,5,0,5,9,0,0,1,0,7,65,0,5,0,
- 0,7,26,0,4,0,0,7,66,0,7,35,0,7,33,0,7,27,0,7,37,0,7,78,0,5,11,0,5,7,0,7,
- 68,0,7,88,0,7,87,0,7,67,0];
+ 7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,1,0,1,
+ 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,
+ 2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,
+ 4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,
+ 6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,
+ 8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,
+ 10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
+ 1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,
+ 13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
+ 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,
+ 17,1,17,1,18,4,18,480,8,18,11,18,12,18,481,1,18,1,18,1,19,1,19,1,19,1,19,
+ 5,19,490,8,19,10,19,12,19,493,9,19,1,19,3,19,496,8,19,1,19,3,19,499,8,19,
+ 1,19,1,19,1,20,1,20,1,20,1,20,1,20,5,20,508,8,20,10,20,12,20,511,9,20,1,
+ 20,1,20,1,20,1,20,1,20,1,21,4,21,519,8,21,11,21,12,21,520,1,21,1,21,1,22,
+ 1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,25,1,
+ 25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,28,1,28,1,29,1,29,
+ 1,30,1,30,1,30,1,31,1,31,1,32,1,32,3,32,562,8,32,1,32,4,32,565,8,32,11,
+ 32,12,32,566,1,33,1,33,1,34,1,34,1,35,1,35,1,35,3,35,576,8,35,1,36,1,36,
+ 1,37,1,37,1,37,3,37,583,8,37,1,38,1,38,1,38,5,38,588,8,38,10,38,12,38,591,
+ 9,38,1,38,1,38,1,38,1,38,1,38,1,38,5,38,599,8,38,10,38,12,38,602,9,38,1,
+ 38,1,38,1,38,1,38,1,38,3,38,609,8,38,1,38,3,38,612,8,38,3,38,614,8,38,1,
+ 39,4,39,617,8,39,11,39,12,39,618,1,40,4,40,622,8,40,11,40,12,40,623,1,40,
+ 1,40,5,40,628,8,40,10,40,12,40,631,9,40,1,40,1,40,4,40,635,8,40,11,40,12,
+ 40,636,1,40,4,40,640,8,40,11,40,12,40,641,1,40,1,40,5,40,646,8,40,10,40,
+ 12,40,649,9,40,3,40,651,8,40,1,40,1,40,1,40,1,40,4,40,657,8,40,11,40,12,
+ 40,658,1,40,1,40,3,40,663,8,40,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,
+ 1,43,1,43,1,43,1,44,1,44,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1,47,1,47,1,
+ 47,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,
+ 1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54,1,55,1,
+ 55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,
+ 1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,
+ 61,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,65,1,65,1,65,1,66,
+ 1,66,1,66,1,67,1,67,1,68,1,68,1,68,1,69,1,69,1,70,1,70,1,70,1,71,1,71,1,
+ 72,1,72,1,73,1,73,1,74,1,74,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,77,1,77,
+ 1,77,1,77,1,77,1,78,1,78,5,78,794,8,78,10,78,12,78,797,9,78,1,78,1,78,3,
+ 78,801,8,78,1,78,4,78,804,8,78,11,78,12,78,805,3,78,808,8,78,1,79,1,79,
+ 4,79,812,8,79,11,79,12,79,813,1,79,1,79,1,80,1,80,1,81,1,81,1,81,1,81,1,
+ 82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,
+ 1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,
+ 89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,
+ 1,91,3,91,869,8,91,1,92,4,92,872,8,92,11,92,12,92,873,1,93,1,93,1,93,1,
+ 93,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,
+ 1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,3,99,905,8,99,1,
+ 100,1,100,3,100,909,8,100,1,100,5,100,912,8,100,10,100,12,100,915,9,100,
+ 1,100,1,100,3,100,919,8,100,1,100,4,100,922,8,100,11,100,12,100,923,3,100,
+ 926,8,100,1,101,1,101,4,101,930,8,101,11,101,12,101,931,1,102,1,102,1,102,
+ 1,102,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,105,1,105,1,105,
+ 1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,108,1,108,
+ 1,108,1,108,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,111,1,111,1,111,
+ 1,111,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,114,1,114,1,114,
+ 1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,
+ 1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,119,4,119,1007,
+ 8,119,11,119,12,119,1008,1,119,1,119,3,119,1013,8,119,1,119,4,119,1016,
+ 8,119,11,119,12,119,1017,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,
+ 1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,
+ 1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,127,1,127,
+ 1,127,1,127,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,130,1,130,
+ 1,130,1,130,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,133,1,133,
+ 1,133,1,133,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,136,
+ 1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,139,
+ 1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,142,
+ 1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,
+ 1,144,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,147,1,147,1,147,
+ 1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,
+ 1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,
+ 1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,154,1,154,1,154,1,154,1,154,
+ 4,154,1172,8,154,11,154,12,154,1173,1,155,1,155,1,155,1,155,1,156,1,156,
+ 1,156,1,156,1,157,1,157,1,157,1,157,2,509,600,0,158,12,1,14,2,16,3,18,4,
+ 20,5,22,6,24,7,26,8,28,9,30,10,32,11,34,12,36,13,38,14,40,15,42,16,44,17,
+ 46,18,48,19,50,20,52,21,54,22,56,0,58,0,60,23,62,24,64,25,66,26,68,0,70,
+ 0,72,0,74,0,76,0,78,0,80,0,82,0,84,0,86,0,88,27,90,28,92,29,94,30,96,31,
+ 98,32,100,33,102,34,104,35,106,36,108,37,110,38,112,39,114,40,116,41,118,
+ 42,120,43,122,44,124,45,126,46,128,47,130,48,132,49,134,50,136,51,138,52,
+ 140,53,142,54,144,55,146,56,148,57,150,58,152,59,154,60,156,61,158,62,160,
+ 63,162,64,164,65,166,66,168,67,170,0,172,68,174,69,176,70,178,71,180,0,
+ 182,0,184,0,186,0,188,0,190,0,192,72,194,0,196,73,198,74,200,75,202,76,
+ 204,0,206,0,208,0,210,0,212,0,214,77,216,78,218,79,220,80,222,0,224,0,226,
+ 0,228,0,230,81,232,0,234,82,236,83,238,84,240,0,242,0,244,85,246,86,248,
+ 0,250,87,252,0,254,0,256,88,258,89,260,90,262,0,264,0,266,0,268,0,270,0,
+ 272,0,274,0,276,91,278,92,280,93,282,0,284,0,286,0,288,0,290,94,292,95,
+ 294,96,296,0,298,97,300,98,302,99,304,100,306,0,308,101,310,102,312,103,
+ 314,104,316,0,318,105,320,106,322,107,324,108,326,109,12,0,1,2,3,4,5,6,
+ 7,8,9,10,11,35,2,0,68,68,100,100,2,0,73,73,105,105,2,0,83,83,115,115,2,
+ 0,69,69,101,101,2,0,67,67,99,99,2,0,84,84,116,116,2,0,82,82,114,114,2,0,
+ 79,79,111,111,2,0,80,80,112,112,2,0,78,78,110,110,2,0,72,72,104,104,2,0,
+ 86,86,118,118,2,0,65,65,97,97,2,0,76,76,108,108,2,0,88,88,120,120,2,0,70,
+ 70,102,102,2,0,77,77,109,109,2,0,71,71,103,103,2,0,75,75,107,107,2,0,87,
+ 87,119,119,6,0,9,10,13,13,32,32,47,47,91,91,93,93,2,0,10,10,13,13,3,0,9,
+ 10,13,13,32,32,1,0,48,57,2,0,65,90,97,122,8,0,34,34,78,78,82,82,84,84,92,
+ 92,110,110,114,114,116,116,4,0,10,10,13,13,34,34,92,92,2,0,43,43,45,45,
+ 1,0,96,96,2,0,66,66,98,98,2,0,89,89,121,121,2,0,85,85,117,117,10,0,9,10,
+ 13,13,32,32,44,44,47,47,61,61,91,91,93,93,96,96,124,124,2,0,42,42,47,47,
+ 11,0,9,10,13,13,32,32,34,35,44,44,47,47,58,58,60,60,62,63,92,92,124,124,
+ 1214,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,
+ 22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,
+ 0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,
+ 44,1,0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,
+ 0,0,1,56,1,0,0,0,1,58,1,0,0,0,1,60,1,0,0,0,1,62,1,0,0,0,1,64,1,0,0,0,2,
+ 66,1,0,0,0,2,88,1,0,0,0,2,90,1,0,0,0,2,92,1,0,0,0,2,94,1,0,0,0,2,96,1,0,
+ 0,0,2,98,1,0,0,0,2,100,1,0,0,0,2,102,1,0,0,0,2,104,1,0,0,0,2,106,1,0,0,
+ 0,2,108,1,0,0,0,2,110,1,0,0,0,2,112,1,0,0,0,2,114,1,0,0,0,2,116,1,0,0,0,
+ 2,118,1,0,0,0,2,120,1,0,0,0,2,122,1,0,0,0,2,124,1,0,0,0,2,126,1,0,0,0,2,
+ 128,1,0,0,0,2,130,1,0,0,0,2,132,1,0,0,0,2,134,1,0,0,0,2,136,1,0,0,0,2,138,
+ 1,0,0,0,2,140,1,0,0,0,2,142,1,0,0,0,2,144,1,0,0,0,2,146,1,0,0,0,2,148,1,
+ 0,0,0,2,150,1,0,0,0,2,152,1,0,0,0,2,154,1,0,0,0,2,156,1,0,0,0,2,158,1,0,
+ 0,0,2,160,1,0,0,0,2,162,1,0,0,0,2,164,1,0,0,0,2,166,1,0,0,0,2,168,1,0,0,
+ 0,2,172,1,0,0,0,2,174,1,0,0,0,2,176,1,0,0,0,2,178,1,0,0,0,3,180,1,0,0,0,
+ 3,182,1,0,0,0,3,184,1,0,0,0,3,186,1,0,0,0,3,188,1,0,0,0,3,190,1,0,0,0,3,
+ 192,1,0,0,0,3,196,1,0,0,0,3,198,1,0,0,0,3,200,1,0,0,0,3,202,1,0,0,0,4,204,
+ 1,0,0,0,4,206,1,0,0,0,4,208,1,0,0,0,4,214,1,0,0,0,4,216,1,0,0,0,4,218,1,
+ 0,0,0,4,220,1,0,0,0,5,222,1,0,0,0,5,224,1,0,0,0,5,226,1,0,0,0,5,228,1,0,
+ 0,0,5,230,1,0,0,0,5,232,1,0,0,0,5,234,1,0,0,0,5,236,1,0,0,0,5,238,1,0,0,
+ 0,6,240,1,0,0,0,6,242,1,0,0,0,6,244,1,0,0,0,6,246,1,0,0,0,6,250,1,0,0,0,
+ 6,252,1,0,0,0,6,254,1,0,0,0,6,256,1,0,0,0,6,258,1,0,0,0,6,260,1,0,0,0,7,
+ 262,1,0,0,0,7,264,1,0,0,0,7,266,1,0,0,0,7,268,1,0,0,0,7,270,1,0,0,0,7,272,
+ 1,0,0,0,7,274,1,0,0,0,7,276,1,0,0,0,7,278,1,0,0,0,7,280,1,0,0,0,8,282,1,
+ 0,0,0,8,284,1,0,0,0,8,286,1,0,0,0,8,288,1,0,0,0,8,290,1,0,0,0,8,292,1,0,
+ 0,0,8,294,1,0,0,0,9,296,1,0,0,0,9,298,1,0,0,0,9,300,1,0,0,0,9,302,1,0,0,
+ 0,9,304,1,0,0,0,10,306,1,0,0,0,10,308,1,0,0,0,10,310,1,0,0,0,10,312,1,0,
+ 0,0,10,314,1,0,0,0,11,316,1,0,0,0,11,318,1,0,0,0,11,320,1,0,0,0,11,322,
+ 1,0,0,0,11,324,1,0,0,0,11,326,1,0,0,0,12,328,1,0,0,0,14,338,1,0,0,0,16,
+ 345,1,0,0,0,18,354,1,0,0,0,20,361,1,0,0,0,22,371,1,0,0,0,24,378,1,0,0,0,
+ 26,385,1,0,0,0,28,399,1,0,0,0,30,406,1,0,0,0,32,414,1,0,0,0,34,421,1,0,
+ 0,0,36,433,1,0,0,0,38,442,1,0,0,0,40,448,1,0,0,0,42,455,1,0,0,0,44,462,
+ 1,0,0,0,46,470,1,0,0,0,48,479,1,0,0,0,50,485,1,0,0,0,52,502,1,0,0,0,54,
+ 518,1,0,0,0,56,524,1,0,0,0,58,529,1,0,0,0,60,534,1,0,0,0,62,538,1,0,0,0,
+ 64,542,1,0,0,0,66,546,1,0,0,0,68,550,1,0,0,0,70,552,1,0,0,0,72,554,1,0,
+ 0,0,74,557,1,0,0,0,76,559,1,0,0,0,78,568,1,0,0,0,80,570,1,0,0,0,82,575,
+ 1,0,0,0,84,577,1,0,0,0,86,582,1,0,0,0,88,613,1,0,0,0,90,616,1,0,0,0,92,
+ 662,1,0,0,0,94,664,1,0,0,0,96,667,1,0,0,0,98,671,1,0,0,0,100,675,1,0,0,
+ 0,102,677,1,0,0,0,104,680,1,0,0,0,106,682,1,0,0,0,108,687,1,0,0,0,110,689,
+ 1,0,0,0,112,695,1,0,0,0,114,701,1,0,0,0,116,706,1,0,0,0,118,708,1,0,0,0,
+ 120,711,1,0,0,0,122,714,1,0,0,0,124,719,1,0,0,0,126,723,1,0,0,0,128,728,
+ 1,0,0,0,130,734,1,0,0,0,132,737,1,0,0,0,134,739,1,0,0,0,136,745,1,0,0,0,
+ 138,747,1,0,0,0,140,752,1,0,0,0,142,755,1,0,0,0,144,758,1,0,0,0,146,761,
+ 1,0,0,0,148,763,1,0,0,0,150,766,1,0,0,0,152,768,1,0,0,0,154,771,1,0,0,0,
+ 156,773,1,0,0,0,158,775,1,0,0,0,160,777,1,0,0,0,162,779,1,0,0,0,164,781,
+ 1,0,0,0,166,786,1,0,0,0,168,807,1,0,0,0,170,809,1,0,0,0,172,817,1,0,0,0,
+ 174,819,1,0,0,0,176,823,1,0,0,0,178,827,1,0,0,0,180,831,1,0,0,0,182,836,
+ 1,0,0,0,184,840,1,0,0,0,186,844,1,0,0,0,188,848,1,0,0,0,190,852,1,0,0,0,
+ 192,856,1,0,0,0,194,868,1,0,0,0,196,871,1,0,0,0,198,875,1,0,0,0,200,879,
+ 1,0,0,0,202,883,1,0,0,0,204,887,1,0,0,0,206,892,1,0,0,0,208,896,1,0,0,0,
+ 210,904,1,0,0,0,212,925,1,0,0,0,214,929,1,0,0,0,216,933,1,0,0,0,218,937,
+ 1,0,0,0,220,941,1,0,0,0,222,945,1,0,0,0,224,950,1,0,0,0,226,954,1,0,0,0,
+ 228,958,1,0,0,0,230,962,1,0,0,0,232,965,1,0,0,0,234,969,1,0,0,0,236,973,
+ 1,0,0,0,238,977,1,0,0,0,240,981,1,0,0,0,242,986,1,0,0,0,244,991,1,0,0,0,
+ 246,996,1,0,0,0,248,1003,1,0,0,0,250,1012,1,0,0,0,252,1019,1,0,0,0,254,
+ 1023,1,0,0,0,256,1027,1,0,0,0,258,1031,1,0,0,0,260,1035,1,0,0,0,262,1039,
+ 1,0,0,0,264,1045,1,0,0,0,266,1049,1,0,0,0,268,1053,1,0,0,0,270,1057,1,0,
+ 0,0,272,1061,1,0,0,0,274,1065,1,0,0,0,276,1069,1,0,0,0,278,1073,1,0,0,0,
+ 280,1077,1,0,0,0,282,1081,1,0,0,0,284,1086,1,0,0,0,286,1090,1,0,0,0,288,
+ 1094,1,0,0,0,290,1098,1,0,0,0,292,1102,1,0,0,0,294,1106,1,0,0,0,296,1110,
+ 1,0,0,0,298,1115,1,0,0,0,300,1120,1,0,0,0,302,1124,1,0,0,0,304,1128,1,0,
+ 0,0,306,1132,1,0,0,0,308,1137,1,0,0,0,310,1147,1,0,0,0,312,1151,1,0,0,0,
+ 314,1155,1,0,0,0,316,1159,1,0,0,0,318,1164,1,0,0,0,320,1171,1,0,0,0,322,
+ 1175,1,0,0,0,324,1179,1,0,0,0,326,1183,1,0,0,0,328,329,7,0,0,0,329,330,
+ 7,1,0,0,330,331,7,2,0,0,331,332,7,2,0,0,332,333,7,3,0,0,333,334,7,4,0,0,
+ 334,335,7,5,0,0,335,336,1,0,0,0,336,337,6,0,0,0,337,13,1,0,0,0,338,339,
+ 7,0,0,0,339,340,7,6,0,0,340,341,7,7,0,0,341,342,7,8,0,0,342,343,1,0,0,0,
+ 343,344,6,1,1,0,344,15,1,0,0,0,345,346,7,3,0,0,346,347,7,9,0,0,347,348,
+ 7,6,0,0,348,349,7,1,0,0,349,350,7,4,0,0,350,351,7,10,0,0,351,352,1,0,0,
+ 0,352,353,6,2,2,0,353,17,1,0,0,0,354,355,7,3,0,0,355,356,7,11,0,0,356,357,
+ 7,12,0,0,357,358,7,13,0,0,358,359,1,0,0,0,359,360,6,3,0,0,360,19,1,0,0,
+ 0,361,362,7,3,0,0,362,363,7,14,0,0,363,364,7,8,0,0,364,365,7,13,0,0,365,
+ 366,7,12,0,0,366,367,7,1,0,0,367,368,7,9,0,0,368,369,1,0,0,0,369,370,6,
+ 4,3,0,370,21,1,0,0,0,371,372,7,15,0,0,372,373,7,6,0,0,373,374,7,7,0,0,374,
+ 375,7,16,0,0,375,376,1,0,0,0,376,377,6,5,4,0,377,23,1,0,0,0,378,379,7,17,
+ 0,0,379,380,7,6,0,0,380,381,7,7,0,0,381,382,7,18,0,0,382,383,1,0,0,0,383,
+ 384,6,6,0,0,384,25,1,0,0,0,385,386,7,1,0,0,386,387,7,9,0,0,387,388,7,13,
+ 0,0,388,389,7,1,0,0,389,390,7,9,0,0,390,391,7,3,0,0,391,392,7,2,0,0,392,
+ 393,7,5,0,0,393,394,7,12,0,0,394,395,7,5,0,0,395,396,7,2,0,0,396,397,1,
+ 0,0,0,397,398,6,7,0,0,398,27,1,0,0,0,399,400,7,18,0,0,400,401,7,3,0,0,401,
+ 402,7,3,0,0,402,403,7,8,0,0,403,404,1,0,0,0,404,405,6,8,1,0,405,29,1,0,
+ 0,0,406,407,7,13,0,0,407,408,7,1,0,0,408,409,7,16,0,0,409,410,7,1,0,0,410,
+ 411,7,5,0,0,411,412,1,0,0,0,412,413,6,9,0,0,413,31,1,0,0,0,414,415,7,16,
+ 0,0,415,416,7,3,0,0,416,417,7,5,0,0,417,418,7,12,0,0,418,419,1,0,0,0,419,
+ 420,6,10,5,0,420,33,1,0,0,0,421,422,7,16,0,0,422,423,7,11,0,0,423,424,5,
+ 95,0,0,424,425,7,3,0,0,425,426,7,14,0,0,426,427,7,8,0,0,427,428,7,12,0,
+ 0,428,429,7,9,0,0,429,430,7,0,0,0,430,431,1,0,0,0,431,432,6,11,6,0,432,
+ 35,1,0,0,0,433,434,7,6,0,0,434,435,7,3,0,0,435,436,7,9,0,0,436,437,7,12,
+ 0,0,437,438,7,16,0,0,438,439,7,3,0,0,439,440,1,0,0,0,440,441,6,12,7,0,441,
+ 37,1,0,0,0,442,443,7,6,0,0,443,444,7,7,0,0,444,445,7,19,0,0,445,446,1,0,
+ 0,0,446,447,6,13,0,0,447,39,1,0,0,0,448,449,7,2,0,0,449,450,7,10,0,0,450,
+ 451,7,7,0,0,451,452,7,19,0,0,452,453,1,0,0,0,453,454,6,14,8,0,454,41,1,
+ 0,0,0,455,456,7,2,0,0,456,457,7,7,0,0,457,458,7,6,0,0,458,459,7,5,0,0,459,
+ 460,1,0,0,0,460,461,6,15,0,0,461,43,1,0,0,0,462,463,7,2,0,0,463,464,7,5,
+ 0,0,464,465,7,12,0,0,465,466,7,5,0,0,466,467,7,2,0,0,467,468,1,0,0,0,468,
+ 469,6,16,0,0,469,45,1,0,0,0,470,471,7,19,0,0,471,472,7,10,0,0,472,473,7,
+ 3,0,0,473,474,7,6,0,0,474,475,7,3,0,0,475,476,1,0,0,0,476,477,6,17,0,0,
+ 477,47,1,0,0,0,478,480,8,20,0,0,479,478,1,0,0,0,480,481,1,0,0,0,481,479,
+ 1,0,0,0,481,482,1,0,0,0,482,483,1,0,0,0,483,484,6,18,0,0,484,49,1,0,0,0,
+ 485,486,5,47,0,0,486,487,5,47,0,0,487,491,1,0,0,0,488,490,8,21,0,0,489,
+ 488,1,0,0,0,490,493,1,0,0,0,491,489,1,0,0,0,491,492,1,0,0,0,492,495,1,0,
+ 0,0,493,491,1,0,0,0,494,496,5,13,0,0,495,494,1,0,0,0,495,496,1,0,0,0,496,
+ 498,1,0,0,0,497,499,5,10,0,0,498,497,1,0,0,0,498,499,1,0,0,0,499,500,1,
+ 0,0,0,500,501,6,19,9,0,501,51,1,0,0,0,502,503,5,47,0,0,503,504,5,42,0,0,
+ 504,509,1,0,0,0,505,508,3,52,20,0,506,508,9,0,0,0,507,505,1,0,0,0,507,506,
+ 1,0,0,0,508,511,1,0,0,0,509,510,1,0,0,0,509,507,1,0,0,0,510,512,1,0,0,0,
+ 511,509,1,0,0,0,512,513,5,42,0,0,513,514,5,47,0,0,514,515,1,0,0,0,515,516,
+ 6,20,9,0,516,53,1,0,0,0,517,519,7,22,0,0,518,517,1,0,0,0,519,520,1,0,0,
+ 0,520,518,1,0,0,0,520,521,1,0,0,0,521,522,1,0,0,0,522,523,6,21,9,0,523,
+ 55,1,0,0,0,524,525,3,164,76,0,525,526,1,0,0,0,526,527,6,22,10,0,527,528,
+ 6,22,11,0,528,57,1,0,0,0,529,530,3,66,27,0,530,531,1,0,0,0,531,532,6,23,
+ 12,0,532,533,6,23,13,0,533,59,1,0,0,0,534,535,3,54,21,0,535,536,1,0,0,0,
+ 536,537,6,24,9,0,537,61,1,0,0,0,538,539,3,50,19,0,539,540,1,0,0,0,540,541,
+ 6,25,9,0,541,63,1,0,0,0,542,543,3,52,20,0,543,544,1,0,0,0,544,545,6,26,
+ 9,0,545,65,1,0,0,0,546,547,5,124,0,0,547,548,1,0,0,0,548,549,6,27,13,0,
+ 549,67,1,0,0,0,550,551,7,23,0,0,551,69,1,0,0,0,552,553,7,24,0,0,553,71,
+ 1,0,0,0,554,555,5,92,0,0,555,556,7,25,0,0,556,73,1,0,0,0,557,558,8,26,0,
+ 0,558,75,1,0,0,0,559,561,7,3,0,0,560,562,7,27,0,0,561,560,1,0,0,0,561,562,
+ 1,0,0,0,562,564,1,0,0,0,563,565,3,68,28,0,564,563,1,0,0,0,565,566,1,0,0,
+ 0,566,564,1,0,0,0,566,567,1,0,0,0,567,77,1,0,0,0,568,569,5,64,0,0,569,79,
+ 1,0,0,0,570,571,5,96,0,0,571,81,1,0,0,0,572,576,8,28,0,0,573,574,5,96,0,
+ 0,574,576,5,96,0,0,575,572,1,0,0,0,575,573,1,0,0,0,576,83,1,0,0,0,577,578,
+ 5,95,0,0,578,85,1,0,0,0,579,583,3,70,29,0,580,583,3,68,28,0,581,583,3,84,
+ 36,0,582,579,1,0,0,0,582,580,1,0,0,0,582,581,1,0,0,0,583,87,1,0,0,0,584,
+ 589,5,34,0,0,585,588,3,72,30,0,586,588,3,74,31,0,587,585,1,0,0,0,587,586,
+ 1,0,0,0,588,591,1,0,0,0,589,587,1,0,0,0,589,590,1,0,0,0,590,592,1,0,0,0,
+ 591,589,1,0,0,0,592,614,5,34,0,0,593,594,5,34,0,0,594,595,5,34,0,0,595,
+ 596,5,34,0,0,596,600,1,0,0,0,597,599,8,21,0,0,598,597,1,0,0,0,599,602,1,
+ 0,0,0,600,601,1,0,0,0,600,598,1,0,0,0,601,603,1,0,0,0,602,600,1,0,0,0,603,
+ 604,5,34,0,0,604,605,5,34,0,0,605,606,5,34,0,0,606,608,1,0,0,0,607,609,
+ 5,34,0,0,608,607,1,0,0,0,608,609,1,0,0,0,609,611,1,0,0,0,610,612,5,34,0,
+ 0,611,610,1,0,0,0,611,612,1,0,0,0,612,614,1,0,0,0,613,584,1,0,0,0,613,593,
+ 1,0,0,0,614,89,1,0,0,0,615,617,3,68,28,0,616,615,1,0,0,0,617,618,1,0,0,
+ 0,618,616,1,0,0,0,618,619,1,0,0,0,619,91,1,0,0,0,620,622,3,68,28,0,621,
+ 620,1,0,0,0,622,623,1,0,0,0,623,621,1,0,0,0,623,624,1,0,0,0,624,625,1,0,
+ 0,0,625,629,3,108,48,0,626,628,3,68,28,0,627,626,1,0,0,0,628,631,1,0,0,
+ 0,629,627,1,0,0,0,629,630,1,0,0,0,630,663,1,0,0,0,631,629,1,0,0,0,632,634,
+ 3,108,48,0,633,635,3,68,28,0,634,633,1,0,0,0,635,636,1,0,0,0,636,634,1,
+ 0,0,0,636,637,1,0,0,0,637,663,1,0,0,0,638,640,3,68,28,0,639,638,1,0,0,0,
+ 640,641,1,0,0,0,641,639,1,0,0,0,641,642,1,0,0,0,642,650,1,0,0,0,643,647,
+ 3,108,48,0,644,646,3,68,28,0,645,644,1,0,0,0,646,649,1,0,0,0,647,645,1,
+ 0,0,0,647,648,1,0,0,0,648,651,1,0,0,0,649,647,1,0,0,0,650,643,1,0,0,0,650,
+ 651,1,0,0,0,651,652,1,0,0,0,652,653,3,76,32,0,653,663,1,0,0,0,654,656,3,
+ 108,48,0,655,657,3,68,28,0,656,655,1,0,0,0,657,658,1,0,0,0,658,656,1,0,
+ 0,0,658,659,1,0,0,0,659,660,1,0,0,0,660,661,3,76,32,0,661,663,1,0,0,0,662,
+ 621,1,0,0,0,662,632,1,0,0,0,662,639,1,0,0,0,662,654,1,0,0,0,663,93,1,0,
+ 0,0,664,665,7,29,0,0,665,666,7,30,0,0,666,95,1,0,0,0,667,668,7,12,0,0,668,
+ 669,7,9,0,0,669,670,7,0,0,0,670,97,1,0,0,0,671,672,7,12,0,0,672,673,7,2,
+ 0,0,673,674,7,4,0,0,674,99,1,0,0,0,675,676,5,61,0,0,676,101,1,0,0,0,677,
+ 678,5,58,0,0,678,679,5,58,0,0,679,103,1,0,0,0,680,681,5,44,0,0,681,105,
+ 1,0,0,0,682,683,7,0,0,0,683,684,7,3,0,0,684,685,7,2,0,0,685,686,7,4,0,0,
+ 686,107,1,0,0,0,687,688,5,46,0,0,688,109,1,0,0,0,689,690,7,15,0,0,690,691,
+ 7,12,0,0,691,692,7,13,0,0,692,693,7,2,0,0,693,694,7,3,0,0,694,111,1,0,0,
+ 0,695,696,7,15,0,0,696,697,7,1,0,0,697,698,7,6,0,0,698,699,7,2,0,0,699,
+ 700,7,5,0,0,700,113,1,0,0,0,701,702,7,13,0,0,702,703,7,12,0,0,703,704,7,
+ 2,0,0,704,705,7,5,0,0,705,115,1,0,0,0,706,707,5,40,0,0,707,117,1,0,0,0,
+ 708,709,7,1,0,0,709,710,7,9,0,0,710,119,1,0,0,0,711,712,7,1,0,0,712,713,
+ 7,2,0,0,713,121,1,0,0,0,714,715,7,13,0,0,715,716,7,1,0,0,716,717,7,18,0,
+ 0,717,718,7,3,0,0,718,123,1,0,0,0,719,720,7,9,0,0,720,721,7,7,0,0,721,722,
+ 7,5,0,0,722,125,1,0,0,0,723,724,7,9,0,0,724,725,7,31,0,0,725,726,7,13,0,
+ 0,726,727,7,13,0,0,727,127,1,0,0,0,728,729,7,9,0,0,729,730,7,31,0,0,730,
+ 731,7,13,0,0,731,732,7,13,0,0,732,733,7,2,0,0,733,129,1,0,0,0,734,735,7,
+ 7,0,0,735,736,7,6,0,0,736,131,1,0,0,0,737,738,5,63,0,0,738,133,1,0,0,0,
+ 739,740,7,6,0,0,740,741,7,13,0,0,741,742,7,1,0,0,742,743,7,18,0,0,743,744,
+ 7,3,0,0,744,135,1,0,0,0,745,746,5,41,0,0,746,137,1,0,0,0,747,748,7,5,0,
+ 0,748,749,7,6,0,0,749,750,7,31,0,0,750,751,7,3,0,0,751,139,1,0,0,0,752,
+ 753,5,61,0,0,753,754,5,61,0,0,754,141,1,0,0,0,755,756,5,61,0,0,756,757,
+ 5,126,0,0,757,143,1,0,0,0,758,759,5,33,0,0,759,760,5,61,0,0,760,145,1,0,
+ 0,0,761,762,5,60,0,0,762,147,1,0,0,0,763,764,5,60,0,0,764,765,5,61,0,0,
+ 765,149,1,0,0,0,766,767,5,62,0,0,767,151,1,0,0,0,768,769,5,62,0,0,769,770,
+ 5,61,0,0,770,153,1,0,0,0,771,772,5,43,0,0,772,155,1,0,0,0,773,774,5,45,
+ 0,0,774,157,1,0,0,0,775,776,5,42,0,0,776,159,1,0,0,0,777,778,5,47,0,0,778,
+ 161,1,0,0,0,779,780,5,37,0,0,780,163,1,0,0,0,781,782,5,91,0,0,782,783,1,
+ 0,0,0,783,784,6,76,0,0,784,785,6,76,0,0,785,165,1,0,0,0,786,787,5,93,0,
+ 0,787,788,1,0,0,0,788,789,6,77,13,0,789,790,6,77,13,0,790,167,1,0,0,0,791,
+ 795,3,70,29,0,792,794,3,86,37,0,793,792,1,0,0,0,794,797,1,0,0,0,795,793,
+ 1,0,0,0,795,796,1,0,0,0,796,808,1,0,0,0,797,795,1,0,0,0,798,801,3,84,36,
+ 0,799,801,3,78,33,0,800,798,1,0,0,0,800,799,1,0,0,0,801,803,1,0,0,0,802,
+ 804,3,86,37,0,803,802,1,0,0,0,804,805,1,0,0,0,805,803,1,0,0,0,805,806,1,
+ 0,0,0,806,808,1,0,0,0,807,791,1,0,0,0,807,800,1,0,0,0,808,169,1,0,0,0,809,
+ 811,3,80,34,0,810,812,3,82,35,0,811,810,1,0,0,0,812,813,1,0,0,0,813,811,
+ 1,0,0,0,813,814,1,0,0,0,814,815,1,0,0,0,815,816,3,80,34,0,816,171,1,0,0,
+ 0,817,818,3,170,79,0,818,173,1,0,0,0,819,820,3,50,19,0,820,821,1,0,0,0,
+ 821,822,6,81,9,0,822,175,1,0,0,0,823,824,3,52,20,0,824,825,1,0,0,0,825,
+ 826,6,82,9,0,826,177,1,0,0,0,827,828,3,54,21,0,828,829,1,0,0,0,829,830,
+ 6,83,9,0,830,179,1,0,0,0,831,832,3,66,27,0,832,833,1,0,0,0,833,834,6,84,
+ 12,0,834,835,6,84,13,0,835,181,1,0,0,0,836,837,3,164,76,0,837,838,1,0,0,
+ 0,838,839,6,85,10,0,839,183,1,0,0,0,840,841,3,166,77,0,841,842,1,0,0,0,
+ 842,843,6,86,14,0,843,185,1,0,0,0,844,845,3,104,46,0,845,846,1,0,0,0,846,
+ 847,6,87,15,0,847,187,1,0,0,0,848,849,3,100,44,0,849,850,1,0,0,0,850,851,
+ 6,88,16,0,851,189,1,0,0,0,852,853,3,88,38,0,853,854,1,0,0,0,854,855,6,89,
+ 17,0,855,191,1,0,0,0,856,857,7,16,0,0,857,858,7,3,0,0,858,859,7,5,0,0,859,
+ 860,7,12,0,0,860,861,7,0,0,0,861,862,7,12,0,0,862,863,7,5,0,0,863,864,7,
+ 12,0,0,864,193,1,0,0,0,865,869,8,32,0,0,866,867,5,47,0,0,867,869,8,33,0,
+ 0,868,865,1,0,0,0,868,866,1,0,0,0,869,195,1,0,0,0,870,872,3,194,91,0,871,
+ 870,1,0,0,0,872,873,1,0,0,0,873,871,1,0,0,0,873,874,1,0,0,0,874,197,1,0,
+ 0,0,875,876,3,50,19,0,876,877,1,0,0,0,877,878,6,93,9,0,878,199,1,0,0,0,
+ 879,880,3,52,20,0,880,881,1,0,0,0,881,882,6,94,9,0,882,201,1,0,0,0,883,
+ 884,3,54,21,0,884,885,1,0,0,0,885,886,6,95,9,0,886,203,1,0,0,0,887,888,
+ 3,66,27,0,888,889,1,0,0,0,889,890,6,96,12,0,890,891,6,96,13,0,891,205,1,
+ 0,0,0,892,893,3,108,48,0,893,894,1,0,0,0,894,895,6,97,18,0,895,207,1,0,
+ 0,0,896,897,3,104,46,0,897,898,1,0,0,0,898,899,6,98,15,0,899,209,1,0,0,
+ 0,900,905,3,70,29,0,901,905,3,68,28,0,902,905,3,84,36,0,903,905,3,158,73,
+ 0,904,900,1,0,0,0,904,901,1,0,0,0,904,902,1,0,0,0,904,903,1,0,0,0,905,211,
+ 1,0,0,0,906,909,3,70,29,0,907,909,3,158,73,0,908,906,1,0,0,0,908,907,1,
+ 0,0,0,909,913,1,0,0,0,910,912,3,210,99,0,911,910,1,0,0,0,912,915,1,0,0,
+ 0,913,911,1,0,0,0,913,914,1,0,0,0,914,926,1,0,0,0,915,913,1,0,0,0,916,919,
+ 3,84,36,0,917,919,3,78,33,0,918,916,1,0,0,0,918,917,1,0,0,0,919,921,1,0,
+ 0,0,920,922,3,210,99,0,921,920,1,0,0,0,922,923,1,0,0,0,923,921,1,0,0,0,
+ 923,924,1,0,0,0,924,926,1,0,0,0,925,908,1,0,0,0,925,918,1,0,0,0,926,213,
+ 1,0,0,0,927,930,3,212,100,0,928,930,3,170,79,0,929,927,1,0,0,0,929,928,
+ 1,0,0,0,930,931,1,0,0,0,931,929,1,0,0,0,931,932,1,0,0,0,932,215,1,0,0,0,
+ 933,934,3,50,19,0,934,935,1,0,0,0,935,936,6,102,9,0,936,217,1,0,0,0,937,
+ 938,3,52,20,0,938,939,1,0,0,0,939,940,6,103,9,0,940,219,1,0,0,0,941,942,
+ 3,54,21,0,942,943,1,0,0,0,943,944,6,104,9,0,944,221,1,0,0,0,945,946,3,66,
+ 27,0,946,947,1,0,0,0,947,948,6,105,12,0,948,949,6,105,13,0,949,223,1,0,
+ 0,0,950,951,3,100,44,0,951,952,1,0,0,0,952,953,6,106,16,0,953,225,1,0,0,
+ 0,954,955,3,104,46,0,955,956,1,0,0,0,956,957,6,107,15,0,957,227,1,0,0,0,
+ 958,959,3,108,48,0,959,960,1,0,0,0,960,961,6,108,18,0,961,229,1,0,0,0,962,
+ 963,7,12,0,0,963,964,7,2,0,0,964,231,1,0,0,0,965,966,3,214,101,0,966,967,
+ 1,0,0,0,967,968,6,110,19,0,968,233,1,0,0,0,969,970,3,50,19,0,970,971,1,
+ 0,0,0,971,972,6,111,9,0,972,235,1,0,0,0,973,974,3,52,20,0,974,975,1,0,0,
+ 0,975,976,6,112,9,0,976,237,1,0,0,0,977,978,3,54,21,0,978,979,1,0,0,0,979,
+ 980,6,113,9,0,980,239,1,0,0,0,981,982,3,66,27,0,982,983,1,0,0,0,983,984,
+ 6,114,12,0,984,985,6,114,13,0,985,241,1,0,0,0,986,987,3,164,76,0,987,988,
+ 1,0,0,0,988,989,6,115,10,0,989,990,6,115,20,0,990,243,1,0,0,0,991,992,7,
+ 7,0,0,992,993,7,9,0,0,993,994,1,0,0,0,994,995,6,116,21,0,995,245,1,0,0,
+ 0,996,997,7,19,0,0,997,998,7,1,0,0,998,999,7,5,0,0,999,1000,7,10,0,0,1000,
+ 1001,1,0,0,0,1001,1002,6,117,21,0,1002,247,1,0,0,0,1003,1004,8,34,0,0,1004,
+ 249,1,0,0,0,1005,1007,3,248,118,0,1006,1005,1,0,0,0,1007,1008,1,0,0,0,1008,
+ 1006,1,0,0,0,1008,1009,1,0,0,0,1009,1010,1,0,0,0,1010,1011,3,318,153,0,
+ 1011,1013,1,0,0,0,1012,1006,1,0,0,0,1012,1013,1,0,0,0,1013,1015,1,0,0,0,
+ 1014,1016,3,248,118,0,1015,1014,1,0,0,0,1016,1017,1,0,0,0,1017,1015,1,0,
+ 0,0,1017,1018,1,0,0,0,1018,251,1,0,0,0,1019,1020,3,172,80,0,1020,1021,1,
+ 0,0,0,1021,1022,6,120,22,0,1022,253,1,0,0,0,1023,1024,3,250,119,0,1024,
+ 1025,1,0,0,0,1025,1026,6,121,23,0,1026,255,1,0,0,0,1027,1028,3,50,19,0,
+ 1028,1029,1,0,0,0,1029,1030,6,122,9,0,1030,257,1,0,0,0,1031,1032,3,52,20,
+ 0,1032,1033,1,0,0,0,1033,1034,6,123,9,0,1034,259,1,0,0,0,1035,1036,3,54,
+ 21,0,1036,1037,1,0,0,0,1037,1038,6,124,9,0,1038,261,1,0,0,0,1039,1040,3,
+ 66,27,0,1040,1041,1,0,0,0,1041,1042,6,125,12,0,1042,1043,6,125,13,0,1043,
+ 1044,6,125,13,0,1044,263,1,0,0,0,1045,1046,3,100,44,0,1046,1047,1,0,0,0,
+ 1047,1048,6,126,16,0,1048,265,1,0,0,0,1049,1050,3,104,46,0,1050,1051,1,
+ 0,0,0,1051,1052,6,127,15,0,1052,267,1,0,0,0,1053,1054,3,108,48,0,1054,1055,
+ 1,0,0,0,1055,1056,6,128,18,0,1056,269,1,0,0,0,1057,1058,3,246,117,0,1058,
+ 1059,1,0,0,0,1059,1060,6,129,24,0,1060,271,1,0,0,0,1061,1062,3,214,101,
+ 0,1062,1063,1,0,0,0,1063,1064,6,130,19,0,1064,273,1,0,0,0,1065,1066,3,172,
+ 80,0,1066,1067,1,0,0,0,1067,1068,6,131,22,0,1068,275,1,0,0,0,1069,1070,
+ 3,50,19,0,1070,1071,1,0,0,0,1071,1072,6,132,9,0,1072,277,1,0,0,0,1073,1074,
+ 3,52,20,0,1074,1075,1,0,0,0,1075,1076,6,133,9,0,1076,279,1,0,0,0,1077,1078,
+ 3,54,21,0,1078,1079,1,0,0,0,1079,1080,6,134,9,0,1080,281,1,0,0,0,1081,1082,
+ 3,66,27,0,1082,1083,1,0,0,0,1083,1084,6,135,12,0,1084,1085,6,135,13,0,1085,
+ 283,1,0,0,0,1086,1087,3,108,48,0,1087,1088,1,0,0,0,1088,1089,6,136,18,0,
+ 1089,285,1,0,0,0,1090,1091,3,172,80,0,1091,1092,1,0,0,0,1092,1093,6,137,
+ 22,0,1093,287,1,0,0,0,1094,1095,3,168,78,0,1095,1096,1,0,0,0,1096,1097,
+ 6,138,25,0,1097,289,1,0,0,0,1098,1099,3,50,19,0,1099,1100,1,0,0,0,1100,
+ 1101,6,139,9,0,1101,291,1,0,0,0,1102,1103,3,52,20,0,1103,1104,1,0,0,0,1104,
+ 1105,6,140,9,0,1105,293,1,0,0,0,1106,1107,3,54,21,0,1107,1108,1,0,0,0,1108,
+ 1109,6,141,9,0,1109,295,1,0,0,0,1110,1111,3,66,27,0,1111,1112,1,0,0,0,1112,
+ 1113,6,142,12,0,1113,1114,6,142,13,0,1114,297,1,0,0,0,1115,1116,7,1,0,0,
+ 1116,1117,7,9,0,0,1117,1118,7,15,0,0,1118,1119,7,7,0,0,1119,299,1,0,0,0,
+ 1120,1121,3,50,19,0,1121,1122,1,0,0,0,1122,1123,6,144,9,0,1123,301,1,0,
+ 0,0,1124,1125,3,52,20,0,1125,1126,1,0,0,0,1126,1127,6,145,9,0,1127,303,
+ 1,0,0,0,1128,1129,3,54,21,0,1129,1130,1,0,0,0,1130,1131,6,146,9,0,1131,
+ 305,1,0,0,0,1132,1133,3,66,27,0,1133,1134,1,0,0,0,1134,1135,6,147,12,0,
+ 1135,1136,6,147,13,0,1136,307,1,0,0,0,1137,1138,7,15,0,0,1138,1139,7,31,
+ 0,0,1139,1140,7,9,0,0,1140,1141,7,4,0,0,1141,1142,7,5,0,0,1142,1143,7,1,
+ 0,0,1143,1144,7,7,0,0,1144,1145,7,9,0,0,1145,1146,7,2,0,0,1146,309,1,0,
+ 0,0,1147,1148,3,50,19,0,1148,1149,1,0,0,0,1149,1150,6,149,9,0,1150,311,
+ 1,0,0,0,1151,1152,3,52,20,0,1152,1153,1,0,0,0,1153,1154,6,150,9,0,1154,
+ 313,1,0,0,0,1155,1156,3,54,21,0,1156,1157,1,0,0,0,1157,1158,6,151,9,0,1158,
+ 315,1,0,0,0,1159,1160,3,166,77,0,1160,1161,1,0,0,0,1161,1162,6,152,14,0,
+ 1162,1163,6,152,13,0,1163,317,1,0,0,0,1164,1165,5,58,0,0,1165,319,1,0,0,
+ 0,1166,1172,3,78,33,0,1167,1172,3,68,28,0,1168,1172,3,108,48,0,1169,1172,
+ 3,70,29,0,1170,1172,3,84,36,0,1171,1166,1,0,0,0,1171,1167,1,0,0,0,1171,
+ 1168,1,0,0,0,1171,1169,1,0,0,0,1171,1170,1,0,0,0,1172,1173,1,0,0,0,1173,
+ 1171,1,0,0,0,1173,1174,1,0,0,0,1174,321,1,0,0,0,1175,1176,3,50,19,0,1176,
+ 1177,1,0,0,0,1177,1178,6,155,9,0,1178,323,1,0,0,0,1179,1180,3,52,20,0,1180,
+ 1181,1,0,0,0,1181,1182,6,156,9,0,1182,325,1,0,0,0,1183,1184,3,54,21,0,1184,
+ 1185,1,0,0,0,1185,1186,6,157,9,0,1186,327,1,0,0,0,58,0,1,2,3,4,5,6,7,8,
+ 9,10,11,481,491,495,498,507,509,520,561,566,575,582,587,589,600,608,611,
+ 613,618,623,629,636,641,647,650,658,662,795,800,805,807,813,868,873,904,
+ 908,913,918,923,925,929,931,1008,1012,1017,1171,1173,26,5,2,0,5,4,0,5,6,
+ 0,5,1,0,5,3,0,5,10,0,5,8,0,5,5,0,5,9,0,0,1,0,7,65,0,5,0,0,7,26,0,4,0,0,
+ 7,66,0,7,35,0,7,33,0,7,27,0,7,37,0,7,77,0,5,11,0,5,7,0,7,68,0,7,87,0,7,
+ 86,0,7,67,0];
private static __ATN: ATN;
public static get _ATN(): ATN {
diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.g4 b/packages/kbn-esql-ast/src/antlr/esql_parser.g4
index 6f445b0df1730..b3496a20e3b8f 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_parser.g4
+++ b/packages/kbn-esql-ast/src/antlr/esql_parser.g4
@@ -7,14 +7,6 @@
// DO NOT MODIFY THIS FILE BY HAND. IT IS MANAGED BY A CI JOB.
-
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
parser grammar esql_parser;
options {tokenVocab=esql_lexer;}
@@ -113,21 +105,13 @@ field
;
fromCommand
- : FROM fromIdentifier (COMMA fromIdentifier)* metadata? fromOptions?
+ : FROM fromIdentifier (COMMA fromIdentifier)* metadata?
;
fromIdentifier
: FROM_UNQUOTED_IDENTIFIER
;
-fromOptions
- : OPTIONS configOption (COMMA configOption)*
- ;
-
-configOption
- : string ASSIGN string
- ;
-
metadata
: metadataOption
| deprecated_metadata
diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.interp b/packages/kbn-esql-ast/src/antlr/esql_parser.interp
index 2b887065985d3..04dbf1b4a43dd 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_parser.interp
+++ b/packages/kbn-esql-ast/src/antlr/esql_parser.interp
@@ -71,7 +71,6 @@ null
null
null
null
-'options'
'metadata'
null
null
@@ -184,7 +183,6 @@ QUOTED_IDENTIFIER
EXPR_LINE_COMMENT
EXPR_MULTILINE_COMMENT
EXPR_WS
-OPTIONS
METADATA
FROM_UNQUOTED_IDENTIFIER
FROM_LINE_COMMENT
@@ -242,8 +240,6 @@ fields
field
fromCommand
fromIdentifier
-fromOptions
-configOption
metadata
metadataOption
deprecated_metadata
@@ -282,4 +278,4 @@ enrichWithClause
atn:
-[4, 1, 110, 543, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 118, 8, 1, 10, 1, 12, 1, 121, 9, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 128, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 143, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 155, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 162, 8, 5, 10, 5, 12, 5, 165, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 172, 8, 5, 1, 5, 1, 5, 3, 5, 176, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 184, 8, 5, 10, 5, 12, 5, 187, 9, 5, 1, 6, 1, 6, 3, 6, 191, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 198, 8, 6, 1, 6, 1, 6, 1, 6, 3, 6, 203, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 210, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 216, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 224, 8, 8, 10, 8, 12, 8, 227, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 237, 8, 9, 1, 9, 1, 9, 1, 9, 5, 9, 242, 8, 9, 10, 9, 12, 9, 245, 9, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 253, 8, 10, 10, 10, 12, 10, 256, 9, 10, 3, 10, 258, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 270, 8, 13, 10, 13, 12, 13, 273, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 280, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 286, 8, 15, 10, 15, 12, 15, 289, 9, 15, 1, 15, 3, 15, 292, 8, 15, 1, 15, 3, 15, 295, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 303, 8, 17, 10, 17, 12, 17, 306, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 314, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 320, 8, 20, 10, 20, 12, 20, 323, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 334, 8, 23, 1, 23, 1, 23, 3, 23, 338, 8, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 344, 8, 24, 1, 25, 1, 25, 1, 25, 5, 25, 349, 8, 25, 10, 25, 12, 25, 352, 9, 25, 1, 26, 1, 26, 1, 26, 5, 26, 357, 8, 26, 10, 26, 12, 26, 360, 9, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 379, 8, 29, 10, 29, 12, 29, 382, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 390, 8, 29, 10, 29, 12, 29, 393, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 401, 8, 29, 10, 29, 12, 29, 404, 9, 29, 1, 29, 1, 29, 3, 29, 408, 8, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 417, 8, 31, 10, 31, 12, 31, 420, 9, 31, 1, 32, 1, 32, 3, 32, 424, 8, 32, 1, 32, 1, 32, 3, 32, 428, 8, 32, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 434, 8, 33, 10, 33, 12, 33, 437, 9, 33, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 443, 8, 34, 10, 34, 12, 34, 446, 9, 34, 1, 35, 1, 35, 1, 35, 1, 35, 5, 35, 452, 8, 35, 10, 35, 12, 35, 455, 9, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 465, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 5, 40, 477, 8, 40, 10, 40, 12, 40, 480, 9, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 490, 8, 43, 1, 44, 3, 44, 493, 8, 44, 1, 44, 1, 44, 1, 45, 3, 45, 498, 8, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 523, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 529, 8, 52, 10, 52, 12, 52, 532, 9, 52, 3, 52, 534, 8, 52, 1, 53, 1, 53, 1, 53, 3, 53, 539, 8, 53, 1, 53, 1, 53, 1, 53, 0, 4, 2, 10, 16, 18, 54, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 0, 7, 1, 0, 60, 61, 1, 0, 62, 64, 1, 0, 67, 68, 2, 0, 32, 32, 36, 36, 1, 0, 39, 40, 2, 0, 38, 38, 52, 52, 2, 0, 53, 53, 55, 59, 568, 0, 108, 1, 0, 0, 0, 2, 111, 1, 0, 0, 0, 4, 127, 1, 0, 0, 0, 6, 142, 1, 0, 0, 0, 8, 144, 1, 0, 0, 0, 10, 175, 1, 0, 0, 0, 12, 202, 1, 0, 0, 0, 14, 209, 1, 0, 0, 0, 16, 215, 1, 0, 0, 0, 18, 236, 1, 0, 0, 0, 20, 246, 1, 0, 0, 0, 22, 261, 1, 0, 0, 0, 24, 263, 1, 0, 0, 0, 26, 266, 1, 0, 0, 0, 28, 279, 1, 0, 0, 0, 30, 281, 1, 0, 0, 0, 32, 296, 1, 0, 0, 0, 34, 298, 1, 0, 0, 0, 36, 307, 1, 0, 0, 0, 38, 313, 1, 0, 0, 0, 40, 315, 1, 0, 0, 0, 42, 324, 1, 0, 0, 0, 44, 328, 1, 0, 0, 0, 46, 331, 1, 0, 0, 0, 48, 339, 1, 0, 0, 0, 50, 345, 1, 0, 0, 0, 52, 353, 1, 0, 0, 0, 54, 361, 1, 0, 0, 0, 56, 363, 1, 0, 0, 0, 58, 407, 1, 0, 0, 0, 60, 409, 1, 0, 0, 0, 62, 412, 1, 0, 0, 0, 64, 421, 1, 0, 0, 0, 66, 429, 1, 0, 0, 0, 68, 438, 1, 0, 0, 0, 70, 447, 1, 0, 0, 0, 72, 456, 1, 0, 0, 0, 74, 460, 1, 0, 0, 0, 76, 466, 1, 0, 0, 0, 78, 470, 1, 0, 0, 0, 80, 473, 1, 0, 0, 0, 82, 481, 1, 0, 0, 0, 84, 485, 1, 0, 0, 0, 86, 489, 1, 0, 0, 0, 88, 492, 1, 0, 0, 0, 90, 497, 1, 0, 0, 0, 92, 501, 1, 0, 0, 0, 94, 503, 1, 0, 0, 0, 96, 505, 1, 0, 0, 0, 98, 508, 1, 0, 0, 0, 100, 512, 1, 0, 0, 0, 102, 515, 1, 0, 0, 0, 104, 518, 1, 0, 0, 0, 106, 538, 1, 0, 0, 0, 108, 109, 3, 2, 1, 0, 109, 110, 5, 0, 0, 1, 110, 1, 1, 0, 0, 0, 111, 112, 6, 1, -1, 0, 112, 113, 3, 4, 2, 0, 113, 119, 1, 0, 0, 0, 114, 115, 10, 1, 0, 0, 115, 116, 5, 26, 0, 0, 116, 118, 3, 6, 3, 0, 117, 114, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 3, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 122, 128, 3, 96, 48, 0, 123, 128, 3, 30, 15, 0, 124, 128, 3, 24, 12, 0, 125, 128, 3, 100, 50, 0, 126, 128, 3, 102, 51, 0, 127, 122, 1, 0, 0, 0, 127, 123, 1, 0, 0, 0, 127, 124, 1, 0, 0, 0, 127, 125, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 5, 1, 0, 0, 0, 129, 143, 3, 44, 22, 0, 130, 143, 3, 48, 24, 0, 131, 143, 3, 60, 30, 0, 132, 143, 3, 66, 33, 0, 133, 143, 3, 62, 31, 0, 134, 143, 3, 46, 23, 0, 135, 143, 3, 8, 4, 0, 136, 143, 3, 68, 34, 0, 137, 143, 3, 70, 35, 0, 138, 143, 3, 74, 37, 0, 139, 143, 3, 76, 38, 0, 140, 143, 3, 104, 52, 0, 141, 143, 3, 78, 39, 0, 142, 129, 1, 0, 0, 0, 142, 130, 1, 0, 0, 0, 142, 131, 1, 0, 0, 0, 142, 132, 1, 0, 0, 0, 142, 133, 1, 0, 0, 0, 142, 134, 1, 0, 0, 0, 142, 135, 1, 0, 0, 0, 142, 136, 1, 0, 0, 0, 142, 137, 1, 0, 0, 0, 142, 138, 1, 0, 0, 0, 142, 139, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 142, 141, 1, 0, 0, 0, 143, 7, 1, 0, 0, 0, 144, 145, 5, 18, 0, 0, 145, 146, 3, 10, 5, 0, 146, 9, 1, 0, 0, 0, 147, 148, 6, 5, -1, 0, 148, 149, 5, 45, 0, 0, 149, 176, 3, 10, 5, 7, 150, 176, 3, 14, 7, 0, 151, 176, 3, 12, 6, 0, 152, 154, 3, 14, 7, 0, 153, 155, 5, 45, 0, 0, 154, 153, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 157, 5, 42, 0, 0, 157, 158, 5, 41, 0, 0, 158, 163, 3, 14, 7, 0, 159, 160, 5, 35, 0, 0, 160, 162, 3, 14, 7, 0, 161, 159, 1, 0, 0, 0, 162, 165, 1, 0, 0, 0, 163, 161, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 166, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0, 166, 167, 5, 51, 0, 0, 167, 176, 1, 0, 0, 0, 168, 169, 3, 14, 7, 0, 169, 171, 5, 43, 0, 0, 170, 172, 5, 45, 0, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 5, 46, 0, 0, 174, 176, 1, 0, 0, 0, 175, 147, 1, 0, 0, 0, 175, 150, 1, 0, 0, 0, 175, 151, 1, 0, 0, 0, 175, 152, 1, 0, 0, 0, 175, 168, 1, 0, 0, 0, 176, 185, 1, 0, 0, 0, 177, 178, 10, 4, 0, 0, 178, 179, 5, 31, 0, 0, 179, 184, 3, 10, 5, 5, 180, 181, 10, 3, 0, 0, 181, 182, 5, 48, 0, 0, 182, 184, 3, 10, 5, 4, 183, 177, 1, 0, 0, 0, 183, 180, 1, 0, 0, 0, 184, 187, 1, 0, 0, 0, 185, 183, 1, 0, 0, 0, 185, 186, 1, 0, 0, 0, 186, 11, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 188, 190, 3, 14, 7, 0, 189, 191, 5, 45, 0, 0, 190, 189, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 193, 5, 44, 0, 0, 193, 194, 3, 92, 46, 0, 194, 203, 1, 0, 0, 0, 195, 197, 3, 14, 7, 0, 196, 198, 5, 45, 0, 0, 197, 196, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 199, 1, 0, 0, 0, 199, 200, 5, 50, 0, 0, 200, 201, 3, 92, 46, 0, 201, 203, 1, 0, 0, 0, 202, 188, 1, 0, 0, 0, 202, 195, 1, 0, 0, 0, 203, 13, 1, 0, 0, 0, 204, 210, 3, 16, 8, 0, 205, 206, 3, 16, 8, 0, 206, 207, 3, 94, 47, 0, 207, 208, 3, 16, 8, 0, 208, 210, 1, 0, 0, 0, 209, 204, 1, 0, 0, 0, 209, 205, 1, 0, 0, 0, 210, 15, 1, 0, 0, 0, 211, 212, 6, 8, -1, 0, 212, 216, 3, 18, 9, 0, 213, 214, 7, 0, 0, 0, 214, 216, 3, 16, 8, 3, 215, 211, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 225, 1, 0, 0, 0, 217, 218, 10, 2, 0, 0, 218, 219, 7, 1, 0, 0, 219, 224, 3, 16, 8, 3, 220, 221, 10, 1, 0, 0, 221, 222, 7, 0, 0, 0, 222, 224, 3, 16, 8, 2, 223, 217, 1, 0, 0, 0, 223, 220, 1, 0, 0, 0, 224, 227, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 225, 226, 1, 0, 0, 0, 226, 17, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 228, 229, 6, 9, -1, 0, 229, 237, 3, 58, 29, 0, 230, 237, 3, 50, 25, 0, 231, 237, 3, 20, 10, 0, 232, 233, 5, 41, 0, 0, 233, 234, 3, 10, 5, 0, 234, 235, 5, 51, 0, 0, 235, 237, 1, 0, 0, 0, 236, 228, 1, 0, 0, 0, 236, 230, 1, 0, 0, 0, 236, 231, 1, 0, 0, 0, 236, 232, 1, 0, 0, 0, 237, 243, 1, 0, 0, 0, 238, 239, 10, 1, 0, 0, 239, 240, 5, 34, 0, 0, 240, 242, 3, 22, 11, 0, 241, 238, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 19, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 247, 3, 54, 27, 0, 247, 257, 5, 41, 0, 0, 248, 258, 5, 62, 0, 0, 249, 254, 3, 10, 5, 0, 250, 251, 5, 35, 0, 0, 251, 253, 3, 10, 5, 0, 252, 250, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 258, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 248, 1, 0, 0, 0, 257, 249, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 260, 5, 51, 0, 0, 260, 21, 1, 0, 0, 0, 261, 262, 3, 54, 27, 0, 262, 23, 1, 0, 0, 0, 263, 264, 5, 14, 0, 0, 264, 265, 3, 26, 13, 0, 265, 25, 1, 0, 0, 0, 266, 271, 3, 28, 14, 0, 267, 268, 5, 35, 0, 0, 268, 270, 3, 28, 14, 0, 269, 267, 1, 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 27, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 274, 280, 3, 10, 5, 0, 275, 276, 3, 50, 25, 0, 276, 277, 5, 33, 0, 0, 277, 278, 3, 10, 5, 0, 278, 280, 1, 0, 0, 0, 279, 274, 1, 0, 0, 0, 279, 275, 1, 0, 0, 0, 280, 29, 1, 0, 0, 0, 281, 282, 5, 6, 0, 0, 282, 287, 3, 32, 16, 0, 283, 284, 5, 35, 0, 0, 284, 286, 3, 32, 16, 0, 285, 283, 1, 0, 0, 0, 286, 289, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 291, 1, 0, 0, 0, 289, 287, 1, 0, 0, 0, 290, 292, 3, 38, 19, 0, 291, 290, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 294, 1, 0, 0, 0, 293, 295, 3, 34, 17, 0, 294, 293, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 31, 1, 0, 0, 0, 296, 297, 5, 74, 0, 0, 297, 33, 1, 0, 0, 0, 298, 299, 5, 72, 0, 0, 299, 304, 3, 36, 18, 0, 300, 301, 5, 35, 0, 0, 301, 303, 3, 36, 18, 0, 302, 300, 1, 0, 0, 0, 303, 306, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 35, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 308, 3, 92, 46, 0, 308, 309, 5, 33, 0, 0, 309, 310, 3, 92, 46, 0, 310, 37, 1, 0, 0, 0, 311, 314, 3, 40, 20, 0, 312, 314, 3, 42, 21, 0, 313, 311, 1, 0, 0, 0, 313, 312, 1, 0, 0, 0, 314, 39, 1, 0, 0, 0, 315, 316, 5, 73, 0, 0, 316, 321, 3, 32, 16, 0, 317, 318, 5, 35, 0, 0, 318, 320, 3, 32, 16, 0, 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 41, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 325, 5, 65, 0, 0, 325, 326, 3, 40, 20, 0, 326, 327, 5, 66, 0, 0, 327, 43, 1, 0, 0, 0, 328, 329, 5, 4, 0, 0, 329, 330, 3, 26, 13, 0, 330, 45, 1, 0, 0, 0, 331, 333, 5, 17, 0, 0, 332, 334, 3, 26, 13, 0, 333, 332, 1, 0, 0, 0, 333, 334, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335, 336, 5, 30, 0, 0, 336, 338, 3, 26, 13, 0, 337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 47, 1, 0, 0, 0, 339, 340, 5, 8, 0, 0, 340, 343, 3, 26, 13, 0, 341, 342, 5, 30, 0, 0, 342, 344, 3, 26, 13, 0, 343, 341, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 49, 1, 0, 0, 0, 345, 350, 3, 54, 27, 0, 346, 347, 5, 37, 0, 0, 347, 349, 3, 54, 27, 0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 51, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 358, 3, 56, 28, 0, 354, 355, 5, 37, 0, 0, 355, 357, 3, 56, 28, 0, 356, 354, 1, 0, 0, 0, 357, 360, 1, 0, 0, 0, 358, 356, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359, 53, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 361, 362, 7, 2, 0, 0, 362, 55, 1, 0, 0, 0, 363, 364, 5, 78, 0, 0, 364, 57, 1, 0, 0, 0, 365, 408, 5, 46, 0, 0, 366, 367, 3, 90, 45, 0, 367, 368, 5, 67, 0, 0, 368, 408, 1, 0, 0, 0, 369, 408, 3, 88, 44, 0, 370, 408, 3, 90, 45, 0, 371, 408, 3, 84, 42, 0, 372, 408, 5, 49, 0, 0, 373, 408, 3, 92, 46, 0, 374, 375, 5, 65, 0, 0, 375, 380, 3, 86, 43, 0, 376, 377, 5, 35, 0, 0, 377, 379, 3, 86, 43, 0, 378, 376, 1, 0, 0, 0, 379, 382, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 383, 1, 0, 0, 0, 382, 380, 1, 0, 0, 0, 383, 384, 5, 66, 0, 0, 384, 408, 1, 0, 0, 0, 385, 386, 5, 65, 0, 0, 386, 391, 3, 84, 42, 0, 387, 388, 5, 35, 0, 0, 388, 390, 3, 84, 42, 0, 389, 387, 1, 0, 0, 0, 390, 393, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 394, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 394, 395, 5, 66, 0, 0, 395, 408, 1, 0, 0, 0, 396, 397, 5, 65, 0, 0, 397, 402, 3, 92, 46, 0, 398, 399, 5, 35, 0, 0, 399, 401, 3, 92, 46, 0, 400, 398, 1, 0, 0, 0, 401, 404, 1, 0, 0, 0, 402, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 405, 1, 0, 0, 0, 404, 402, 1, 0, 0, 0, 405, 406, 5, 66, 0, 0, 406, 408, 1, 0, 0, 0, 407, 365, 1, 0, 0, 0, 407, 366, 1, 0, 0, 0, 407, 369, 1, 0, 0, 0, 407, 370, 1, 0, 0, 0, 407, 371, 1, 0, 0, 0, 407, 372, 1, 0, 0, 0, 407, 373, 1, 0, 0, 0, 407, 374, 1, 0, 0, 0, 407, 385, 1, 0, 0, 0, 407, 396, 1, 0, 0, 0, 408, 59, 1, 0, 0, 0, 409, 410, 5, 10, 0, 0, 410, 411, 5, 28, 0, 0, 411, 61, 1, 0, 0, 0, 412, 413, 5, 16, 0, 0, 413, 418, 3, 64, 32, 0, 414, 415, 5, 35, 0, 0, 415, 417, 3, 64, 32, 0, 416, 414, 1, 0, 0, 0, 417, 420, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 63, 1, 0, 0, 0, 420, 418, 1, 0, 0, 0, 421, 423, 3, 10, 5, 0, 422, 424, 7, 3, 0, 0, 423, 422, 1, 0, 0, 0, 423, 424, 1, 0, 0, 0, 424, 427, 1, 0, 0, 0, 425, 426, 5, 47, 0, 0, 426, 428, 7, 4, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 65, 1, 0, 0, 0, 429, 430, 5, 9, 0, 0, 430, 435, 3, 52, 26, 0, 431, 432, 5, 35, 0, 0, 432, 434, 3, 52, 26, 0, 433, 431, 1, 0, 0, 0, 434, 437, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 436, 67, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 439, 5, 2, 0, 0, 439, 444, 3, 52, 26, 0, 440, 441, 5, 35, 0, 0, 441, 443, 3, 52, 26, 0, 442, 440, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 69, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 448, 5, 13, 0, 0, 448, 453, 3, 72, 36, 0, 449, 450, 5, 35, 0, 0, 450, 452, 3, 72, 36, 0, 451, 449, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 71, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 456, 457, 3, 52, 26, 0, 457, 458, 5, 82, 0, 0, 458, 459, 3, 52, 26, 0, 459, 73, 1, 0, 0, 0, 460, 461, 5, 1, 0, 0, 461, 462, 3, 18, 9, 0, 462, 464, 3, 92, 46, 0, 463, 465, 3, 80, 40, 0, 464, 463, 1, 0, 0, 0, 464, 465, 1, 0, 0, 0, 465, 75, 1, 0, 0, 0, 466, 467, 5, 7, 0, 0, 467, 468, 3, 18, 9, 0, 468, 469, 3, 92, 46, 0, 469, 77, 1, 0, 0, 0, 470, 471, 5, 12, 0, 0, 471, 472, 3, 50, 25, 0, 472, 79, 1, 0, 0, 0, 473, 478, 3, 82, 41, 0, 474, 475, 5, 35, 0, 0, 475, 477, 3, 82, 41, 0, 476, 474, 1, 0, 0, 0, 477, 480, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 81, 1, 0, 0, 0, 480, 478, 1, 0, 0, 0, 481, 482, 3, 54, 27, 0, 482, 483, 5, 33, 0, 0, 483, 484, 3, 58, 29, 0, 484, 83, 1, 0, 0, 0, 485, 486, 7, 5, 0, 0, 486, 85, 1, 0, 0, 0, 487, 490, 3, 88, 44, 0, 488, 490, 3, 90, 45, 0, 489, 487, 1, 0, 0, 0, 489, 488, 1, 0, 0, 0, 490, 87, 1, 0, 0, 0, 491, 493, 7, 0, 0, 0, 492, 491, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 495, 5, 29, 0, 0, 495, 89, 1, 0, 0, 0, 496, 498, 7, 0, 0, 0, 497, 496, 1, 0, 0, 0, 497, 498, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 500, 5, 28, 0, 0, 500, 91, 1, 0, 0, 0, 501, 502, 5, 27, 0, 0, 502, 93, 1, 0, 0, 0, 503, 504, 7, 6, 0, 0, 504, 95, 1, 0, 0, 0, 505, 506, 5, 5, 0, 0, 506, 507, 3, 98, 49, 0, 507, 97, 1, 0, 0, 0, 508, 509, 5, 65, 0, 0, 509, 510, 3, 2, 1, 0, 510, 511, 5, 66, 0, 0, 511, 99, 1, 0, 0, 0, 512, 513, 5, 15, 0, 0, 513, 514, 5, 98, 0, 0, 514, 101, 1, 0, 0, 0, 515, 516, 5, 11, 0, 0, 516, 517, 5, 102, 0, 0, 517, 103, 1, 0, 0, 0, 518, 519, 5, 3, 0, 0, 519, 522, 5, 88, 0, 0, 520, 521, 5, 86, 0, 0, 521, 523, 3, 52, 26, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 533, 1, 0, 0, 0, 524, 525, 5, 87, 0, 0, 525, 530, 3, 106, 53, 0, 526, 527, 5, 35, 0, 0, 527, 529, 3, 106, 53, 0, 528, 526, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530, 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 533, 524, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 105, 1, 0, 0, 0, 535, 536, 3, 52, 26, 0, 536, 537, 5, 33, 0, 0, 537, 539, 1, 0, 0, 0, 538, 535, 1, 0, 0, 0, 538, 539, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 541, 3, 52, 26, 0, 541, 107, 1, 0, 0, 0, 52, 119, 127, 142, 154, 163, 171, 175, 183, 185, 190, 197, 202, 209, 215, 223, 225, 236, 243, 254, 257, 271, 279, 287, 291, 294, 304, 313, 321, 333, 337, 343, 350, 358, 380, 391, 402, 407, 418, 423, 427, 435, 444, 453, 464, 478, 489, 492, 497, 522, 530, 533, 538]
\ No newline at end of file
+[4, 1, 109, 523, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 114, 8, 1, 10, 1, 12, 1, 117, 9, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 124, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 139, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 151, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 158, 8, 5, 10, 5, 12, 5, 161, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 168, 8, 5, 1, 5, 1, 5, 3, 5, 172, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 180, 8, 5, 10, 5, 12, 5, 183, 9, 5, 1, 6, 1, 6, 3, 6, 187, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 194, 8, 6, 1, 6, 1, 6, 1, 6, 3, 6, 199, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 206, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 212, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 220, 8, 8, 10, 8, 12, 8, 223, 9, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 233, 8, 9, 1, 9, 1, 9, 1, 9, 5, 9, 238, 8, 9, 10, 9, 12, 9, 241, 9, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 5, 10, 249, 8, 10, 10, 10, 12, 10, 252, 9, 10, 3, 10, 254, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 266, 8, 13, 10, 13, 12, 13, 269, 9, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 276, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 282, 8, 15, 10, 15, 12, 15, 285, 9, 15, 1, 15, 3, 15, 288, 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 3, 17, 294, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 300, 8, 18, 10, 18, 12, 18, 303, 9, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 314, 8, 21, 1, 21, 1, 21, 3, 21, 318, 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 324, 8, 22, 1, 23, 1, 23, 1, 23, 5, 23, 329, 8, 23, 10, 23, 12, 23, 332, 9, 23, 1, 24, 1, 24, 1, 24, 5, 24, 337, 8, 24, 10, 24, 12, 24, 340, 9, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 359, 8, 27, 10, 27, 12, 27, 362, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 370, 8, 27, 10, 27, 12, 27, 373, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 381, 8, 27, 10, 27, 12, 27, 384, 9, 27, 1, 27, 1, 27, 3, 27, 388, 8, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 397, 8, 29, 10, 29, 12, 29, 400, 9, 29, 1, 30, 1, 30, 3, 30, 404, 8, 30, 1, 30, 1, 30, 3, 30, 408, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 414, 8, 31, 10, 31, 12, 31, 417, 9, 31, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 423, 8, 32, 10, 32, 12, 32, 426, 9, 32, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 432, 8, 33, 10, 33, 12, 33, 435, 9, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 445, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 5, 38, 457, 8, 38, 10, 38, 12, 38, 460, 9, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 3, 41, 470, 8, 41, 1, 42, 3, 42, 473, 8, 42, 1, 42, 1, 42, 1, 43, 3, 43, 478, 8, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 503, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 509, 8, 50, 10, 50, 12, 50, 512, 9, 50, 3, 50, 514, 8, 50, 1, 51, 1, 51, 1, 51, 3, 51, 519, 8, 51, 1, 51, 1, 51, 1, 51, 0, 4, 2, 10, 16, 18, 52, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 0, 7, 1, 0, 60, 61, 1, 0, 62, 64, 1, 0, 67, 68, 2, 0, 32, 32, 36, 36, 1, 0, 39, 40, 2, 0, 38, 38, 52, 52, 2, 0, 53, 53, 55, 59, 548, 0, 104, 1, 0, 0, 0, 2, 107, 1, 0, 0, 0, 4, 123, 1, 0, 0, 0, 6, 138, 1, 0, 0, 0, 8, 140, 1, 0, 0, 0, 10, 171, 1, 0, 0, 0, 12, 198, 1, 0, 0, 0, 14, 205, 1, 0, 0, 0, 16, 211, 1, 0, 0, 0, 18, 232, 1, 0, 0, 0, 20, 242, 1, 0, 0, 0, 22, 257, 1, 0, 0, 0, 24, 259, 1, 0, 0, 0, 26, 262, 1, 0, 0, 0, 28, 275, 1, 0, 0, 0, 30, 277, 1, 0, 0, 0, 32, 289, 1, 0, 0, 0, 34, 293, 1, 0, 0, 0, 36, 295, 1, 0, 0, 0, 38, 304, 1, 0, 0, 0, 40, 308, 1, 0, 0, 0, 42, 311, 1, 0, 0, 0, 44, 319, 1, 0, 0, 0, 46, 325, 1, 0, 0, 0, 48, 333, 1, 0, 0, 0, 50, 341, 1, 0, 0, 0, 52, 343, 1, 0, 0, 0, 54, 387, 1, 0, 0, 0, 56, 389, 1, 0, 0, 0, 58, 392, 1, 0, 0, 0, 60, 401, 1, 0, 0, 0, 62, 409, 1, 0, 0, 0, 64, 418, 1, 0, 0, 0, 66, 427, 1, 0, 0, 0, 68, 436, 1, 0, 0, 0, 70, 440, 1, 0, 0, 0, 72, 446, 1, 0, 0, 0, 74, 450, 1, 0, 0, 0, 76, 453, 1, 0, 0, 0, 78, 461, 1, 0, 0, 0, 80, 465, 1, 0, 0, 0, 82, 469, 1, 0, 0, 0, 84, 472, 1, 0, 0, 0, 86, 477, 1, 0, 0, 0, 88, 481, 1, 0, 0, 0, 90, 483, 1, 0, 0, 0, 92, 485, 1, 0, 0, 0, 94, 488, 1, 0, 0, 0, 96, 492, 1, 0, 0, 0, 98, 495, 1, 0, 0, 0, 100, 498, 1, 0, 0, 0, 102, 518, 1, 0, 0, 0, 104, 105, 3, 2, 1, 0, 105, 106, 5, 0, 0, 1, 106, 1, 1, 0, 0, 0, 107, 108, 6, 1, -1, 0, 108, 109, 3, 4, 2, 0, 109, 115, 1, 0, 0, 0, 110, 111, 10, 1, 0, 0, 111, 112, 5, 26, 0, 0, 112, 114, 3, 6, 3, 0, 113, 110, 1, 0, 0, 0, 114, 117, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 3, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 118, 124, 3, 92, 46, 0, 119, 124, 3, 30, 15, 0, 120, 124, 3, 24, 12, 0, 121, 124, 3, 96, 48, 0, 122, 124, 3, 98, 49, 0, 123, 118, 1, 0, 0, 0, 123, 119, 1, 0, 0, 0, 123, 120, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 123, 122, 1, 0, 0, 0, 124, 5, 1, 0, 0, 0, 125, 139, 3, 40, 20, 0, 126, 139, 3, 44, 22, 0, 127, 139, 3, 56, 28, 0, 128, 139, 3, 62, 31, 0, 129, 139, 3, 58, 29, 0, 130, 139, 3, 42, 21, 0, 131, 139, 3, 8, 4, 0, 132, 139, 3, 64, 32, 0, 133, 139, 3, 66, 33, 0, 134, 139, 3, 70, 35, 0, 135, 139, 3, 72, 36, 0, 136, 139, 3, 100, 50, 0, 137, 139, 3, 74, 37, 0, 138, 125, 1, 0, 0, 0, 138, 126, 1, 0, 0, 0, 138, 127, 1, 0, 0, 0, 138, 128, 1, 0, 0, 0, 138, 129, 1, 0, 0, 0, 138, 130, 1, 0, 0, 0, 138, 131, 1, 0, 0, 0, 138, 132, 1, 0, 0, 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, 135, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 137, 1, 0, 0, 0, 139, 7, 1, 0, 0, 0, 140, 141, 5, 18, 0, 0, 141, 142, 3, 10, 5, 0, 142, 9, 1, 0, 0, 0, 143, 144, 6, 5, -1, 0, 144, 145, 5, 45, 0, 0, 145, 172, 3, 10, 5, 7, 146, 172, 3, 14, 7, 0, 147, 172, 3, 12, 6, 0, 148, 150, 3, 14, 7, 0, 149, 151, 5, 45, 0, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 5, 42, 0, 0, 153, 154, 5, 41, 0, 0, 154, 159, 3, 14, 7, 0, 155, 156, 5, 35, 0, 0, 156, 158, 3, 14, 7, 0, 157, 155, 1, 0, 0, 0, 158, 161, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 162, 1, 0, 0, 0, 161, 159, 1, 0, 0, 0, 162, 163, 5, 51, 0, 0, 163, 172, 1, 0, 0, 0, 164, 165, 3, 14, 7, 0, 165, 167, 5, 43, 0, 0, 166, 168, 5, 45, 0, 0, 167, 166, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 170, 5, 46, 0, 0, 170, 172, 1, 0, 0, 0, 171, 143, 1, 0, 0, 0, 171, 146, 1, 0, 0, 0, 171, 147, 1, 0, 0, 0, 171, 148, 1, 0, 0, 0, 171, 164, 1, 0, 0, 0, 172, 181, 1, 0, 0, 0, 173, 174, 10, 4, 0, 0, 174, 175, 5, 31, 0, 0, 175, 180, 3, 10, 5, 5, 176, 177, 10, 3, 0, 0, 177, 178, 5, 48, 0, 0, 178, 180, 3, 10, 5, 4, 179, 173, 1, 0, 0, 0, 179, 176, 1, 0, 0, 0, 180, 183, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 11, 1, 0, 0, 0, 183, 181, 1, 0, 0, 0, 184, 186, 3, 14, 7, 0, 185, 187, 5, 45, 0, 0, 186, 185, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 188, 1, 0, 0, 0, 188, 189, 5, 44, 0, 0, 189, 190, 3, 88, 44, 0, 190, 199, 1, 0, 0, 0, 191, 193, 3, 14, 7, 0, 192, 194, 5, 45, 0, 0, 193, 192, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 5, 50, 0, 0, 196, 197, 3, 88, 44, 0, 197, 199, 1, 0, 0, 0, 198, 184, 1, 0, 0, 0, 198, 191, 1, 0, 0, 0, 199, 13, 1, 0, 0, 0, 200, 206, 3, 16, 8, 0, 201, 202, 3, 16, 8, 0, 202, 203, 3, 90, 45, 0, 203, 204, 3, 16, 8, 0, 204, 206, 1, 0, 0, 0, 205, 200, 1, 0, 0, 0, 205, 201, 1, 0, 0, 0, 206, 15, 1, 0, 0, 0, 207, 208, 6, 8, -1, 0, 208, 212, 3, 18, 9, 0, 209, 210, 7, 0, 0, 0, 210, 212, 3, 16, 8, 3, 211, 207, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 221, 1, 0, 0, 0, 213, 214, 10, 2, 0, 0, 214, 215, 7, 1, 0, 0, 215, 220, 3, 16, 8, 3, 216, 217, 10, 1, 0, 0, 217, 218, 7, 0, 0, 0, 218, 220, 3, 16, 8, 2, 219, 213, 1, 0, 0, 0, 219, 216, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 17, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 224, 225, 6, 9, -1, 0, 225, 233, 3, 54, 27, 0, 226, 233, 3, 46, 23, 0, 227, 233, 3, 20, 10, 0, 228, 229, 5, 41, 0, 0, 229, 230, 3, 10, 5, 0, 230, 231, 5, 51, 0, 0, 231, 233, 1, 0, 0, 0, 232, 224, 1, 0, 0, 0, 232, 226, 1, 0, 0, 0, 232, 227, 1, 0, 0, 0, 232, 228, 1, 0, 0, 0, 233, 239, 1, 0, 0, 0, 234, 235, 10, 1, 0, 0, 235, 236, 5, 34, 0, 0, 236, 238, 3, 22, 11, 0, 237, 234, 1, 0, 0, 0, 238, 241, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 19, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 242, 243, 3, 50, 25, 0, 243, 253, 5, 41, 0, 0, 244, 254, 5, 62, 0, 0, 245, 250, 3, 10, 5, 0, 246, 247, 5, 35, 0, 0, 247, 249, 3, 10, 5, 0, 248, 246, 1, 0, 0, 0, 249, 252, 1, 0, 0, 0, 250, 248, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 254, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0, 253, 244, 1, 0, 0, 0, 253, 245, 1, 0, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 256, 5, 51, 0, 0, 256, 21, 1, 0, 0, 0, 257, 258, 3, 50, 25, 0, 258, 23, 1, 0, 0, 0, 259, 260, 5, 14, 0, 0, 260, 261, 3, 26, 13, 0, 261, 25, 1, 0, 0, 0, 262, 267, 3, 28, 14, 0, 263, 264, 5, 35, 0, 0, 264, 266, 3, 28, 14, 0, 265, 263, 1, 0, 0, 0, 266, 269, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 27, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 270, 276, 3, 10, 5, 0, 271, 272, 3, 46, 23, 0, 272, 273, 5, 33, 0, 0, 273, 274, 3, 10, 5, 0, 274, 276, 1, 0, 0, 0, 275, 270, 1, 0, 0, 0, 275, 271, 1, 0, 0, 0, 276, 29, 1, 0, 0, 0, 277, 278, 5, 6, 0, 0, 278, 283, 3, 32, 16, 0, 279, 280, 5, 35, 0, 0, 280, 282, 3, 32, 16, 0, 281, 279, 1, 0, 0, 0, 282, 285, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 287, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 286, 288, 3, 34, 17, 0, 287, 286, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 31, 1, 0, 0, 0, 289, 290, 5, 73, 0, 0, 290, 33, 1, 0, 0, 0, 291, 294, 3, 36, 18, 0, 292, 294, 3, 38, 19, 0, 293, 291, 1, 0, 0, 0, 293, 292, 1, 0, 0, 0, 294, 35, 1, 0, 0, 0, 295, 296, 5, 72, 0, 0, 296, 301, 3, 32, 16, 0, 297, 298, 5, 35, 0, 0, 298, 300, 3, 32, 16, 0, 299, 297, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 37, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 5, 65, 0, 0, 305, 306, 3, 36, 18, 0, 306, 307, 5, 66, 0, 0, 307, 39, 1, 0, 0, 0, 308, 309, 5, 4, 0, 0, 309, 310, 3, 26, 13, 0, 310, 41, 1, 0, 0, 0, 311, 313, 5, 17, 0, 0, 312, 314, 3, 26, 13, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 317, 1, 0, 0, 0, 315, 316, 5, 30, 0, 0, 316, 318, 3, 26, 13, 0, 317, 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 43, 1, 0, 0, 0, 319, 320, 5, 8, 0, 0, 320, 323, 3, 26, 13, 0, 321, 322, 5, 30, 0, 0, 322, 324, 3, 26, 13, 0, 323, 321, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 45, 1, 0, 0, 0, 325, 330, 3, 50, 25, 0, 326, 327, 5, 37, 0, 0, 327, 329, 3, 50, 25, 0, 328, 326, 1, 0, 0, 0, 329, 332, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 47, 1, 0, 0, 0, 332, 330, 1, 0, 0, 0, 333, 338, 3, 52, 26, 0, 334, 335, 5, 37, 0, 0, 335, 337, 3, 52, 26, 0, 336, 334, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 49, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 341, 342, 7, 2, 0, 0, 342, 51, 1, 0, 0, 0, 343, 344, 5, 77, 0, 0, 344, 53, 1, 0, 0, 0, 345, 388, 5, 46, 0, 0, 346, 347, 3, 86, 43, 0, 347, 348, 5, 67, 0, 0, 348, 388, 1, 0, 0, 0, 349, 388, 3, 84, 42, 0, 350, 388, 3, 86, 43, 0, 351, 388, 3, 80, 40, 0, 352, 388, 5, 49, 0, 0, 353, 388, 3, 88, 44, 0, 354, 355, 5, 65, 0, 0, 355, 360, 3, 82, 41, 0, 356, 357, 5, 35, 0, 0, 357, 359, 3, 82, 41, 0, 358, 356, 1, 0, 0, 0, 359, 362, 1, 0, 0, 0, 360, 358, 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 363, 1, 0, 0, 0, 362, 360, 1, 0, 0, 0, 363, 364, 5, 66, 0, 0, 364, 388, 1, 0, 0, 0, 365, 366, 5, 65, 0, 0, 366, 371, 3, 80, 40, 0, 367, 368, 5, 35, 0, 0, 368, 370, 3, 80, 40, 0, 369, 367, 1, 0, 0, 0, 370, 373, 1, 0, 0, 0, 371, 369, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 374, 1, 0, 0, 0, 373, 371, 1, 0, 0, 0, 374, 375, 5, 66, 0, 0, 375, 388, 1, 0, 0, 0, 376, 377, 5, 65, 0, 0, 377, 382, 3, 88, 44, 0, 378, 379, 5, 35, 0, 0, 379, 381, 3, 88, 44, 0, 380, 378, 1, 0, 0, 0, 381, 384, 1, 0, 0, 0, 382, 380, 1, 0, 0, 0, 382, 383, 1, 0, 0, 0, 383, 385, 1, 0, 0, 0, 384, 382, 1, 0, 0, 0, 385, 386, 5, 66, 0, 0, 386, 388, 1, 0, 0, 0, 387, 345, 1, 0, 0, 0, 387, 346, 1, 0, 0, 0, 387, 349, 1, 0, 0, 0, 387, 350, 1, 0, 0, 0, 387, 351, 1, 0, 0, 0, 387, 352, 1, 0, 0, 0, 387, 353, 1, 0, 0, 0, 387, 354, 1, 0, 0, 0, 387, 365, 1, 0, 0, 0, 387, 376, 1, 0, 0, 0, 388, 55, 1, 0, 0, 0, 389, 390, 5, 10, 0, 0, 390, 391, 5, 28, 0, 0, 391, 57, 1, 0, 0, 0, 392, 393, 5, 16, 0, 0, 393, 398, 3, 60, 30, 0, 394, 395, 5, 35, 0, 0, 395, 397, 3, 60, 30, 0, 396, 394, 1, 0, 0, 0, 397, 400, 1, 0, 0, 0, 398, 396, 1, 0, 0, 0, 398, 399, 1, 0, 0, 0, 399, 59, 1, 0, 0, 0, 400, 398, 1, 0, 0, 0, 401, 403, 3, 10, 5, 0, 402, 404, 7, 3, 0, 0, 403, 402, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 407, 1, 0, 0, 0, 405, 406, 5, 47, 0, 0, 406, 408, 7, 4, 0, 0, 407, 405, 1, 0, 0, 0, 407, 408, 1, 0, 0, 0, 408, 61, 1, 0, 0, 0, 409, 410, 5, 9, 0, 0, 410, 415, 3, 48, 24, 0, 411, 412, 5, 35, 0, 0, 412, 414, 3, 48, 24, 0, 413, 411, 1, 0, 0, 0, 414, 417, 1, 0, 0, 0, 415, 413, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 63, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 418, 419, 5, 2, 0, 0, 419, 424, 3, 48, 24, 0, 420, 421, 5, 35, 0, 0, 421, 423, 3, 48, 24, 0, 422, 420, 1, 0, 0, 0, 423, 426, 1, 0, 0, 0, 424, 422, 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 65, 1, 0, 0, 0, 426, 424, 1, 0, 0, 0, 427, 428, 5, 13, 0, 0, 428, 433, 3, 68, 34, 0, 429, 430, 5, 35, 0, 0, 430, 432, 3, 68, 34, 0, 431, 429, 1, 0, 0, 0, 432, 435, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 433, 434, 1, 0, 0, 0, 434, 67, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 436, 437, 3, 48, 24, 0, 437, 438, 5, 81, 0, 0, 438, 439, 3, 48, 24, 0, 439, 69, 1, 0, 0, 0, 440, 441, 5, 1, 0, 0, 441, 442, 3, 18, 9, 0, 442, 444, 3, 88, 44, 0, 443, 445, 3, 76, 38, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 71, 1, 0, 0, 0, 446, 447, 5, 7, 0, 0, 447, 448, 3, 18, 9, 0, 448, 449, 3, 88, 44, 0, 449, 73, 1, 0, 0, 0, 450, 451, 5, 12, 0, 0, 451, 452, 3, 46, 23, 0, 452, 75, 1, 0, 0, 0, 453, 458, 3, 78, 39, 0, 454, 455, 5, 35, 0, 0, 455, 457, 3, 78, 39, 0, 456, 454, 1, 0, 0, 0, 457, 460, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 77, 1, 0, 0, 0, 460, 458, 1, 0, 0, 0, 461, 462, 3, 50, 25, 0, 462, 463, 5, 33, 0, 0, 463, 464, 3, 54, 27, 0, 464, 79, 1, 0, 0, 0, 465, 466, 7, 5, 0, 0, 466, 81, 1, 0, 0, 0, 467, 470, 3, 84, 42, 0, 468, 470, 3, 86, 43, 0, 469, 467, 1, 0, 0, 0, 469, 468, 1, 0, 0, 0, 470, 83, 1, 0, 0, 0, 471, 473, 7, 0, 0, 0, 472, 471, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 475, 5, 29, 0, 0, 475, 85, 1, 0, 0, 0, 476, 478, 7, 0, 0, 0, 477, 476, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480, 5, 28, 0, 0, 480, 87, 1, 0, 0, 0, 481, 482, 5, 27, 0, 0, 482, 89, 1, 0, 0, 0, 483, 484, 7, 6, 0, 0, 484, 91, 1, 0, 0, 0, 485, 486, 5, 5, 0, 0, 486, 487, 3, 94, 47, 0, 487, 93, 1, 0, 0, 0, 488, 489, 5, 65, 0, 0, 489, 490, 3, 2, 1, 0, 490, 491, 5, 66, 0, 0, 491, 95, 1, 0, 0, 0, 492, 493, 5, 15, 0, 0, 493, 494, 5, 97, 0, 0, 494, 97, 1, 0, 0, 0, 495, 496, 5, 11, 0, 0, 496, 497, 5, 101, 0, 0, 497, 99, 1, 0, 0, 0, 498, 499, 5, 3, 0, 0, 499, 502, 5, 87, 0, 0, 500, 501, 5, 85, 0, 0, 501, 503, 3, 48, 24, 0, 502, 500, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 513, 1, 0, 0, 0, 504, 505, 5, 86, 0, 0, 505, 510, 3, 102, 51, 0, 506, 507, 5, 35, 0, 0, 507, 509, 3, 102, 51, 0, 508, 506, 1, 0, 0, 0, 509, 512, 1, 0, 0, 0, 510, 508, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 514, 1, 0, 0, 0, 512, 510, 1, 0, 0, 0, 513, 504, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 101, 1, 0, 0, 0, 515, 516, 3, 48, 24, 0, 516, 517, 5, 33, 0, 0, 517, 519, 1, 0, 0, 0, 518, 515, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 3, 48, 24, 0, 521, 103, 1, 0, 0, 0, 50, 115, 123, 138, 150, 159, 167, 171, 179, 181, 186, 193, 198, 205, 211, 219, 221, 232, 239, 250, 253, 267, 275, 283, 287, 293, 301, 313, 317, 323, 330, 338, 360, 371, 382, 387, 398, 403, 407, 415, 424, 433, 444, 458, 469, 472, 477, 502, 510, 513, 518]
\ No newline at end of file
diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.tokens b/packages/kbn-esql-ast/src/antlr/esql_parser.tokens
index b496aa68b61f7..d2e7a695282ec 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_parser.tokens
+++ b/packages/kbn-esql-ast/src/antlr/esql_parser.tokens
@@ -69,45 +69,44 @@ QUOTED_IDENTIFIER=68
EXPR_LINE_COMMENT=69
EXPR_MULTILINE_COMMENT=70
EXPR_WS=71
-OPTIONS=72
-METADATA=73
-FROM_UNQUOTED_IDENTIFIER=74
-FROM_LINE_COMMENT=75
-FROM_MULTILINE_COMMENT=76
-FROM_WS=77
-ID_PATTERN=78
-PROJECT_LINE_COMMENT=79
-PROJECT_MULTILINE_COMMENT=80
-PROJECT_WS=81
-AS=82
-RENAME_LINE_COMMENT=83
-RENAME_MULTILINE_COMMENT=84
-RENAME_WS=85
-ON=86
-WITH=87
-ENRICH_POLICY_NAME=88
-ENRICH_LINE_COMMENT=89
-ENRICH_MULTILINE_COMMENT=90
-ENRICH_WS=91
-ENRICH_FIELD_LINE_COMMENT=92
-ENRICH_FIELD_MULTILINE_COMMENT=93
-ENRICH_FIELD_WS=94
-MVEXPAND_LINE_COMMENT=95
-MVEXPAND_MULTILINE_COMMENT=96
-MVEXPAND_WS=97
-INFO=98
-SHOW_LINE_COMMENT=99
-SHOW_MULTILINE_COMMENT=100
-SHOW_WS=101
-FUNCTIONS=102
-META_LINE_COMMENT=103
-META_MULTILINE_COMMENT=104
-META_WS=105
-COLON=106
-SETTING=107
-SETTING_LINE_COMMENT=108
-SETTTING_MULTILINE_COMMENT=109
-SETTING_WS=110
+METADATA=72
+FROM_UNQUOTED_IDENTIFIER=73
+FROM_LINE_COMMENT=74
+FROM_MULTILINE_COMMENT=75
+FROM_WS=76
+ID_PATTERN=77
+PROJECT_LINE_COMMENT=78
+PROJECT_MULTILINE_COMMENT=79
+PROJECT_WS=80
+AS=81
+RENAME_LINE_COMMENT=82
+RENAME_MULTILINE_COMMENT=83
+RENAME_WS=84
+ON=85
+WITH=86
+ENRICH_POLICY_NAME=87
+ENRICH_LINE_COMMENT=88
+ENRICH_MULTILINE_COMMENT=89
+ENRICH_WS=90
+ENRICH_FIELD_LINE_COMMENT=91
+ENRICH_FIELD_MULTILINE_COMMENT=92
+ENRICH_FIELD_WS=93
+MVEXPAND_LINE_COMMENT=94
+MVEXPAND_MULTILINE_COMMENT=95
+MVEXPAND_WS=96
+INFO=97
+SHOW_LINE_COMMENT=98
+SHOW_MULTILINE_COMMENT=99
+SHOW_WS=100
+FUNCTIONS=101
+META_LINE_COMMENT=102
+META_MULTILINE_COMMENT=103
+META_WS=104
+COLON=105
+SETTING=106
+SETTING_LINE_COMMENT=107
+SETTTING_MULTILINE_COMMENT=108
+SETTING_WS=109
'dissect'=1
'drop'=2
'enrich'=3
@@ -163,11 +162,10 @@ SETTING_WS=110
'/'=63
'%'=64
']'=66
-'options'=72
-'metadata'=73
-'as'=82
-'on'=86
-'with'=87
-'info'=98
-'functions'=102
-':'=106
+'metadata'=72
+'as'=81
+'on'=85
+'with'=86
+'info'=97
+'functions'=101
+':'=105
diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser.ts b/packages/kbn-esql-ast/src/antlr/esql_parser.ts
index f8151aae343e8..d0258b35756e9 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_parser.ts
+++ b/packages/kbn-esql-ast/src/antlr/esql_parser.ts
@@ -89,45 +89,44 @@ export default class esql_parser extends Parser {
public static readonly EXPR_LINE_COMMENT = 69;
public static readonly EXPR_MULTILINE_COMMENT = 70;
public static readonly EXPR_WS = 71;
- public static readonly OPTIONS = 72;
- public static readonly METADATA = 73;
- public static readonly FROM_UNQUOTED_IDENTIFIER = 74;
- public static readonly FROM_LINE_COMMENT = 75;
- public static readonly FROM_MULTILINE_COMMENT = 76;
- public static readonly FROM_WS = 77;
- public static readonly ID_PATTERN = 78;
- public static readonly PROJECT_LINE_COMMENT = 79;
- public static readonly PROJECT_MULTILINE_COMMENT = 80;
- public static readonly PROJECT_WS = 81;
- public static readonly AS = 82;
- public static readonly RENAME_LINE_COMMENT = 83;
- public static readonly RENAME_MULTILINE_COMMENT = 84;
- public static readonly RENAME_WS = 85;
- public static readonly ON = 86;
- public static readonly WITH = 87;
- public static readonly ENRICH_POLICY_NAME = 88;
- public static readonly ENRICH_LINE_COMMENT = 89;
- public static readonly ENRICH_MULTILINE_COMMENT = 90;
- public static readonly ENRICH_WS = 91;
- public static readonly ENRICH_FIELD_LINE_COMMENT = 92;
- public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 93;
- public static readonly ENRICH_FIELD_WS = 94;
- public static readonly MVEXPAND_LINE_COMMENT = 95;
- public static readonly MVEXPAND_MULTILINE_COMMENT = 96;
- public static readonly MVEXPAND_WS = 97;
- public static readonly INFO = 98;
- public static readonly SHOW_LINE_COMMENT = 99;
- public static readonly SHOW_MULTILINE_COMMENT = 100;
- public static readonly SHOW_WS = 101;
- public static readonly FUNCTIONS = 102;
- public static readonly META_LINE_COMMENT = 103;
- public static readonly META_MULTILINE_COMMENT = 104;
- public static readonly META_WS = 105;
- public static readonly COLON = 106;
- public static readonly SETTING = 107;
- public static readonly SETTING_LINE_COMMENT = 108;
- public static readonly SETTTING_MULTILINE_COMMENT = 109;
- public static readonly SETTING_WS = 110;
+ public static readonly METADATA = 72;
+ public static readonly FROM_UNQUOTED_IDENTIFIER = 73;
+ public static readonly FROM_LINE_COMMENT = 74;
+ public static readonly FROM_MULTILINE_COMMENT = 75;
+ public static readonly FROM_WS = 76;
+ public static readonly ID_PATTERN = 77;
+ public static readonly PROJECT_LINE_COMMENT = 78;
+ public static readonly PROJECT_MULTILINE_COMMENT = 79;
+ public static readonly PROJECT_WS = 80;
+ public static readonly AS = 81;
+ public static readonly RENAME_LINE_COMMENT = 82;
+ public static readonly RENAME_MULTILINE_COMMENT = 83;
+ public static readonly RENAME_WS = 84;
+ public static readonly ON = 85;
+ public static readonly WITH = 86;
+ public static readonly ENRICH_POLICY_NAME = 87;
+ public static readonly ENRICH_LINE_COMMENT = 88;
+ public static readonly ENRICH_MULTILINE_COMMENT = 89;
+ public static readonly ENRICH_WS = 90;
+ public static readonly ENRICH_FIELD_LINE_COMMENT = 91;
+ public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 92;
+ public static readonly ENRICH_FIELD_WS = 93;
+ public static readonly MVEXPAND_LINE_COMMENT = 94;
+ public static readonly MVEXPAND_MULTILINE_COMMENT = 95;
+ public static readonly MVEXPAND_WS = 96;
+ public static readonly INFO = 97;
+ public static readonly SHOW_LINE_COMMENT = 98;
+ public static readonly SHOW_MULTILINE_COMMENT = 99;
+ public static readonly SHOW_WS = 100;
+ public static readonly FUNCTIONS = 101;
+ public static readonly META_LINE_COMMENT = 102;
+ public static readonly META_MULTILINE_COMMENT = 103;
+ public static readonly META_WS = 104;
+ public static readonly COLON = 105;
+ public static readonly SETTING = 106;
+ public static readonly SETTING_LINE_COMMENT = 107;
+ public static readonly SETTTING_MULTILINE_COMMENT = 108;
+ public static readonly SETTING_WS = 109;
public static readonly EOF = Token.EOF;
public static readonly RULE_singleStatement = 0;
public static readonly RULE_query = 1;
@@ -146,43 +145,41 @@ export default class esql_parser extends Parser {
public static readonly RULE_field = 14;
public static readonly RULE_fromCommand = 15;
public static readonly RULE_fromIdentifier = 16;
- public static readonly RULE_fromOptions = 17;
- public static readonly RULE_configOption = 18;
- public static readonly RULE_metadata = 19;
- public static readonly RULE_metadataOption = 20;
- public static readonly RULE_deprecated_metadata = 21;
- public static readonly RULE_evalCommand = 22;
- public static readonly RULE_statsCommand = 23;
- public static readonly RULE_inlinestatsCommand = 24;
- public static readonly RULE_qualifiedName = 25;
- public static readonly RULE_qualifiedNamePattern = 26;
- public static readonly RULE_identifier = 27;
- public static readonly RULE_identifierPattern = 28;
- public static readonly RULE_constant = 29;
- public static readonly RULE_limitCommand = 30;
- public static readonly RULE_sortCommand = 31;
- public static readonly RULE_orderExpression = 32;
- public static readonly RULE_keepCommand = 33;
- public static readonly RULE_dropCommand = 34;
- public static readonly RULE_renameCommand = 35;
- public static readonly RULE_renameClause = 36;
- public static readonly RULE_dissectCommand = 37;
- public static readonly RULE_grokCommand = 38;
- public static readonly RULE_mvExpandCommand = 39;
- public static readonly RULE_commandOptions = 40;
- public static readonly RULE_commandOption = 41;
- public static readonly RULE_booleanValue = 42;
- public static readonly RULE_numericValue = 43;
- public static readonly RULE_decimalValue = 44;
- public static readonly RULE_integerValue = 45;
- public static readonly RULE_string = 46;
- public static readonly RULE_comparisonOperator = 47;
- public static readonly RULE_explainCommand = 48;
- public static readonly RULE_subqueryExpression = 49;
- public static readonly RULE_showCommand = 50;
- public static readonly RULE_metaCommand = 51;
- public static readonly RULE_enrichCommand = 52;
- public static readonly RULE_enrichWithClause = 53;
+ public static readonly RULE_metadata = 17;
+ public static readonly RULE_metadataOption = 18;
+ public static readonly RULE_deprecated_metadata = 19;
+ public static readonly RULE_evalCommand = 20;
+ public static readonly RULE_statsCommand = 21;
+ public static readonly RULE_inlinestatsCommand = 22;
+ public static readonly RULE_qualifiedName = 23;
+ public static readonly RULE_qualifiedNamePattern = 24;
+ public static readonly RULE_identifier = 25;
+ public static readonly RULE_identifierPattern = 26;
+ public static readonly RULE_constant = 27;
+ public static readonly RULE_limitCommand = 28;
+ public static readonly RULE_sortCommand = 29;
+ public static readonly RULE_orderExpression = 30;
+ public static readonly RULE_keepCommand = 31;
+ public static readonly RULE_dropCommand = 32;
+ public static readonly RULE_renameCommand = 33;
+ public static readonly RULE_renameClause = 34;
+ public static readonly RULE_dissectCommand = 35;
+ public static readonly RULE_grokCommand = 36;
+ public static readonly RULE_mvExpandCommand = 37;
+ public static readonly RULE_commandOptions = 38;
+ public static readonly RULE_commandOption = 39;
+ public static readonly RULE_booleanValue = 40;
+ public static readonly RULE_numericValue = 41;
+ public static readonly RULE_decimalValue = 42;
+ public static readonly RULE_integerValue = 43;
+ public static readonly RULE_string = 44;
+ public static readonly RULE_comparisonOperator = 45;
+ public static readonly RULE_explainCommand = 46;
+ public static readonly RULE_subqueryExpression = 47;
+ public static readonly RULE_showCommand = 48;
+ public static readonly RULE_metaCommand = 49;
+ public static readonly RULE_enrichCommand = 50;
+ public static readonly RULE_enrichWithClause = 51;
public static readonly literalNames: (string | null)[] = [ null, "'dissect'",
"'drop'", "'enrich'",
"'eval'", "'explain'",
@@ -220,7 +217,6 @@ export default class esql_parser extends Parser {
"']'", null,
null, null,
null, null,
- "'options'",
"'metadata'",
null, null,
null, null,
@@ -283,7 +279,6 @@ export default class esql_parser extends Parser {
"EXPR_LINE_COMMENT",
"EXPR_MULTILINE_COMMENT",
"EXPR_WS",
- "OPTIONS",
"METADATA",
"FROM_UNQUOTED_IDENTIFIER",
"FROM_LINE_COMMENT",
@@ -323,12 +318,12 @@ export default class esql_parser extends Parser {
"singleStatement", "query", "sourceCommand", "processingCommand", "whereCommand",
"booleanExpression", "regexBooleanExpression", "valueExpression", "operatorExpression",
"primaryExpression", "functionExpression", "dataType", "rowCommand", "fields",
- "field", "fromCommand", "fromIdentifier", "fromOptions", "configOption",
- "metadata", "metadataOption", "deprecated_metadata", "evalCommand", "statsCommand",
- "inlinestatsCommand", "qualifiedName", "qualifiedNamePattern", "identifier",
- "identifierPattern", "constant", "limitCommand", "sortCommand", "orderExpression",
- "keepCommand", "dropCommand", "renameCommand", "renameClause", "dissectCommand",
- "grokCommand", "mvExpandCommand", "commandOptions", "commandOption", "booleanValue",
+ "field", "fromCommand", "fromIdentifier", "metadata", "metadataOption",
+ "deprecated_metadata", "evalCommand", "statsCommand", "inlinestatsCommand",
+ "qualifiedName", "qualifiedNamePattern", "identifier", "identifierPattern",
+ "constant", "limitCommand", "sortCommand", "orderExpression", "keepCommand",
+ "dropCommand", "renameCommand", "renameClause", "dissectCommand", "grokCommand",
+ "mvExpandCommand", "commandOptions", "commandOption", "booleanValue",
"numericValue", "decimalValue", "integerValue", "string", "comparisonOperator",
"explainCommand", "subqueryExpression", "showCommand", "metaCommand",
"enrichCommand", "enrichWithClause",
@@ -354,9 +349,9 @@ export default class esql_parser extends Parser {
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 108;
+ this.state = 104;
this.query(0);
- this.state = 109;
+ this.state = 105;
this.match(esql_parser.EOF);
}
}
@@ -398,11 +393,11 @@ export default class esql_parser extends Parser {
this._ctx = localctx;
_prevctx = localctx;
- this.state = 112;
+ this.state = 108;
this.sourceCommand();
}
this._ctx.stop = this._input.LT(-1);
- this.state = 119;
+ this.state = 115;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 0, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
@@ -415,18 +410,18 @@ export default class esql_parser extends Parser {
{
localctx = new CompositeQueryContext(this, new QueryContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_query);
- this.state = 114;
+ this.state = 110;
if (!(this.precpred(this._ctx, 1))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
}
- this.state = 115;
+ this.state = 111;
this.match(esql_parser.PIPE);
- this.state = 116;
+ this.state = 112;
this.processingCommand();
}
}
}
- this.state = 121;
+ this.state = 117;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 0, this._ctx);
}
@@ -451,41 +446,41 @@ export default class esql_parser extends Parser {
let localctx: SourceCommandContext = new SourceCommandContext(this, this._ctx, this.state);
this.enterRule(localctx, 4, esql_parser.RULE_sourceCommand);
try {
- this.state = 127;
+ this.state = 123;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case 5:
this.enterOuterAlt(localctx, 1);
{
- this.state = 122;
+ this.state = 118;
this.explainCommand();
}
break;
case 6:
this.enterOuterAlt(localctx, 2);
{
- this.state = 123;
+ this.state = 119;
this.fromCommand();
}
break;
case 14:
this.enterOuterAlt(localctx, 3);
{
- this.state = 124;
+ this.state = 120;
this.rowCommand();
}
break;
case 15:
this.enterOuterAlt(localctx, 4);
{
- this.state = 125;
+ this.state = 121;
this.showCommand();
}
break;
case 11:
this.enterOuterAlt(localctx, 5);
{
- this.state = 126;
+ this.state = 122;
this.metaCommand();
}
break;
@@ -512,97 +507,97 @@ export default class esql_parser extends Parser {
let localctx: ProcessingCommandContext = new ProcessingCommandContext(this, this._ctx, this.state);
this.enterRule(localctx, 6, esql_parser.RULE_processingCommand);
try {
- this.state = 142;
+ this.state = 138;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case 4:
this.enterOuterAlt(localctx, 1);
{
- this.state = 129;
+ this.state = 125;
this.evalCommand();
}
break;
case 8:
this.enterOuterAlt(localctx, 2);
{
- this.state = 130;
+ this.state = 126;
this.inlinestatsCommand();
}
break;
case 10:
this.enterOuterAlt(localctx, 3);
{
- this.state = 131;
+ this.state = 127;
this.limitCommand();
}
break;
case 9:
this.enterOuterAlt(localctx, 4);
{
- this.state = 132;
+ this.state = 128;
this.keepCommand();
}
break;
case 16:
this.enterOuterAlt(localctx, 5);
{
- this.state = 133;
+ this.state = 129;
this.sortCommand();
}
break;
case 17:
this.enterOuterAlt(localctx, 6);
{
- this.state = 134;
+ this.state = 130;
this.statsCommand();
}
break;
case 18:
this.enterOuterAlt(localctx, 7);
{
- this.state = 135;
+ this.state = 131;
this.whereCommand();
}
break;
case 2:
this.enterOuterAlt(localctx, 8);
{
- this.state = 136;
+ this.state = 132;
this.dropCommand();
}
break;
case 13:
this.enterOuterAlt(localctx, 9);
{
- this.state = 137;
+ this.state = 133;
this.renameCommand();
}
break;
case 1:
this.enterOuterAlt(localctx, 10);
{
- this.state = 138;
+ this.state = 134;
this.dissectCommand();
}
break;
case 7:
this.enterOuterAlt(localctx, 11);
{
- this.state = 139;
+ this.state = 135;
this.grokCommand();
}
break;
case 3:
this.enterOuterAlt(localctx, 12);
{
- this.state = 140;
+ this.state = 136;
this.enrichCommand();
}
break;
case 12:
this.enterOuterAlt(localctx, 13);
{
- this.state = 141;
+ this.state = 137;
this.mvExpandCommand();
}
break;
@@ -631,9 +626,9 @@ export default class esql_parser extends Parser {
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 144;
+ this.state = 140;
this.match(esql_parser.WHERE);
- this.state = 145;
+ this.state = 141;
this.booleanExpression(0);
}
}
@@ -671,7 +666,7 @@ export default class esql_parser extends Parser {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 175;
+ this.state = 171;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 6, this._ctx) ) {
case 1:
@@ -680,9 +675,9 @@ export default class esql_parser extends Parser {
this._ctx = localctx;
_prevctx = localctx;
- this.state = 148;
+ this.state = 144;
this.match(esql_parser.NOT);
- this.state = 149;
+ this.state = 145;
this.booleanExpression(7);
}
break;
@@ -691,7 +686,7 @@ export default class esql_parser extends Parser {
localctx = new BooleanDefaultContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 150;
+ this.state = 146;
this.valueExpression();
}
break;
@@ -700,7 +695,7 @@ export default class esql_parser extends Parser {
localctx = new RegexExpressionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 151;
+ this.state = 147;
this.regexBooleanExpression();
}
break;
@@ -709,41 +704,41 @@ export default class esql_parser extends Parser {
localctx = new LogicalInContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 152;
+ this.state = 148;
this.valueExpression();
- this.state = 154;
+ this.state = 150;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===45) {
{
- this.state = 153;
+ this.state = 149;
this.match(esql_parser.NOT);
}
}
- this.state = 156;
+ this.state = 152;
this.match(esql_parser.IN);
- this.state = 157;
+ this.state = 153;
this.match(esql_parser.LP);
- this.state = 158;
+ this.state = 154;
this.valueExpression();
- this.state = 163;
+ this.state = 159;
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la===35) {
{
{
- this.state = 159;
+ this.state = 155;
this.match(esql_parser.COMMA);
- this.state = 160;
+ this.state = 156;
this.valueExpression();
}
}
- this.state = 165;
+ this.state = 161;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
- this.state = 166;
+ this.state = 162;
this.match(esql_parser.RP);
}
break;
@@ -752,27 +747,27 @@ export default class esql_parser extends Parser {
localctx = new IsNullContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 168;
+ this.state = 164;
this.valueExpression();
- this.state = 169;
+ this.state = 165;
this.match(esql_parser.IS);
- this.state = 171;
+ this.state = 167;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===45) {
{
- this.state = 170;
+ this.state = 166;
this.match(esql_parser.NOT);
}
}
- this.state = 173;
+ this.state = 169;
this.match(esql_parser.NULL);
}
break;
}
this._ctx.stop = this._input.LT(-1);
- this.state = 185;
+ this.state = 181;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 8, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
@@ -782,7 +777,7 @@ export default class esql_parser extends Parser {
}
_prevctx = localctx;
{
- this.state = 183;
+ this.state = 179;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 7, this._ctx) ) {
case 1:
@@ -790,13 +785,13 @@ export default class esql_parser extends Parser {
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
(localctx as LogicalBinaryContext)._left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_booleanExpression);
- this.state = 177;
+ this.state = 173;
if (!(this.precpred(this._ctx, 4))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 4)");
}
- this.state = 178;
+ this.state = 174;
(localctx as LogicalBinaryContext)._operator = this.match(esql_parser.AND);
- this.state = 179;
+ this.state = 175;
(localctx as LogicalBinaryContext)._right = this.booleanExpression(5);
}
break;
@@ -805,20 +800,20 @@ export default class esql_parser extends Parser {
localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState));
(localctx as LogicalBinaryContext)._left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_booleanExpression);
- this.state = 180;
+ this.state = 176;
if (!(this.precpred(this._ctx, 3))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");
}
- this.state = 181;
+ this.state = 177;
(localctx as LogicalBinaryContext)._operator = this.match(esql_parser.OR);
- this.state = 182;
+ this.state = 178;
(localctx as LogicalBinaryContext)._right = this.booleanExpression(4);
}
break;
}
}
}
- this.state = 187;
+ this.state = 183;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 8, this._ctx);
}
@@ -844,48 +839,48 @@ export default class esql_parser extends Parser {
this.enterRule(localctx, 12, esql_parser.RULE_regexBooleanExpression);
let _la: number;
try {
- this.state = 202;
+ this.state = 198;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 11, this._ctx) ) {
case 1:
this.enterOuterAlt(localctx, 1);
{
- this.state = 188;
+ this.state = 184;
this.valueExpression();
- this.state = 190;
+ this.state = 186;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===45) {
{
- this.state = 189;
+ this.state = 185;
this.match(esql_parser.NOT);
}
}
- this.state = 192;
+ this.state = 188;
localctx._kind = this.match(esql_parser.LIKE);
- this.state = 193;
+ this.state = 189;
localctx._pattern = this.string_();
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
{
- this.state = 195;
+ this.state = 191;
this.valueExpression();
- this.state = 197;
+ this.state = 193;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===45) {
{
- this.state = 196;
+ this.state = 192;
this.match(esql_parser.NOT);
}
}
- this.state = 199;
+ this.state = 195;
localctx._kind = this.match(esql_parser.RLIKE);
- this.state = 200;
+ this.state = 196;
localctx._pattern = this.string_();
}
break;
@@ -910,14 +905,14 @@ export default class esql_parser extends Parser {
let localctx: ValueExpressionContext = new ValueExpressionContext(this, this._ctx, this.state);
this.enterRule(localctx, 14, esql_parser.RULE_valueExpression);
try {
- this.state = 209;
+ this.state = 205;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 12, this._ctx) ) {
case 1:
localctx = new ValueExpressionDefaultContext(this, localctx);
this.enterOuterAlt(localctx, 1);
{
- this.state = 204;
+ this.state = 200;
this.operatorExpression(0);
}
break;
@@ -925,11 +920,11 @@ export default class esql_parser extends Parser {
localctx = new ComparisonContext(this, localctx);
this.enterOuterAlt(localctx, 2);
{
- this.state = 205;
+ this.state = 201;
(localctx as ComparisonContext)._left = this.operatorExpression(0);
- this.state = 206;
+ this.state = 202;
this.comparisonOperator();
- this.state = 207;
+ this.state = 203;
(localctx as ComparisonContext)._right = this.operatorExpression(0);
}
break;
@@ -969,7 +964,7 @@ export default class esql_parser extends Parser {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 215;
+ this.state = 211;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 13, this._ctx) ) {
case 1:
@@ -978,7 +973,7 @@ export default class esql_parser extends Parser {
this._ctx = localctx;
_prevctx = localctx;
- this.state = 212;
+ this.state = 208;
this.primaryExpression(0);
}
break;
@@ -987,7 +982,7 @@ export default class esql_parser extends Parser {
localctx = new ArithmeticUnaryContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 213;
+ this.state = 209;
(localctx as ArithmeticUnaryContext)._operator = this._input.LT(1);
_la = this._input.LA(1);
if(!(_la===60 || _la===61)) {
@@ -997,13 +992,13 @@ export default class esql_parser extends Parser {
this._errHandler.reportMatch(this);
this.consume();
}
- this.state = 214;
+ this.state = 210;
this.operatorExpression(3);
}
break;
}
this._ctx.stop = this._input.LT(-1);
- this.state = 225;
+ this.state = 221;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 15, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
@@ -1013,7 +1008,7 @@ export default class esql_parser extends Parser {
}
_prevctx = localctx;
{
- this.state = 223;
+ this.state = 219;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) {
case 1:
@@ -1021,11 +1016,11 @@ export default class esql_parser extends Parser {
localctx = new ArithmeticBinaryContext(this, new OperatorExpressionContext(this, _parentctx, _parentState));
(localctx as ArithmeticBinaryContext)._left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_operatorExpression);
- this.state = 217;
+ this.state = 213;
if (!(this.precpred(this._ctx, 2))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 2)");
}
- this.state = 218;
+ this.state = 214;
(localctx as ArithmeticBinaryContext)._operator = this._input.LT(1);
_la = this._input.LA(1);
if(!(((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & 7) !== 0))) {
@@ -1035,7 +1030,7 @@ export default class esql_parser extends Parser {
this._errHandler.reportMatch(this);
this.consume();
}
- this.state = 219;
+ this.state = 215;
(localctx as ArithmeticBinaryContext)._right = this.operatorExpression(3);
}
break;
@@ -1044,11 +1039,11 @@ export default class esql_parser extends Parser {
localctx = new ArithmeticBinaryContext(this, new OperatorExpressionContext(this, _parentctx, _parentState));
(localctx as ArithmeticBinaryContext)._left = _prevctx;
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_operatorExpression);
- this.state = 220;
+ this.state = 216;
if (!(this.precpred(this._ctx, 1))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
}
- this.state = 221;
+ this.state = 217;
(localctx as ArithmeticBinaryContext)._operator = this._input.LT(1);
_la = this._input.LA(1);
if(!(_la===60 || _la===61)) {
@@ -1058,14 +1053,14 @@ export default class esql_parser extends Parser {
this._errHandler.reportMatch(this);
this.consume();
}
- this.state = 222;
+ this.state = 218;
(localctx as ArithmeticBinaryContext)._right = this.operatorExpression(2);
}
break;
}
}
}
- this.state = 227;
+ this.state = 223;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 15, this._ctx);
}
@@ -1104,7 +1099,7 @@ export default class esql_parser extends Parser {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 236;
+ this.state = 232;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 16, this._ctx) ) {
case 1:
@@ -1113,7 +1108,7 @@ export default class esql_parser extends Parser {
this._ctx = localctx;
_prevctx = localctx;
- this.state = 229;
+ this.state = 225;
this.constant();
}
break;
@@ -1122,7 +1117,7 @@ export default class esql_parser extends Parser {
localctx = new DereferenceContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 230;
+ this.state = 226;
this.qualifiedName();
}
break;
@@ -1131,7 +1126,7 @@ export default class esql_parser extends Parser {
localctx = new FunctionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 231;
+ this.state = 227;
this.functionExpression();
}
break;
@@ -1140,17 +1135,17 @@ export default class esql_parser extends Parser {
localctx = new ParenthesizedExpressionContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
- this.state = 232;
+ this.state = 228;
this.match(esql_parser.LP);
- this.state = 233;
+ this.state = 229;
this.booleanExpression(0);
- this.state = 234;
+ this.state = 230;
this.match(esql_parser.RP);
}
break;
}
this._ctx.stop = this._input.LT(-1);
- this.state = 243;
+ this.state = 239;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 17, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
@@ -1163,18 +1158,18 @@ export default class esql_parser extends Parser {
{
localctx = new InlineCastContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, esql_parser.RULE_primaryExpression);
- this.state = 238;
+ this.state = 234;
if (!(this.precpred(this._ctx, 1))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
}
- this.state = 239;
+ this.state = 235;
this.match(esql_parser.CAST_OP);
- this.state = 240;
+ this.state = 236;
this.dataType();
}
}
}
- this.state = 245;
+ this.state = 241;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 17, this._ctx);
}
@@ -1202,16 +1197,16 @@ export default class esql_parser extends Parser {
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 246;
+ this.state = 242;
this.identifier();
- this.state = 247;
+ this.state = 243;
this.match(esql_parser.LP);
- this.state = 257;
+ this.state = 253;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case 62:
{
- this.state = 248;
+ this.state = 244;
this.match(esql_parser.ASTERISK);
}
break;
@@ -1231,21 +1226,21 @@ export default class esql_parser extends Parser {
case 68:
{
{
- this.state = 249;
+ this.state = 245;
this.booleanExpression(0);
- this.state = 254;
+ this.state = 250;
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la===35) {
{
{
- this.state = 250;
+ this.state = 246;
this.match(esql_parser.COMMA);
- this.state = 251;
+ this.state = 247;
this.booleanExpression(0);
}
}
- this.state = 256;
+ this.state = 252;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
@@ -1257,7 +1252,7 @@ export default class esql_parser extends Parser {
default:
break;
}
- this.state = 259;
+ this.state = 255;
this.match(esql_parser.RP);
}
}
@@ -1283,7 +1278,7 @@ export default class esql_parser extends Parser {
localctx = new ToDataTypeContext(this, localctx);
this.enterOuterAlt(localctx, 1);
{
- this.state = 261;
+ this.state = 257;
this.identifier();
}
}
@@ -1308,9 +1303,9 @@ export default class esql_parser extends Parser {
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 263;
+ this.state = 259;
this.match(esql_parser.ROW);
- this.state = 264;
+ this.state = 260;
this.fields();
}
}
@@ -1336,23 +1331,23 @@ export default class esql_parser extends Parser {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 266;
+ this.state = 262;
this.field();
- this.state = 271;
+ this.state = 267;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 267;
+ this.state = 263;
this.match(esql_parser.COMMA);
- this.state = 268;
+ this.state = 264;
this.field();
}
}
}
- this.state = 273;
+ this.state = 269;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
}
@@ -1377,24 +1372,24 @@ export default class esql_parser extends Parser {
let localctx: FieldContext = new FieldContext(this, this._ctx, this.state);
this.enterRule(localctx, 28, esql_parser.RULE_field);
try {
- this.state = 279;
+ this.state = 275;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 21, this._ctx) ) {
case 1:
this.enterOuterAlt(localctx, 1);
{
- this.state = 274;
+ this.state = 270;
this.booleanExpression(0);
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
{
- this.state = 275;
+ this.state = 271;
this.qualifiedName();
- this.state = 276;
+ this.state = 272;
this.match(esql_parser.ASSIGN);
- this.state = 277;
+ this.state = 273;
this.booleanExpression(0);
}
break;
@@ -1422,48 +1417,38 @@ export default class esql_parser extends Parser {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 281;
+ this.state = 277;
this.match(esql_parser.FROM);
- this.state = 282;
+ this.state = 278;
this.fromIdentifier();
- this.state = 287;
+ this.state = 283;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 22, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 283;
+ this.state = 279;
this.match(esql_parser.COMMA);
- this.state = 284;
+ this.state = 280;
this.fromIdentifier();
}
}
}
- this.state = 289;
+ this.state = 285;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 22, this._ctx);
}
- this.state = 291;
+ this.state = 287;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 23, this._ctx) ) {
case 1:
{
- this.state = 290;
+ this.state = 286;
this.metadata();
}
break;
}
- this.state = 294;
- this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 24, this._ctx) ) {
- case 1:
- {
- this.state = 293;
- this.fromOptions();
- }
- break;
- }
}
}
catch (re) {
@@ -1487,7 +1472,7 @@ export default class esql_parser extends Parser {
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 296;
+ this.state = 289;
this.match(esql_parser.FROM_UNQUOTED_IDENTIFIER);
}
}
@@ -1506,99 +1491,24 @@ export default class esql_parser extends Parser {
return localctx;
}
// @RuleVersion(0)
- public fromOptions(): FromOptionsContext {
- let localctx: FromOptionsContext = new FromOptionsContext(this, this._ctx, this.state);
- this.enterRule(localctx, 34, esql_parser.RULE_fromOptions);
- try {
- let _alt: number;
- this.enterOuterAlt(localctx, 1);
- {
- this.state = 298;
- this.match(esql_parser.OPTIONS);
- this.state = 299;
- this.configOption();
- this.state = 304;
- this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
- while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
- if (_alt === 1) {
- {
- {
- this.state = 300;
- this.match(esql_parser.COMMA);
- this.state = 301;
- this.configOption();
- }
- }
- }
- this.state = 306;
- this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
- }
- }
- }
- catch (re) {
- if (re instanceof RecognitionException) {
- localctx.exception = re;
- this._errHandler.reportError(this, re);
- this._errHandler.recover(this, re);
- } else {
- throw re;
- }
- }
- finally {
- this.exitRule();
- }
- return localctx;
- }
- // @RuleVersion(0)
- public configOption(): ConfigOptionContext {
- let localctx: ConfigOptionContext = new ConfigOptionContext(this, this._ctx, this.state);
- this.enterRule(localctx, 36, esql_parser.RULE_configOption);
- try {
- this.enterOuterAlt(localctx, 1);
- {
- this.state = 307;
- this.string_();
- this.state = 308;
- this.match(esql_parser.ASSIGN);
- this.state = 309;
- this.string_();
- }
- }
- catch (re) {
- if (re instanceof RecognitionException) {
- localctx.exception = re;
- this._errHandler.reportError(this, re);
- this._errHandler.recover(this, re);
- } else {
- throw re;
- }
- }
- finally {
- this.exitRule();
- }
- return localctx;
- }
- // @RuleVersion(0)
public metadata(): MetadataContext {
let localctx: MetadataContext = new MetadataContext(this, this._ctx, this.state);
- this.enterRule(localctx, 38, esql_parser.RULE_metadata);
+ this.enterRule(localctx, 34, esql_parser.RULE_metadata);
try {
- this.state = 313;
+ this.state = 293;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
- case 73:
+ case 72:
this.enterOuterAlt(localctx, 1);
{
- this.state = 311;
+ this.state = 291;
this.metadataOption();
}
break;
case 65:
this.enterOuterAlt(localctx, 2);
{
- this.state = 312;
+ this.state = 292;
this.deprecated_metadata();
}
break;
@@ -1623,32 +1533,32 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public metadataOption(): MetadataOptionContext {
let localctx: MetadataOptionContext = new MetadataOptionContext(this, this._ctx, this.state);
- this.enterRule(localctx, 40, esql_parser.RULE_metadataOption);
+ this.enterRule(localctx, 36, esql_parser.RULE_metadataOption);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 315;
+ this.state = 295;
this.match(esql_parser.METADATA);
- this.state = 316;
+ this.state = 296;
this.fromIdentifier();
- this.state = 321;
+ this.state = 301;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 317;
+ this.state = 297;
this.match(esql_parser.COMMA);
- this.state = 318;
+ this.state = 298;
this.fromIdentifier();
}
}
}
- this.state = 323;
+ this.state = 303;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
}
}
}
@@ -1669,15 +1579,15 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public deprecated_metadata(): Deprecated_metadataContext {
let localctx: Deprecated_metadataContext = new Deprecated_metadataContext(this, this._ctx, this.state);
- this.enterRule(localctx, 42, esql_parser.RULE_deprecated_metadata);
+ this.enterRule(localctx, 38, esql_parser.RULE_deprecated_metadata);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 324;
+ this.state = 304;
this.match(esql_parser.OPENING_BRACKET);
- this.state = 325;
+ this.state = 305;
this.metadataOption();
- this.state = 326;
+ this.state = 306;
this.match(esql_parser.CLOSING_BRACKET);
}
}
@@ -1698,13 +1608,13 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public evalCommand(): EvalCommandContext {
let localctx: EvalCommandContext = new EvalCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 44, esql_parser.RULE_evalCommand);
+ this.enterRule(localctx, 40, esql_parser.RULE_evalCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 328;
+ this.state = 308;
this.match(esql_parser.EVAL);
- this.state = 329;
+ this.state = 309;
this.fields();
}
}
@@ -1725,30 +1635,30 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public statsCommand(): StatsCommandContext {
let localctx: StatsCommandContext = new StatsCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 46, esql_parser.RULE_statsCommand);
+ this.enterRule(localctx, 42, esql_parser.RULE_statsCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 331;
+ this.state = 311;
this.match(esql_parser.STATS);
- this.state = 333;
+ this.state = 313;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 28, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 26, this._ctx) ) {
case 1:
{
- this.state = 332;
+ this.state = 312;
localctx._stats = this.fields();
}
break;
}
- this.state = 337;
+ this.state = 317;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 29, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 27, this._ctx) ) {
case 1:
{
- this.state = 335;
+ this.state = 315;
this.match(esql_parser.BY);
- this.state = 336;
+ this.state = 316;
localctx._grouping = this.fields();
}
break;
@@ -1772,22 +1682,22 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public inlinestatsCommand(): InlinestatsCommandContext {
let localctx: InlinestatsCommandContext = new InlinestatsCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 48, esql_parser.RULE_inlinestatsCommand);
+ this.enterRule(localctx, 44, esql_parser.RULE_inlinestatsCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 339;
+ this.state = 319;
this.match(esql_parser.INLINESTATS);
- this.state = 340;
+ this.state = 320;
localctx._stats = this.fields();
- this.state = 343;
+ this.state = 323;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 30, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 28, this._ctx) ) {
case 1:
{
- this.state = 341;
+ this.state = 321;
this.match(esql_parser.BY);
- this.state = 342;
+ this.state = 322;
localctx._grouping = this.fields();
}
break;
@@ -1811,30 +1721,30 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public qualifiedName(): QualifiedNameContext {
let localctx: QualifiedNameContext = new QualifiedNameContext(this, this._ctx, this.state);
- this.enterRule(localctx, 50, esql_parser.RULE_qualifiedName);
+ this.enterRule(localctx, 46, esql_parser.RULE_qualifiedName);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 345;
+ this.state = 325;
this.identifier();
- this.state = 350;
+ this.state = 330;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 31, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 346;
+ this.state = 326;
this.match(esql_parser.DOT);
- this.state = 347;
+ this.state = 327;
this.identifier();
}
}
}
- this.state = 352;
+ this.state = 332;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 31, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
}
}
}
@@ -1855,30 +1765,30 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public qualifiedNamePattern(): QualifiedNamePatternContext {
let localctx: QualifiedNamePatternContext = new QualifiedNamePatternContext(this, this._ctx, this.state);
- this.enterRule(localctx, 52, esql_parser.RULE_qualifiedNamePattern);
+ this.enterRule(localctx, 48, esql_parser.RULE_qualifiedNamePattern);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 353;
+ this.state = 333;
this.identifierPattern();
- this.state = 358;
+ this.state = 338;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 30, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 354;
+ this.state = 334;
this.match(esql_parser.DOT);
- this.state = 355;
+ this.state = 335;
this.identifierPattern();
}
}
}
- this.state = 360;
+ this.state = 340;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 30, this._ctx);
}
}
}
@@ -1899,12 +1809,12 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public identifier(): IdentifierContext {
let localctx: IdentifierContext = new IdentifierContext(this, this._ctx, this.state);
- this.enterRule(localctx, 54, esql_parser.RULE_identifier);
+ this.enterRule(localctx, 50, esql_parser.RULE_identifier);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 361;
+ this.state = 341;
_la = this._input.LA(1);
if(!(_la===67 || _la===68)) {
this._errHandler.recoverInline(this);
@@ -1932,11 +1842,11 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public identifierPattern(): IdentifierPatternContext {
let localctx: IdentifierPatternContext = new IdentifierPatternContext(this, this._ctx, this.state);
- this.enterRule(localctx, 56, esql_parser.RULE_identifierPattern);
+ this.enterRule(localctx, 52, esql_parser.RULE_identifierPattern);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 363;
+ this.state = 343;
this.match(esql_parser.ID_PATTERN);
}
}
@@ -1957,17 +1867,17 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public constant(): ConstantContext {
let localctx: ConstantContext = new ConstantContext(this, this._ctx, this.state);
- this.enterRule(localctx, 58, esql_parser.RULE_constant);
+ this.enterRule(localctx, 54, esql_parser.RULE_constant);
let _la: number;
try {
- this.state = 407;
+ this.state = 387;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 36, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 34, this._ctx) ) {
case 1:
localctx = new NullLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 1);
{
- this.state = 365;
+ this.state = 345;
this.match(esql_parser.NULL);
}
break;
@@ -1975,9 +1885,9 @@ export default class esql_parser extends Parser {
localctx = new QualifiedIntegerLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 2);
{
- this.state = 366;
+ this.state = 346;
this.integerValue();
- this.state = 367;
+ this.state = 347;
this.match(esql_parser.UNQUOTED_IDENTIFIER);
}
break;
@@ -1985,7 +1895,7 @@ export default class esql_parser extends Parser {
localctx = new DecimalLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 3);
{
- this.state = 369;
+ this.state = 349;
this.decimalValue();
}
break;
@@ -1993,7 +1903,7 @@ export default class esql_parser extends Parser {
localctx = new IntegerLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 4);
{
- this.state = 370;
+ this.state = 350;
this.integerValue();
}
break;
@@ -2001,7 +1911,7 @@ export default class esql_parser extends Parser {
localctx = new BooleanLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 5);
{
- this.state = 371;
+ this.state = 351;
this.booleanValue();
}
break;
@@ -2009,7 +1919,7 @@ export default class esql_parser extends Parser {
localctx = new InputParamContext(this, localctx);
this.enterOuterAlt(localctx, 6);
{
- this.state = 372;
+ this.state = 352;
this.match(esql_parser.PARAM);
}
break;
@@ -2017,7 +1927,7 @@ export default class esql_parser extends Parser {
localctx = new StringLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 7);
{
- this.state = 373;
+ this.state = 353;
this.string_();
}
break;
@@ -2025,27 +1935,27 @@ export default class esql_parser extends Parser {
localctx = new NumericArrayLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 8);
{
- this.state = 374;
+ this.state = 354;
this.match(esql_parser.OPENING_BRACKET);
- this.state = 375;
+ this.state = 355;
this.numericValue();
- this.state = 380;
+ this.state = 360;
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la===35) {
{
{
- this.state = 376;
+ this.state = 356;
this.match(esql_parser.COMMA);
- this.state = 377;
+ this.state = 357;
this.numericValue();
}
}
- this.state = 382;
+ this.state = 362;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
- this.state = 383;
+ this.state = 363;
this.match(esql_parser.CLOSING_BRACKET);
}
break;
@@ -2053,27 +1963,27 @@ export default class esql_parser extends Parser {
localctx = new BooleanArrayLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 9);
{
- this.state = 385;
+ this.state = 365;
this.match(esql_parser.OPENING_BRACKET);
- this.state = 386;
+ this.state = 366;
this.booleanValue();
- this.state = 391;
+ this.state = 371;
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la===35) {
{
{
- this.state = 387;
+ this.state = 367;
this.match(esql_parser.COMMA);
- this.state = 388;
+ this.state = 368;
this.booleanValue();
}
}
- this.state = 393;
+ this.state = 373;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
- this.state = 394;
+ this.state = 374;
this.match(esql_parser.CLOSING_BRACKET);
}
break;
@@ -2081,27 +1991,27 @@ export default class esql_parser extends Parser {
localctx = new StringArrayLiteralContext(this, localctx);
this.enterOuterAlt(localctx, 10);
{
- this.state = 396;
+ this.state = 376;
this.match(esql_parser.OPENING_BRACKET);
- this.state = 397;
+ this.state = 377;
this.string_();
- this.state = 402;
+ this.state = 382;
this._errHandler.sync(this);
_la = this._input.LA(1);
while (_la===35) {
{
{
- this.state = 398;
+ this.state = 378;
this.match(esql_parser.COMMA);
- this.state = 399;
+ this.state = 379;
this.string_();
}
}
- this.state = 404;
+ this.state = 384;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
- this.state = 405;
+ this.state = 385;
this.match(esql_parser.CLOSING_BRACKET);
}
break;
@@ -2124,13 +2034,13 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public limitCommand(): LimitCommandContext {
let localctx: LimitCommandContext = new LimitCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 60, esql_parser.RULE_limitCommand);
+ this.enterRule(localctx, 56, esql_parser.RULE_limitCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 409;
+ this.state = 389;
this.match(esql_parser.LIMIT);
- this.state = 410;
+ this.state = 390;
this.match(esql_parser.INTEGER_LITERAL);
}
}
@@ -2151,32 +2061,32 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public sortCommand(): SortCommandContext {
let localctx: SortCommandContext = new SortCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 62, esql_parser.RULE_sortCommand);
+ this.enterRule(localctx, 58, esql_parser.RULE_sortCommand);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 412;
+ this.state = 392;
this.match(esql_parser.SORT);
- this.state = 413;
+ this.state = 393;
this.orderExpression();
- this.state = 418;
+ this.state = 398;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 35, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 414;
+ this.state = 394;
this.match(esql_parser.COMMA);
- this.state = 415;
+ this.state = 395;
this.orderExpression();
}
}
}
- this.state = 420;
+ this.state = 400;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 35, this._ctx);
}
}
}
@@ -2197,19 +2107,19 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public orderExpression(): OrderExpressionContext {
let localctx: OrderExpressionContext = new OrderExpressionContext(this, this._ctx, this.state);
- this.enterRule(localctx, 64, esql_parser.RULE_orderExpression);
+ this.enterRule(localctx, 60, esql_parser.RULE_orderExpression);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 421;
+ this.state = 401;
this.booleanExpression(0);
- this.state = 423;
+ this.state = 403;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 38, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 36, this._ctx) ) {
case 1:
{
- this.state = 422;
+ this.state = 402;
localctx._ordering = this._input.LT(1);
_la = this._input.LA(1);
if(!(_la===32 || _la===36)) {
@@ -2222,14 +2132,14 @@ export default class esql_parser extends Parser {
}
break;
}
- this.state = 427;
+ this.state = 407;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 39, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 37, this._ctx) ) {
case 1:
{
- this.state = 425;
+ this.state = 405;
this.match(esql_parser.NULLS);
- this.state = 426;
+ this.state = 406;
localctx._nullOrdering = this._input.LT(1);
_la = this._input.LA(1);
if(!(_la===39 || _la===40)) {
@@ -2261,32 +2171,32 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public keepCommand(): KeepCommandContext {
let localctx: KeepCommandContext = new KeepCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 66, esql_parser.RULE_keepCommand);
+ this.enterRule(localctx, 62, esql_parser.RULE_keepCommand);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 429;
+ this.state = 409;
this.match(esql_parser.KEEP);
- this.state = 430;
+ this.state = 410;
this.qualifiedNamePattern();
- this.state = 435;
+ this.state = 415;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 38, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 431;
+ this.state = 411;
this.match(esql_parser.COMMA);
- this.state = 432;
+ this.state = 412;
this.qualifiedNamePattern();
}
}
}
- this.state = 437;
+ this.state = 417;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 38, this._ctx);
}
}
}
@@ -2307,32 +2217,32 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public dropCommand(): DropCommandContext {
let localctx: DropCommandContext = new DropCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 68, esql_parser.RULE_dropCommand);
+ this.enterRule(localctx, 64, esql_parser.RULE_dropCommand);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 438;
+ this.state = 418;
this.match(esql_parser.DROP);
- this.state = 439;
+ this.state = 419;
this.qualifiedNamePattern();
- this.state = 444;
+ this.state = 424;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 41, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 39, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 440;
+ this.state = 420;
this.match(esql_parser.COMMA);
- this.state = 441;
+ this.state = 421;
this.qualifiedNamePattern();
}
}
}
- this.state = 446;
+ this.state = 426;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 41, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 39, this._ctx);
}
}
}
@@ -2353,32 +2263,32 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public renameCommand(): RenameCommandContext {
let localctx: RenameCommandContext = new RenameCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 70, esql_parser.RULE_renameCommand);
+ this.enterRule(localctx, 66, esql_parser.RULE_renameCommand);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 447;
+ this.state = 427;
this.match(esql_parser.RENAME);
- this.state = 448;
+ this.state = 428;
this.renameClause();
- this.state = 453;
+ this.state = 433;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 42, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 449;
+ this.state = 429;
this.match(esql_parser.COMMA);
- this.state = 450;
+ this.state = 430;
this.renameClause();
}
}
}
- this.state = 455;
+ this.state = 435;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 42, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
}
}
}
@@ -2399,15 +2309,15 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public renameClause(): RenameClauseContext {
let localctx: RenameClauseContext = new RenameClauseContext(this, this._ctx, this.state);
- this.enterRule(localctx, 72, esql_parser.RULE_renameClause);
+ this.enterRule(localctx, 68, esql_parser.RULE_renameClause);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 456;
+ this.state = 436;
localctx._oldName = this.qualifiedNamePattern();
- this.state = 457;
+ this.state = 437;
this.match(esql_parser.AS);
- this.state = 458;
+ this.state = 438;
localctx._newName = this.qualifiedNamePattern();
}
}
@@ -2428,22 +2338,22 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public dissectCommand(): DissectCommandContext {
let localctx: DissectCommandContext = new DissectCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 74, esql_parser.RULE_dissectCommand);
+ this.enterRule(localctx, 70, esql_parser.RULE_dissectCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 460;
+ this.state = 440;
this.match(esql_parser.DISSECT);
- this.state = 461;
+ this.state = 441;
this.primaryExpression(0);
- this.state = 462;
+ this.state = 442;
this.string_();
- this.state = 464;
+ this.state = 444;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 43, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 41, this._ctx) ) {
case 1:
{
- this.state = 463;
+ this.state = 443;
this.commandOptions();
}
break;
@@ -2467,15 +2377,15 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public grokCommand(): GrokCommandContext {
let localctx: GrokCommandContext = new GrokCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 76, esql_parser.RULE_grokCommand);
+ this.enterRule(localctx, 72, esql_parser.RULE_grokCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 466;
+ this.state = 446;
this.match(esql_parser.GROK);
- this.state = 467;
+ this.state = 447;
this.primaryExpression(0);
- this.state = 468;
+ this.state = 448;
this.string_();
}
}
@@ -2496,13 +2406,13 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public mvExpandCommand(): MvExpandCommandContext {
let localctx: MvExpandCommandContext = new MvExpandCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 78, esql_parser.RULE_mvExpandCommand);
+ this.enterRule(localctx, 74, esql_parser.RULE_mvExpandCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 470;
+ this.state = 450;
this.match(esql_parser.MV_EXPAND);
- this.state = 471;
+ this.state = 451;
this.qualifiedName();
}
}
@@ -2523,30 +2433,30 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public commandOptions(): CommandOptionsContext {
let localctx: CommandOptionsContext = new CommandOptionsContext(this, this._ctx, this.state);
- this.enterRule(localctx, 80, esql_parser.RULE_commandOptions);
+ this.enterRule(localctx, 76, esql_parser.RULE_commandOptions);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 473;
+ this.state = 453;
this.commandOption();
- this.state = 478;
+ this.state = 458;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 44, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 42, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 474;
+ this.state = 454;
this.match(esql_parser.COMMA);
- this.state = 475;
+ this.state = 455;
this.commandOption();
}
}
}
- this.state = 480;
+ this.state = 460;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 44, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 42, this._ctx);
}
}
}
@@ -2567,15 +2477,15 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public commandOption(): CommandOptionContext {
let localctx: CommandOptionContext = new CommandOptionContext(this, this._ctx, this.state);
- this.enterRule(localctx, 82, esql_parser.RULE_commandOption);
+ this.enterRule(localctx, 78, esql_parser.RULE_commandOption);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 481;
+ this.state = 461;
this.identifier();
- this.state = 482;
+ this.state = 462;
this.match(esql_parser.ASSIGN);
- this.state = 483;
+ this.state = 463;
this.constant();
}
}
@@ -2596,12 +2506,12 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public booleanValue(): BooleanValueContext {
let localctx: BooleanValueContext = new BooleanValueContext(this, this._ctx, this.state);
- this.enterRule(localctx, 84, esql_parser.RULE_booleanValue);
+ this.enterRule(localctx, 80, esql_parser.RULE_booleanValue);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 485;
+ this.state = 465;
_la = this._input.LA(1);
if(!(_la===38 || _la===52)) {
this._errHandler.recoverInline(this);
@@ -2629,22 +2539,22 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public numericValue(): NumericValueContext {
let localctx: NumericValueContext = new NumericValueContext(this, this._ctx, this.state);
- this.enterRule(localctx, 86, esql_parser.RULE_numericValue);
+ this.enterRule(localctx, 82, esql_parser.RULE_numericValue);
try {
- this.state = 489;
+ this.state = 469;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 45, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 43, this._ctx) ) {
case 1:
this.enterOuterAlt(localctx, 1);
{
- this.state = 487;
+ this.state = 467;
this.decimalValue();
}
break;
case 2:
this.enterOuterAlt(localctx, 2);
{
- this.state = 488;
+ this.state = 468;
this.integerValue();
}
break;
@@ -2667,17 +2577,17 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public decimalValue(): DecimalValueContext {
let localctx: DecimalValueContext = new DecimalValueContext(this, this._ctx, this.state);
- this.enterRule(localctx, 88, esql_parser.RULE_decimalValue);
+ this.enterRule(localctx, 84, esql_parser.RULE_decimalValue);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 492;
+ this.state = 472;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===60 || _la===61) {
{
- this.state = 491;
+ this.state = 471;
_la = this._input.LA(1);
if(!(_la===60 || _la===61)) {
this._errHandler.recoverInline(this);
@@ -2689,7 +2599,7 @@ export default class esql_parser extends Parser {
}
}
- this.state = 494;
+ this.state = 474;
this.match(esql_parser.DECIMAL_LITERAL);
}
}
@@ -2710,17 +2620,17 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public integerValue(): IntegerValueContext {
let localctx: IntegerValueContext = new IntegerValueContext(this, this._ctx, this.state);
- this.enterRule(localctx, 90, esql_parser.RULE_integerValue);
+ this.enterRule(localctx, 86, esql_parser.RULE_integerValue);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 497;
+ this.state = 477;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la===60 || _la===61) {
{
- this.state = 496;
+ this.state = 476;
_la = this._input.LA(1);
if(!(_la===60 || _la===61)) {
this._errHandler.recoverInline(this);
@@ -2732,7 +2642,7 @@ export default class esql_parser extends Parser {
}
}
- this.state = 499;
+ this.state = 479;
this.match(esql_parser.INTEGER_LITERAL);
}
}
@@ -2753,11 +2663,11 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public string_(): StringContext {
let localctx: StringContext = new StringContext(this, this._ctx, this.state);
- this.enterRule(localctx, 92, esql_parser.RULE_string);
+ this.enterRule(localctx, 88, esql_parser.RULE_string);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 501;
+ this.state = 481;
this.match(esql_parser.QUOTED_STRING);
}
}
@@ -2778,12 +2688,12 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public comparisonOperator(): ComparisonOperatorContext {
let localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this, this._ctx, this.state);
- this.enterRule(localctx, 94, esql_parser.RULE_comparisonOperator);
+ this.enterRule(localctx, 90, esql_parser.RULE_comparisonOperator);
let _la: number;
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 503;
+ this.state = 483;
_la = this._input.LA(1);
if(!(((((_la - 53)) & ~0x1F) === 0 && ((1 << (_la - 53)) & 125) !== 0))) {
this._errHandler.recoverInline(this);
@@ -2811,13 +2721,13 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public explainCommand(): ExplainCommandContext {
let localctx: ExplainCommandContext = new ExplainCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 96, esql_parser.RULE_explainCommand);
+ this.enterRule(localctx, 92, esql_parser.RULE_explainCommand);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 505;
+ this.state = 485;
this.match(esql_parser.EXPLAIN);
- this.state = 506;
+ this.state = 486;
this.subqueryExpression();
}
}
@@ -2838,15 +2748,15 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public subqueryExpression(): SubqueryExpressionContext {
let localctx: SubqueryExpressionContext = new SubqueryExpressionContext(this, this._ctx, this.state);
- this.enterRule(localctx, 98, esql_parser.RULE_subqueryExpression);
+ this.enterRule(localctx, 94, esql_parser.RULE_subqueryExpression);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 508;
+ this.state = 488;
this.match(esql_parser.OPENING_BRACKET);
- this.state = 509;
+ this.state = 489;
this.query(0);
- this.state = 510;
+ this.state = 490;
this.match(esql_parser.CLOSING_BRACKET);
}
}
@@ -2867,14 +2777,14 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public showCommand(): ShowCommandContext {
let localctx: ShowCommandContext = new ShowCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 100, esql_parser.RULE_showCommand);
+ this.enterRule(localctx, 96, esql_parser.RULE_showCommand);
try {
localctx = new ShowInfoContext(this, localctx);
this.enterOuterAlt(localctx, 1);
{
- this.state = 512;
+ this.state = 492;
this.match(esql_parser.SHOW);
- this.state = 513;
+ this.state = 493;
this.match(esql_parser.INFO);
}
}
@@ -2895,14 +2805,14 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public metaCommand(): MetaCommandContext {
let localctx: MetaCommandContext = new MetaCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 102, esql_parser.RULE_metaCommand);
+ this.enterRule(localctx, 98, esql_parser.RULE_metaCommand);
try {
localctx = new MetaFunctionsContext(this, localctx);
this.enterOuterAlt(localctx, 1);
{
- this.state = 515;
+ this.state = 495;
this.match(esql_parser.META);
- this.state = 516;
+ this.state = 496;
this.match(esql_parser.FUNCTIONS);
}
}
@@ -2923,53 +2833,53 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public enrichCommand(): EnrichCommandContext {
let localctx: EnrichCommandContext = new EnrichCommandContext(this, this._ctx, this.state);
- this.enterRule(localctx, 104, esql_parser.RULE_enrichCommand);
+ this.enterRule(localctx, 100, esql_parser.RULE_enrichCommand);
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
- this.state = 518;
+ this.state = 498;
this.match(esql_parser.ENRICH);
- this.state = 519;
+ this.state = 499;
localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME);
- this.state = 522;
+ this.state = 502;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 48, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 46, this._ctx) ) {
case 1:
{
- this.state = 520;
+ this.state = 500;
this.match(esql_parser.ON);
- this.state = 521;
+ this.state = 501;
localctx._matchField = this.qualifiedNamePattern();
}
break;
}
- this.state = 533;
+ this.state = 513;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 50, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 48, this._ctx) ) {
case 1:
{
- this.state = 524;
+ this.state = 504;
this.match(esql_parser.WITH);
- this.state = 525;
+ this.state = 505;
this.enrichWithClause();
- this.state = 530;
+ this.state = 510;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 49, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 47, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
{
{
- this.state = 526;
+ this.state = 506;
this.match(esql_parser.COMMA);
- this.state = 527;
+ this.state = 507;
this.enrichWithClause();
}
}
}
- this.state = 532;
+ this.state = 512;
this._errHandler.sync(this);
- _alt = this._interp.adaptivePredict(this._input, 49, this._ctx);
+ _alt = this._interp.adaptivePredict(this._input, 47, this._ctx);
}
}
break;
@@ -2993,23 +2903,23 @@ export default class esql_parser extends Parser {
// @RuleVersion(0)
public enrichWithClause(): EnrichWithClauseContext {
let localctx: EnrichWithClauseContext = new EnrichWithClauseContext(this, this._ctx, this.state);
- this.enterRule(localctx, 106, esql_parser.RULE_enrichWithClause);
+ this.enterRule(localctx, 102, esql_parser.RULE_enrichWithClause);
try {
this.enterOuterAlt(localctx, 1);
{
- this.state = 538;
+ this.state = 518;
this._errHandler.sync(this);
- switch ( this._interp.adaptivePredict(this._input, 51, this._ctx) ) {
+ switch ( this._interp.adaptivePredict(this._input, 49, this._ctx) ) {
case 1:
{
- this.state = 535;
+ this.state = 515;
localctx._newName = this.qualifiedNamePattern();
- this.state = 536;
+ this.state = 516;
this.match(esql_parser.ASSIGN);
}
break;
}
- this.state = 540;
+ this.state = 520;
localctx._enrichField = this.qualifiedNamePattern();
}
}
@@ -3074,183 +2984,176 @@ export default class esql_parser extends Parser {
return true;
}
- public static readonly _serializedATN: number[] = [4,1,110,543,2,0,7,0,
+ public static readonly _serializedATN: number[] = [4,1,109,523,2,0,7,0,
2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,
2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,
17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,
7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,
31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,
2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,
- 46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,
- 7,53,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,5,1,118,8,1,10,1,12,1,121,9,1,
- 1,2,1,2,1,2,1,2,1,2,3,2,128,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,
- 1,3,1,3,1,3,3,3,143,8,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,155,
- 8,5,1,5,1,5,1,5,1,5,1,5,5,5,162,8,5,10,5,12,5,165,9,5,1,5,1,5,1,5,1,5,1,
- 5,3,5,172,8,5,1,5,1,5,3,5,176,8,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,184,8,5,10,
- 5,12,5,187,9,5,1,6,1,6,3,6,191,8,6,1,6,1,6,1,6,1,6,1,6,3,6,198,8,6,1,6,
- 1,6,1,6,3,6,203,8,6,1,7,1,7,1,7,1,7,1,7,3,7,210,8,7,1,8,1,8,1,8,1,8,3,8,
- 216,8,8,1,8,1,8,1,8,1,8,1,8,1,8,5,8,224,8,8,10,8,12,8,227,9,8,1,9,1,9,1,
- 9,1,9,1,9,1,9,1,9,1,9,3,9,237,8,9,1,9,1,9,1,9,5,9,242,8,9,10,9,12,9,245,
- 9,9,1,10,1,10,1,10,1,10,1,10,1,10,5,10,253,8,10,10,10,12,10,256,9,10,3,
- 10,258,8,10,1,10,1,10,1,11,1,11,1,12,1,12,1,12,1,13,1,13,1,13,5,13,270,
- 8,13,10,13,12,13,273,9,13,1,14,1,14,1,14,1,14,1,14,3,14,280,8,14,1,15,1,
- 15,1,15,1,15,5,15,286,8,15,10,15,12,15,289,9,15,1,15,3,15,292,8,15,1,15,
- 3,15,295,8,15,1,16,1,16,1,17,1,17,1,17,1,17,5,17,303,8,17,10,17,12,17,306,
- 9,17,1,18,1,18,1,18,1,18,1,19,1,19,3,19,314,8,19,1,20,1,20,1,20,1,20,5,
- 20,320,8,20,10,20,12,20,323,9,20,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,23,
- 1,23,3,23,334,8,23,1,23,1,23,3,23,338,8,23,1,24,1,24,1,24,1,24,3,24,344,
- 8,24,1,25,1,25,1,25,5,25,349,8,25,10,25,12,25,352,9,25,1,26,1,26,1,26,5,
- 26,357,8,26,10,26,12,26,360,9,26,1,27,1,27,1,28,1,28,1,29,1,29,1,29,1,29,
- 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,379,8,29,10,29,12,29,
- 382,9,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,390,8,29,10,29,12,29,393,9,
- 29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,401,8,29,10,29,12,29,404,9,29,1,29,
- 1,29,3,29,408,8,29,1,30,1,30,1,30,1,31,1,31,1,31,1,31,5,31,417,8,31,10,
- 31,12,31,420,9,31,1,32,1,32,3,32,424,8,32,1,32,1,32,3,32,428,8,32,1,33,
- 1,33,1,33,1,33,5,33,434,8,33,10,33,12,33,437,9,33,1,34,1,34,1,34,1,34,5,
- 34,443,8,34,10,34,12,34,446,9,34,1,35,1,35,1,35,1,35,5,35,452,8,35,10,35,
- 12,35,455,9,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,3,37,465,8,37,1,
- 38,1,38,1,38,1,38,1,39,1,39,1,39,1,40,1,40,1,40,5,40,477,8,40,10,40,12,
- 40,480,9,40,1,41,1,41,1,41,1,41,1,42,1,42,1,43,1,43,3,43,490,8,43,1,44,
- 3,44,493,8,44,1,44,1,44,1,45,3,45,498,8,45,1,45,1,45,1,46,1,46,1,47,1,47,
- 1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,52,1,
- 52,1,52,1,52,3,52,523,8,52,1,52,1,52,1,52,1,52,5,52,529,8,52,10,52,12,52,
- 532,9,52,3,52,534,8,52,1,53,1,53,1,53,3,53,539,8,53,1,53,1,53,1,53,0,4,
- 2,10,16,18,54,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,
- 42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,
- 90,92,94,96,98,100,102,104,106,0,7,1,0,60,61,1,0,62,64,1,0,67,68,2,0,32,
- 32,36,36,1,0,39,40,2,0,38,38,52,52,2,0,53,53,55,59,568,0,108,1,0,0,0,2,
- 111,1,0,0,0,4,127,1,0,0,0,6,142,1,0,0,0,8,144,1,0,0,0,10,175,1,0,0,0,12,
- 202,1,0,0,0,14,209,1,0,0,0,16,215,1,0,0,0,18,236,1,0,0,0,20,246,1,0,0,0,
- 22,261,1,0,0,0,24,263,1,0,0,0,26,266,1,0,0,0,28,279,1,0,0,0,30,281,1,0,
- 0,0,32,296,1,0,0,0,34,298,1,0,0,0,36,307,1,0,0,0,38,313,1,0,0,0,40,315,
- 1,0,0,0,42,324,1,0,0,0,44,328,1,0,0,0,46,331,1,0,0,0,48,339,1,0,0,0,50,
- 345,1,0,0,0,52,353,1,0,0,0,54,361,1,0,0,0,56,363,1,0,0,0,58,407,1,0,0,0,
- 60,409,1,0,0,0,62,412,1,0,0,0,64,421,1,0,0,0,66,429,1,0,0,0,68,438,1,0,
- 0,0,70,447,1,0,0,0,72,456,1,0,0,0,74,460,1,0,0,0,76,466,1,0,0,0,78,470,
- 1,0,0,0,80,473,1,0,0,0,82,481,1,0,0,0,84,485,1,0,0,0,86,489,1,0,0,0,88,
- 492,1,0,0,0,90,497,1,0,0,0,92,501,1,0,0,0,94,503,1,0,0,0,96,505,1,0,0,0,
- 98,508,1,0,0,0,100,512,1,0,0,0,102,515,1,0,0,0,104,518,1,0,0,0,106,538,
- 1,0,0,0,108,109,3,2,1,0,109,110,5,0,0,1,110,1,1,0,0,0,111,112,6,1,-1,0,
- 112,113,3,4,2,0,113,119,1,0,0,0,114,115,10,1,0,0,115,116,5,26,0,0,116,118,
- 3,6,3,0,117,114,1,0,0,0,118,121,1,0,0,0,119,117,1,0,0,0,119,120,1,0,0,0,
- 120,3,1,0,0,0,121,119,1,0,0,0,122,128,3,96,48,0,123,128,3,30,15,0,124,128,
- 3,24,12,0,125,128,3,100,50,0,126,128,3,102,51,0,127,122,1,0,0,0,127,123,
- 1,0,0,0,127,124,1,0,0,0,127,125,1,0,0,0,127,126,1,0,0,0,128,5,1,0,0,0,129,
- 143,3,44,22,0,130,143,3,48,24,0,131,143,3,60,30,0,132,143,3,66,33,0,133,
- 143,3,62,31,0,134,143,3,46,23,0,135,143,3,8,4,0,136,143,3,68,34,0,137,143,
- 3,70,35,0,138,143,3,74,37,0,139,143,3,76,38,0,140,143,3,104,52,0,141,143,
- 3,78,39,0,142,129,1,0,0,0,142,130,1,0,0,0,142,131,1,0,0,0,142,132,1,0,0,
- 0,142,133,1,0,0,0,142,134,1,0,0,0,142,135,1,0,0,0,142,136,1,0,0,0,142,137,
- 1,0,0,0,142,138,1,0,0,0,142,139,1,0,0,0,142,140,1,0,0,0,142,141,1,0,0,0,
- 143,7,1,0,0,0,144,145,5,18,0,0,145,146,3,10,5,0,146,9,1,0,0,0,147,148,6,
- 5,-1,0,148,149,5,45,0,0,149,176,3,10,5,7,150,176,3,14,7,0,151,176,3,12,
- 6,0,152,154,3,14,7,0,153,155,5,45,0,0,154,153,1,0,0,0,154,155,1,0,0,0,155,
- 156,1,0,0,0,156,157,5,42,0,0,157,158,5,41,0,0,158,163,3,14,7,0,159,160,
- 5,35,0,0,160,162,3,14,7,0,161,159,1,0,0,0,162,165,1,0,0,0,163,161,1,0,0,
- 0,163,164,1,0,0,0,164,166,1,0,0,0,165,163,1,0,0,0,166,167,5,51,0,0,167,
- 176,1,0,0,0,168,169,3,14,7,0,169,171,5,43,0,0,170,172,5,45,0,0,171,170,
- 1,0,0,0,171,172,1,0,0,0,172,173,1,0,0,0,173,174,5,46,0,0,174,176,1,0,0,
- 0,175,147,1,0,0,0,175,150,1,0,0,0,175,151,1,0,0,0,175,152,1,0,0,0,175,168,
- 1,0,0,0,176,185,1,0,0,0,177,178,10,4,0,0,178,179,5,31,0,0,179,184,3,10,
- 5,5,180,181,10,3,0,0,181,182,5,48,0,0,182,184,3,10,5,4,183,177,1,0,0,0,
- 183,180,1,0,0,0,184,187,1,0,0,0,185,183,1,0,0,0,185,186,1,0,0,0,186,11,
- 1,0,0,0,187,185,1,0,0,0,188,190,3,14,7,0,189,191,5,45,0,0,190,189,1,0,0,
- 0,190,191,1,0,0,0,191,192,1,0,0,0,192,193,5,44,0,0,193,194,3,92,46,0,194,
- 203,1,0,0,0,195,197,3,14,7,0,196,198,5,45,0,0,197,196,1,0,0,0,197,198,1,
- 0,0,0,198,199,1,0,0,0,199,200,5,50,0,0,200,201,3,92,46,0,201,203,1,0,0,
- 0,202,188,1,0,0,0,202,195,1,0,0,0,203,13,1,0,0,0,204,210,3,16,8,0,205,206,
- 3,16,8,0,206,207,3,94,47,0,207,208,3,16,8,0,208,210,1,0,0,0,209,204,1,0,
- 0,0,209,205,1,0,0,0,210,15,1,0,0,0,211,212,6,8,-1,0,212,216,3,18,9,0,213,
- 214,7,0,0,0,214,216,3,16,8,3,215,211,1,0,0,0,215,213,1,0,0,0,216,225,1,
- 0,0,0,217,218,10,2,0,0,218,219,7,1,0,0,219,224,3,16,8,3,220,221,10,1,0,
- 0,221,222,7,0,0,0,222,224,3,16,8,2,223,217,1,0,0,0,223,220,1,0,0,0,224,
- 227,1,0,0,0,225,223,1,0,0,0,225,226,1,0,0,0,226,17,1,0,0,0,227,225,1,0,
- 0,0,228,229,6,9,-1,0,229,237,3,58,29,0,230,237,3,50,25,0,231,237,3,20,10,
- 0,232,233,5,41,0,0,233,234,3,10,5,0,234,235,5,51,0,0,235,237,1,0,0,0,236,
- 228,1,0,0,0,236,230,1,0,0,0,236,231,1,0,0,0,236,232,1,0,0,0,237,243,1,0,
- 0,0,238,239,10,1,0,0,239,240,5,34,0,0,240,242,3,22,11,0,241,238,1,0,0,0,
- 242,245,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244,19,1,0,0,0,245,243,
- 1,0,0,0,246,247,3,54,27,0,247,257,5,41,0,0,248,258,5,62,0,0,249,254,3,10,
- 5,0,250,251,5,35,0,0,251,253,3,10,5,0,252,250,1,0,0,0,253,256,1,0,0,0,254,
- 252,1,0,0,0,254,255,1,0,0,0,255,258,1,0,0,0,256,254,1,0,0,0,257,248,1,0,
- 0,0,257,249,1,0,0,0,257,258,1,0,0,0,258,259,1,0,0,0,259,260,5,51,0,0,260,
- 21,1,0,0,0,261,262,3,54,27,0,262,23,1,0,0,0,263,264,5,14,0,0,264,265,3,
- 26,13,0,265,25,1,0,0,0,266,271,3,28,14,0,267,268,5,35,0,0,268,270,3,28,
- 14,0,269,267,1,0,0,0,270,273,1,0,0,0,271,269,1,0,0,0,271,272,1,0,0,0,272,
- 27,1,0,0,0,273,271,1,0,0,0,274,280,3,10,5,0,275,276,3,50,25,0,276,277,5,
- 33,0,0,277,278,3,10,5,0,278,280,1,0,0,0,279,274,1,0,0,0,279,275,1,0,0,0,
- 280,29,1,0,0,0,281,282,5,6,0,0,282,287,3,32,16,0,283,284,5,35,0,0,284,286,
- 3,32,16,0,285,283,1,0,0,0,286,289,1,0,0,0,287,285,1,0,0,0,287,288,1,0,0,
- 0,288,291,1,0,0,0,289,287,1,0,0,0,290,292,3,38,19,0,291,290,1,0,0,0,291,
- 292,1,0,0,0,292,294,1,0,0,0,293,295,3,34,17,0,294,293,1,0,0,0,294,295,1,
- 0,0,0,295,31,1,0,0,0,296,297,5,74,0,0,297,33,1,0,0,0,298,299,5,72,0,0,299,
- 304,3,36,18,0,300,301,5,35,0,0,301,303,3,36,18,0,302,300,1,0,0,0,303,306,
- 1,0,0,0,304,302,1,0,0,0,304,305,1,0,0,0,305,35,1,0,0,0,306,304,1,0,0,0,
- 307,308,3,92,46,0,308,309,5,33,0,0,309,310,3,92,46,0,310,37,1,0,0,0,311,
- 314,3,40,20,0,312,314,3,42,21,0,313,311,1,0,0,0,313,312,1,0,0,0,314,39,
- 1,0,0,0,315,316,5,73,0,0,316,321,3,32,16,0,317,318,5,35,0,0,318,320,3,32,
- 16,0,319,317,1,0,0,0,320,323,1,0,0,0,321,319,1,0,0,0,321,322,1,0,0,0,322,
- 41,1,0,0,0,323,321,1,0,0,0,324,325,5,65,0,0,325,326,3,40,20,0,326,327,5,
- 66,0,0,327,43,1,0,0,0,328,329,5,4,0,0,329,330,3,26,13,0,330,45,1,0,0,0,
- 331,333,5,17,0,0,332,334,3,26,13,0,333,332,1,0,0,0,333,334,1,0,0,0,334,
- 337,1,0,0,0,335,336,5,30,0,0,336,338,3,26,13,0,337,335,1,0,0,0,337,338,
- 1,0,0,0,338,47,1,0,0,0,339,340,5,8,0,0,340,343,3,26,13,0,341,342,5,30,0,
- 0,342,344,3,26,13,0,343,341,1,0,0,0,343,344,1,0,0,0,344,49,1,0,0,0,345,
- 350,3,54,27,0,346,347,5,37,0,0,347,349,3,54,27,0,348,346,1,0,0,0,349,352,
- 1,0,0,0,350,348,1,0,0,0,350,351,1,0,0,0,351,51,1,0,0,0,352,350,1,0,0,0,
- 353,358,3,56,28,0,354,355,5,37,0,0,355,357,3,56,28,0,356,354,1,0,0,0,357,
- 360,1,0,0,0,358,356,1,0,0,0,358,359,1,0,0,0,359,53,1,0,0,0,360,358,1,0,
- 0,0,361,362,7,2,0,0,362,55,1,0,0,0,363,364,5,78,0,0,364,57,1,0,0,0,365,
- 408,5,46,0,0,366,367,3,90,45,0,367,368,5,67,0,0,368,408,1,0,0,0,369,408,
- 3,88,44,0,370,408,3,90,45,0,371,408,3,84,42,0,372,408,5,49,0,0,373,408,
- 3,92,46,0,374,375,5,65,0,0,375,380,3,86,43,0,376,377,5,35,0,0,377,379,3,
- 86,43,0,378,376,1,0,0,0,379,382,1,0,0,0,380,378,1,0,0,0,380,381,1,0,0,0,
- 381,383,1,0,0,0,382,380,1,0,0,0,383,384,5,66,0,0,384,408,1,0,0,0,385,386,
- 5,65,0,0,386,391,3,84,42,0,387,388,5,35,0,0,388,390,3,84,42,0,389,387,1,
- 0,0,0,390,393,1,0,0,0,391,389,1,0,0,0,391,392,1,0,0,0,392,394,1,0,0,0,393,
- 391,1,0,0,0,394,395,5,66,0,0,395,408,1,0,0,0,396,397,5,65,0,0,397,402,3,
- 92,46,0,398,399,5,35,0,0,399,401,3,92,46,0,400,398,1,0,0,0,401,404,1,0,
- 0,0,402,400,1,0,0,0,402,403,1,0,0,0,403,405,1,0,0,0,404,402,1,0,0,0,405,
- 406,5,66,0,0,406,408,1,0,0,0,407,365,1,0,0,0,407,366,1,0,0,0,407,369,1,
- 0,0,0,407,370,1,0,0,0,407,371,1,0,0,0,407,372,1,0,0,0,407,373,1,0,0,0,407,
- 374,1,0,0,0,407,385,1,0,0,0,407,396,1,0,0,0,408,59,1,0,0,0,409,410,5,10,
- 0,0,410,411,5,28,0,0,411,61,1,0,0,0,412,413,5,16,0,0,413,418,3,64,32,0,
- 414,415,5,35,0,0,415,417,3,64,32,0,416,414,1,0,0,0,417,420,1,0,0,0,418,
- 416,1,0,0,0,418,419,1,0,0,0,419,63,1,0,0,0,420,418,1,0,0,0,421,423,3,10,
- 5,0,422,424,7,3,0,0,423,422,1,0,0,0,423,424,1,0,0,0,424,427,1,0,0,0,425,
- 426,5,47,0,0,426,428,7,4,0,0,427,425,1,0,0,0,427,428,1,0,0,0,428,65,1,0,
- 0,0,429,430,5,9,0,0,430,435,3,52,26,0,431,432,5,35,0,0,432,434,3,52,26,
- 0,433,431,1,0,0,0,434,437,1,0,0,0,435,433,1,0,0,0,435,436,1,0,0,0,436,67,
- 1,0,0,0,437,435,1,0,0,0,438,439,5,2,0,0,439,444,3,52,26,0,440,441,5,35,
- 0,0,441,443,3,52,26,0,442,440,1,0,0,0,443,446,1,0,0,0,444,442,1,0,0,0,444,
- 445,1,0,0,0,445,69,1,0,0,0,446,444,1,0,0,0,447,448,5,13,0,0,448,453,3,72,
- 36,0,449,450,5,35,0,0,450,452,3,72,36,0,451,449,1,0,0,0,452,455,1,0,0,0,
- 453,451,1,0,0,0,453,454,1,0,0,0,454,71,1,0,0,0,455,453,1,0,0,0,456,457,
- 3,52,26,0,457,458,5,82,0,0,458,459,3,52,26,0,459,73,1,0,0,0,460,461,5,1,
- 0,0,461,462,3,18,9,0,462,464,3,92,46,0,463,465,3,80,40,0,464,463,1,0,0,
- 0,464,465,1,0,0,0,465,75,1,0,0,0,466,467,5,7,0,0,467,468,3,18,9,0,468,469,
- 3,92,46,0,469,77,1,0,0,0,470,471,5,12,0,0,471,472,3,50,25,0,472,79,1,0,
- 0,0,473,478,3,82,41,0,474,475,5,35,0,0,475,477,3,82,41,0,476,474,1,0,0,
- 0,477,480,1,0,0,0,478,476,1,0,0,0,478,479,1,0,0,0,479,81,1,0,0,0,480,478,
- 1,0,0,0,481,482,3,54,27,0,482,483,5,33,0,0,483,484,3,58,29,0,484,83,1,0,
- 0,0,485,486,7,5,0,0,486,85,1,0,0,0,487,490,3,88,44,0,488,490,3,90,45,0,
- 489,487,1,0,0,0,489,488,1,0,0,0,490,87,1,0,0,0,491,493,7,0,0,0,492,491,
- 1,0,0,0,492,493,1,0,0,0,493,494,1,0,0,0,494,495,5,29,0,0,495,89,1,0,0,0,
- 496,498,7,0,0,0,497,496,1,0,0,0,497,498,1,0,0,0,498,499,1,0,0,0,499,500,
- 5,28,0,0,500,91,1,0,0,0,501,502,5,27,0,0,502,93,1,0,0,0,503,504,7,6,0,0,
- 504,95,1,0,0,0,505,506,5,5,0,0,506,507,3,98,49,0,507,97,1,0,0,0,508,509,
- 5,65,0,0,509,510,3,2,1,0,510,511,5,66,0,0,511,99,1,0,0,0,512,513,5,15,0,
- 0,513,514,5,98,0,0,514,101,1,0,0,0,515,516,5,11,0,0,516,517,5,102,0,0,517,
- 103,1,0,0,0,518,519,5,3,0,0,519,522,5,88,0,0,520,521,5,86,0,0,521,523,3,
- 52,26,0,522,520,1,0,0,0,522,523,1,0,0,0,523,533,1,0,0,0,524,525,5,87,0,
- 0,525,530,3,106,53,0,526,527,5,35,0,0,527,529,3,106,53,0,528,526,1,0,0,
- 0,529,532,1,0,0,0,530,528,1,0,0,0,530,531,1,0,0,0,531,534,1,0,0,0,532,530,
- 1,0,0,0,533,524,1,0,0,0,533,534,1,0,0,0,534,105,1,0,0,0,535,536,3,52,26,
- 0,536,537,5,33,0,0,537,539,1,0,0,0,538,535,1,0,0,0,538,539,1,0,0,0,539,
- 540,1,0,0,0,540,541,3,52,26,0,541,107,1,0,0,0,52,119,127,142,154,163,171,
- 175,183,185,190,197,202,209,215,223,225,236,243,254,257,271,279,287,291,
- 294,304,313,321,333,337,343,350,358,380,391,402,407,418,423,427,435,444,
- 453,464,478,489,492,497,522,530,533,538];
+ 46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,1,0,1,0,1,0,1,
+ 1,1,1,1,1,1,1,1,1,1,1,5,1,114,8,1,10,1,12,1,117,9,1,1,2,1,2,1,2,1,2,1,2,
+ 3,2,124,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,139,
+ 8,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,151,8,5,1,5,1,5,1,5,1,5,
+ 1,5,5,5,158,8,5,10,5,12,5,161,9,5,1,5,1,5,1,5,1,5,1,5,3,5,168,8,5,1,5,1,
+ 5,3,5,172,8,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,180,8,5,10,5,12,5,183,9,5,1,6,
+ 1,6,3,6,187,8,6,1,6,1,6,1,6,1,6,1,6,3,6,194,8,6,1,6,1,6,1,6,3,6,199,8,6,
+ 1,7,1,7,1,7,1,7,1,7,3,7,206,8,7,1,8,1,8,1,8,1,8,3,8,212,8,8,1,8,1,8,1,8,
+ 1,8,1,8,1,8,5,8,220,8,8,10,8,12,8,223,9,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,
+ 9,3,9,233,8,9,1,9,1,9,1,9,5,9,238,8,9,10,9,12,9,241,9,9,1,10,1,10,1,10,
+ 1,10,1,10,1,10,5,10,249,8,10,10,10,12,10,252,9,10,3,10,254,8,10,1,10,1,
+ 10,1,11,1,11,1,12,1,12,1,12,1,13,1,13,1,13,5,13,266,8,13,10,13,12,13,269,
+ 9,13,1,14,1,14,1,14,1,14,1,14,3,14,276,8,14,1,15,1,15,1,15,1,15,5,15,282,
+ 8,15,10,15,12,15,285,9,15,1,15,3,15,288,8,15,1,16,1,16,1,17,1,17,3,17,294,
+ 8,17,1,18,1,18,1,18,1,18,5,18,300,8,18,10,18,12,18,303,9,18,1,19,1,19,1,
+ 19,1,19,1,20,1,20,1,20,1,21,1,21,3,21,314,8,21,1,21,1,21,3,21,318,8,21,
+ 1,22,1,22,1,22,1,22,3,22,324,8,22,1,23,1,23,1,23,5,23,329,8,23,10,23,12,
+ 23,332,9,23,1,24,1,24,1,24,5,24,337,8,24,10,24,12,24,340,9,24,1,25,1,25,
+ 1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,
+ 27,5,27,359,8,27,10,27,12,27,362,9,27,1,27,1,27,1,27,1,27,1,27,1,27,5,27,
+ 370,8,27,10,27,12,27,373,9,27,1,27,1,27,1,27,1,27,1,27,1,27,5,27,381,8,
+ 27,10,27,12,27,384,9,27,1,27,1,27,3,27,388,8,27,1,28,1,28,1,28,1,29,1,29,
+ 1,29,1,29,5,29,397,8,29,10,29,12,29,400,9,29,1,30,1,30,3,30,404,8,30,1,
+ 30,1,30,3,30,408,8,30,1,31,1,31,1,31,1,31,5,31,414,8,31,10,31,12,31,417,
+ 9,31,1,32,1,32,1,32,1,32,5,32,423,8,32,10,32,12,32,426,9,32,1,33,1,33,1,
+ 33,1,33,5,33,432,8,33,10,33,12,33,435,9,33,1,34,1,34,1,34,1,34,1,35,1,35,
+ 1,35,1,35,3,35,445,8,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,38,1,38,1,
+ 38,5,38,457,8,38,10,38,12,38,460,9,38,1,39,1,39,1,39,1,39,1,40,1,40,1,41,
+ 1,41,3,41,470,8,41,1,42,3,42,473,8,42,1,42,1,42,1,43,3,43,478,8,43,1,43,
+ 1,43,1,44,1,44,1,45,1,45,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,
+ 48,1,49,1,49,1,49,1,50,1,50,1,50,1,50,3,50,503,8,50,1,50,1,50,1,50,1,50,
+ 5,50,509,8,50,10,50,12,50,512,9,50,3,50,514,8,50,1,51,1,51,1,51,3,51,519,
+ 8,51,1,51,1,51,1,51,0,4,2,10,16,18,52,0,2,4,6,8,10,12,14,16,18,20,22,24,
+ 26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,
+ 74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,0,7,1,0,60,61,1,0,62,64,
+ 1,0,67,68,2,0,32,32,36,36,1,0,39,40,2,0,38,38,52,52,2,0,53,53,55,59,548,
+ 0,104,1,0,0,0,2,107,1,0,0,0,4,123,1,0,0,0,6,138,1,0,0,0,8,140,1,0,0,0,10,
+ 171,1,0,0,0,12,198,1,0,0,0,14,205,1,0,0,0,16,211,1,0,0,0,18,232,1,0,0,0,
+ 20,242,1,0,0,0,22,257,1,0,0,0,24,259,1,0,0,0,26,262,1,0,0,0,28,275,1,0,
+ 0,0,30,277,1,0,0,0,32,289,1,0,0,0,34,293,1,0,0,0,36,295,1,0,0,0,38,304,
+ 1,0,0,0,40,308,1,0,0,0,42,311,1,0,0,0,44,319,1,0,0,0,46,325,1,0,0,0,48,
+ 333,1,0,0,0,50,341,1,0,0,0,52,343,1,0,0,0,54,387,1,0,0,0,56,389,1,0,0,0,
+ 58,392,1,0,0,0,60,401,1,0,0,0,62,409,1,0,0,0,64,418,1,0,0,0,66,427,1,0,
+ 0,0,68,436,1,0,0,0,70,440,1,0,0,0,72,446,1,0,0,0,74,450,1,0,0,0,76,453,
+ 1,0,0,0,78,461,1,0,0,0,80,465,1,0,0,0,82,469,1,0,0,0,84,472,1,0,0,0,86,
+ 477,1,0,0,0,88,481,1,0,0,0,90,483,1,0,0,0,92,485,1,0,0,0,94,488,1,0,0,0,
+ 96,492,1,0,0,0,98,495,1,0,0,0,100,498,1,0,0,0,102,518,1,0,0,0,104,105,3,
+ 2,1,0,105,106,5,0,0,1,106,1,1,0,0,0,107,108,6,1,-1,0,108,109,3,4,2,0,109,
+ 115,1,0,0,0,110,111,10,1,0,0,111,112,5,26,0,0,112,114,3,6,3,0,113,110,1,
+ 0,0,0,114,117,1,0,0,0,115,113,1,0,0,0,115,116,1,0,0,0,116,3,1,0,0,0,117,
+ 115,1,0,0,0,118,124,3,92,46,0,119,124,3,30,15,0,120,124,3,24,12,0,121,124,
+ 3,96,48,0,122,124,3,98,49,0,123,118,1,0,0,0,123,119,1,0,0,0,123,120,1,0,
+ 0,0,123,121,1,0,0,0,123,122,1,0,0,0,124,5,1,0,0,0,125,139,3,40,20,0,126,
+ 139,3,44,22,0,127,139,3,56,28,0,128,139,3,62,31,0,129,139,3,58,29,0,130,
+ 139,3,42,21,0,131,139,3,8,4,0,132,139,3,64,32,0,133,139,3,66,33,0,134,139,
+ 3,70,35,0,135,139,3,72,36,0,136,139,3,100,50,0,137,139,3,74,37,0,138,125,
+ 1,0,0,0,138,126,1,0,0,0,138,127,1,0,0,0,138,128,1,0,0,0,138,129,1,0,0,0,
+ 138,130,1,0,0,0,138,131,1,0,0,0,138,132,1,0,0,0,138,133,1,0,0,0,138,134,
+ 1,0,0,0,138,135,1,0,0,0,138,136,1,0,0,0,138,137,1,0,0,0,139,7,1,0,0,0,140,
+ 141,5,18,0,0,141,142,3,10,5,0,142,9,1,0,0,0,143,144,6,5,-1,0,144,145,5,
+ 45,0,0,145,172,3,10,5,7,146,172,3,14,7,0,147,172,3,12,6,0,148,150,3,14,
+ 7,0,149,151,5,45,0,0,150,149,1,0,0,0,150,151,1,0,0,0,151,152,1,0,0,0,152,
+ 153,5,42,0,0,153,154,5,41,0,0,154,159,3,14,7,0,155,156,5,35,0,0,156,158,
+ 3,14,7,0,157,155,1,0,0,0,158,161,1,0,0,0,159,157,1,0,0,0,159,160,1,0,0,
+ 0,160,162,1,0,0,0,161,159,1,0,0,0,162,163,5,51,0,0,163,172,1,0,0,0,164,
+ 165,3,14,7,0,165,167,5,43,0,0,166,168,5,45,0,0,167,166,1,0,0,0,167,168,
+ 1,0,0,0,168,169,1,0,0,0,169,170,5,46,0,0,170,172,1,0,0,0,171,143,1,0,0,
+ 0,171,146,1,0,0,0,171,147,1,0,0,0,171,148,1,0,0,0,171,164,1,0,0,0,172,181,
+ 1,0,0,0,173,174,10,4,0,0,174,175,5,31,0,0,175,180,3,10,5,5,176,177,10,3,
+ 0,0,177,178,5,48,0,0,178,180,3,10,5,4,179,173,1,0,0,0,179,176,1,0,0,0,180,
+ 183,1,0,0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,11,1,0,0,0,183,181,1,0,
+ 0,0,184,186,3,14,7,0,185,187,5,45,0,0,186,185,1,0,0,0,186,187,1,0,0,0,187,
+ 188,1,0,0,0,188,189,5,44,0,0,189,190,3,88,44,0,190,199,1,0,0,0,191,193,
+ 3,14,7,0,192,194,5,45,0,0,193,192,1,0,0,0,193,194,1,0,0,0,194,195,1,0,0,
+ 0,195,196,5,50,0,0,196,197,3,88,44,0,197,199,1,0,0,0,198,184,1,0,0,0,198,
+ 191,1,0,0,0,199,13,1,0,0,0,200,206,3,16,8,0,201,202,3,16,8,0,202,203,3,
+ 90,45,0,203,204,3,16,8,0,204,206,1,0,0,0,205,200,1,0,0,0,205,201,1,0,0,
+ 0,206,15,1,0,0,0,207,208,6,8,-1,0,208,212,3,18,9,0,209,210,7,0,0,0,210,
+ 212,3,16,8,3,211,207,1,0,0,0,211,209,1,0,0,0,212,221,1,0,0,0,213,214,10,
+ 2,0,0,214,215,7,1,0,0,215,220,3,16,8,3,216,217,10,1,0,0,217,218,7,0,0,0,
+ 218,220,3,16,8,2,219,213,1,0,0,0,219,216,1,0,0,0,220,223,1,0,0,0,221,219,
+ 1,0,0,0,221,222,1,0,0,0,222,17,1,0,0,0,223,221,1,0,0,0,224,225,6,9,-1,0,
+ 225,233,3,54,27,0,226,233,3,46,23,0,227,233,3,20,10,0,228,229,5,41,0,0,
+ 229,230,3,10,5,0,230,231,5,51,0,0,231,233,1,0,0,0,232,224,1,0,0,0,232,226,
+ 1,0,0,0,232,227,1,0,0,0,232,228,1,0,0,0,233,239,1,0,0,0,234,235,10,1,0,
+ 0,235,236,5,34,0,0,236,238,3,22,11,0,237,234,1,0,0,0,238,241,1,0,0,0,239,
+ 237,1,0,0,0,239,240,1,0,0,0,240,19,1,0,0,0,241,239,1,0,0,0,242,243,3,50,
+ 25,0,243,253,5,41,0,0,244,254,5,62,0,0,245,250,3,10,5,0,246,247,5,35,0,
+ 0,247,249,3,10,5,0,248,246,1,0,0,0,249,252,1,0,0,0,250,248,1,0,0,0,250,
+ 251,1,0,0,0,251,254,1,0,0,0,252,250,1,0,0,0,253,244,1,0,0,0,253,245,1,0,
+ 0,0,253,254,1,0,0,0,254,255,1,0,0,0,255,256,5,51,0,0,256,21,1,0,0,0,257,
+ 258,3,50,25,0,258,23,1,0,0,0,259,260,5,14,0,0,260,261,3,26,13,0,261,25,
+ 1,0,0,0,262,267,3,28,14,0,263,264,5,35,0,0,264,266,3,28,14,0,265,263,1,
+ 0,0,0,266,269,1,0,0,0,267,265,1,0,0,0,267,268,1,0,0,0,268,27,1,0,0,0,269,
+ 267,1,0,0,0,270,276,3,10,5,0,271,272,3,46,23,0,272,273,5,33,0,0,273,274,
+ 3,10,5,0,274,276,1,0,0,0,275,270,1,0,0,0,275,271,1,0,0,0,276,29,1,0,0,0,
+ 277,278,5,6,0,0,278,283,3,32,16,0,279,280,5,35,0,0,280,282,3,32,16,0,281,
+ 279,1,0,0,0,282,285,1,0,0,0,283,281,1,0,0,0,283,284,1,0,0,0,284,287,1,0,
+ 0,0,285,283,1,0,0,0,286,288,3,34,17,0,287,286,1,0,0,0,287,288,1,0,0,0,288,
+ 31,1,0,0,0,289,290,5,73,0,0,290,33,1,0,0,0,291,294,3,36,18,0,292,294,3,
+ 38,19,0,293,291,1,0,0,0,293,292,1,0,0,0,294,35,1,0,0,0,295,296,5,72,0,0,
+ 296,301,3,32,16,0,297,298,5,35,0,0,298,300,3,32,16,0,299,297,1,0,0,0,300,
+ 303,1,0,0,0,301,299,1,0,0,0,301,302,1,0,0,0,302,37,1,0,0,0,303,301,1,0,
+ 0,0,304,305,5,65,0,0,305,306,3,36,18,0,306,307,5,66,0,0,307,39,1,0,0,0,
+ 308,309,5,4,0,0,309,310,3,26,13,0,310,41,1,0,0,0,311,313,5,17,0,0,312,314,
+ 3,26,13,0,313,312,1,0,0,0,313,314,1,0,0,0,314,317,1,0,0,0,315,316,5,30,
+ 0,0,316,318,3,26,13,0,317,315,1,0,0,0,317,318,1,0,0,0,318,43,1,0,0,0,319,
+ 320,5,8,0,0,320,323,3,26,13,0,321,322,5,30,0,0,322,324,3,26,13,0,323,321,
+ 1,0,0,0,323,324,1,0,0,0,324,45,1,0,0,0,325,330,3,50,25,0,326,327,5,37,0,
+ 0,327,329,3,50,25,0,328,326,1,0,0,0,329,332,1,0,0,0,330,328,1,0,0,0,330,
+ 331,1,0,0,0,331,47,1,0,0,0,332,330,1,0,0,0,333,338,3,52,26,0,334,335,5,
+ 37,0,0,335,337,3,52,26,0,336,334,1,0,0,0,337,340,1,0,0,0,338,336,1,0,0,
+ 0,338,339,1,0,0,0,339,49,1,0,0,0,340,338,1,0,0,0,341,342,7,2,0,0,342,51,
+ 1,0,0,0,343,344,5,77,0,0,344,53,1,0,0,0,345,388,5,46,0,0,346,347,3,86,43,
+ 0,347,348,5,67,0,0,348,388,1,0,0,0,349,388,3,84,42,0,350,388,3,86,43,0,
+ 351,388,3,80,40,0,352,388,5,49,0,0,353,388,3,88,44,0,354,355,5,65,0,0,355,
+ 360,3,82,41,0,356,357,5,35,0,0,357,359,3,82,41,0,358,356,1,0,0,0,359,362,
+ 1,0,0,0,360,358,1,0,0,0,360,361,1,0,0,0,361,363,1,0,0,0,362,360,1,0,0,0,
+ 363,364,5,66,0,0,364,388,1,0,0,0,365,366,5,65,0,0,366,371,3,80,40,0,367,
+ 368,5,35,0,0,368,370,3,80,40,0,369,367,1,0,0,0,370,373,1,0,0,0,371,369,
+ 1,0,0,0,371,372,1,0,0,0,372,374,1,0,0,0,373,371,1,0,0,0,374,375,5,66,0,
+ 0,375,388,1,0,0,0,376,377,5,65,0,0,377,382,3,88,44,0,378,379,5,35,0,0,379,
+ 381,3,88,44,0,380,378,1,0,0,0,381,384,1,0,0,0,382,380,1,0,0,0,382,383,1,
+ 0,0,0,383,385,1,0,0,0,384,382,1,0,0,0,385,386,5,66,0,0,386,388,1,0,0,0,
+ 387,345,1,0,0,0,387,346,1,0,0,0,387,349,1,0,0,0,387,350,1,0,0,0,387,351,
+ 1,0,0,0,387,352,1,0,0,0,387,353,1,0,0,0,387,354,1,0,0,0,387,365,1,0,0,0,
+ 387,376,1,0,0,0,388,55,1,0,0,0,389,390,5,10,0,0,390,391,5,28,0,0,391,57,
+ 1,0,0,0,392,393,5,16,0,0,393,398,3,60,30,0,394,395,5,35,0,0,395,397,3,60,
+ 30,0,396,394,1,0,0,0,397,400,1,0,0,0,398,396,1,0,0,0,398,399,1,0,0,0,399,
+ 59,1,0,0,0,400,398,1,0,0,0,401,403,3,10,5,0,402,404,7,3,0,0,403,402,1,0,
+ 0,0,403,404,1,0,0,0,404,407,1,0,0,0,405,406,5,47,0,0,406,408,7,4,0,0,407,
+ 405,1,0,0,0,407,408,1,0,0,0,408,61,1,0,0,0,409,410,5,9,0,0,410,415,3,48,
+ 24,0,411,412,5,35,0,0,412,414,3,48,24,0,413,411,1,0,0,0,414,417,1,0,0,0,
+ 415,413,1,0,0,0,415,416,1,0,0,0,416,63,1,0,0,0,417,415,1,0,0,0,418,419,
+ 5,2,0,0,419,424,3,48,24,0,420,421,5,35,0,0,421,423,3,48,24,0,422,420,1,
+ 0,0,0,423,426,1,0,0,0,424,422,1,0,0,0,424,425,1,0,0,0,425,65,1,0,0,0,426,
+ 424,1,0,0,0,427,428,5,13,0,0,428,433,3,68,34,0,429,430,5,35,0,0,430,432,
+ 3,68,34,0,431,429,1,0,0,0,432,435,1,0,0,0,433,431,1,0,0,0,433,434,1,0,0,
+ 0,434,67,1,0,0,0,435,433,1,0,0,0,436,437,3,48,24,0,437,438,5,81,0,0,438,
+ 439,3,48,24,0,439,69,1,0,0,0,440,441,5,1,0,0,441,442,3,18,9,0,442,444,3,
+ 88,44,0,443,445,3,76,38,0,444,443,1,0,0,0,444,445,1,0,0,0,445,71,1,0,0,
+ 0,446,447,5,7,0,0,447,448,3,18,9,0,448,449,3,88,44,0,449,73,1,0,0,0,450,
+ 451,5,12,0,0,451,452,3,46,23,0,452,75,1,0,0,0,453,458,3,78,39,0,454,455,
+ 5,35,0,0,455,457,3,78,39,0,456,454,1,0,0,0,457,460,1,0,0,0,458,456,1,0,
+ 0,0,458,459,1,0,0,0,459,77,1,0,0,0,460,458,1,0,0,0,461,462,3,50,25,0,462,
+ 463,5,33,0,0,463,464,3,54,27,0,464,79,1,0,0,0,465,466,7,5,0,0,466,81,1,
+ 0,0,0,467,470,3,84,42,0,468,470,3,86,43,0,469,467,1,0,0,0,469,468,1,0,0,
+ 0,470,83,1,0,0,0,471,473,7,0,0,0,472,471,1,0,0,0,472,473,1,0,0,0,473,474,
+ 1,0,0,0,474,475,5,29,0,0,475,85,1,0,0,0,476,478,7,0,0,0,477,476,1,0,0,0,
+ 477,478,1,0,0,0,478,479,1,0,0,0,479,480,5,28,0,0,480,87,1,0,0,0,481,482,
+ 5,27,0,0,482,89,1,0,0,0,483,484,7,6,0,0,484,91,1,0,0,0,485,486,5,5,0,0,
+ 486,487,3,94,47,0,487,93,1,0,0,0,488,489,5,65,0,0,489,490,3,2,1,0,490,491,
+ 5,66,0,0,491,95,1,0,0,0,492,493,5,15,0,0,493,494,5,97,0,0,494,97,1,0,0,
+ 0,495,496,5,11,0,0,496,497,5,101,0,0,497,99,1,0,0,0,498,499,5,3,0,0,499,
+ 502,5,87,0,0,500,501,5,85,0,0,501,503,3,48,24,0,502,500,1,0,0,0,502,503,
+ 1,0,0,0,503,513,1,0,0,0,504,505,5,86,0,0,505,510,3,102,51,0,506,507,5,35,
+ 0,0,507,509,3,102,51,0,508,506,1,0,0,0,509,512,1,0,0,0,510,508,1,0,0,0,
+ 510,511,1,0,0,0,511,514,1,0,0,0,512,510,1,0,0,0,513,504,1,0,0,0,513,514,
+ 1,0,0,0,514,101,1,0,0,0,515,516,3,48,24,0,516,517,5,33,0,0,517,519,1,0,
+ 0,0,518,515,1,0,0,0,518,519,1,0,0,0,519,520,1,0,0,0,520,521,3,48,24,0,521,
+ 103,1,0,0,0,50,115,123,138,150,159,167,171,179,181,186,193,198,205,211,
+ 219,221,232,239,250,253,267,275,283,287,293,301,313,317,323,330,338,360,
+ 371,382,387,398,403,407,415,424,433,444,458,469,472,477,502,510,513,518];
private static __ATN: ATN;
public static get _ATN(): ATN {
@@ -4156,9 +4059,6 @@ export class FromCommandContext extends ParserRuleContext {
public metadata(): MetadataContext {
return this.getTypedRuleContext(MetadataContext, 0) as MetadataContext;
}
- public fromOptions(): FromOptionsContext {
- return this.getTypedRuleContext(FromOptionsContext, 0) as FromOptionsContext;
- }
public get ruleIndex(): number {
return esql_parser.RULE_fromCommand;
}
@@ -4199,72 +4099,6 @@ export class FromIdentifierContext extends ParserRuleContext {
}
-export class FromOptionsContext extends ParserRuleContext {
- constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) {
- super(parent, invokingState);
- this.parser = parser;
- }
- public OPTIONS(): TerminalNode {
- return this.getToken(esql_parser.OPTIONS, 0);
- }
- public configOption_list(): ConfigOptionContext[] {
- return this.getTypedRuleContexts(ConfigOptionContext) as ConfigOptionContext[];
- }
- public configOption(i: number): ConfigOptionContext {
- return this.getTypedRuleContext(ConfigOptionContext, i) as ConfigOptionContext;
- }
- public COMMA_list(): TerminalNode[] {
- return this.getTokens(esql_parser.COMMA);
- }
- public COMMA(i: number): TerminalNode {
- return this.getToken(esql_parser.COMMA, i);
- }
- public get ruleIndex(): number {
- return esql_parser.RULE_fromOptions;
- }
- public enterRule(listener: esql_parserListener): void {
- if(listener.enterFromOptions) {
- listener.enterFromOptions(this);
- }
- }
- public exitRule(listener: esql_parserListener): void {
- if(listener.exitFromOptions) {
- listener.exitFromOptions(this);
- }
- }
-}
-
-
-export class ConfigOptionContext extends ParserRuleContext {
- constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) {
- super(parent, invokingState);
- this.parser = parser;
- }
- public string__list(): StringContext[] {
- return this.getTypedRuleContexts(StringContext) as StringContext[];
- }
- public string_(i: number): StringContext {
- return this.getTypedRuleContext(StringContext, i) as StringContext;
- }
- public ASSIGN(): TerminalNode {
- return this.getToken(esql_parser.ASSIGN, 0);
- }
- public get ruleIndex(): number {
- return esql_parser.RULE_configOption;
- }
- public enterRule(listener: esql_parserListener): void {
- if(listener.enterConfigOption) {
- listener.enterConfigOption(this);
- }
- }
- public exitRule(listener: esql_parserListener): void {
- if(listener.exitConfigOption) {
- listener.exitConfigOption(this);
- }
- }
-}
-
-
export class MetadataContext extends ParserRuleContext {
constructor(parser?: esql_parser, parent?: ParserRuleContext, invokingState?: number) {
super(parent, invokingState);
diff --git a/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts b/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts
index 82bd908fa2b80..75847ae8805ac 100644
--- a/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts
+++ b/packages/kbn-esql-ast/src/antlr/esql_parser_listener.ts
@@ -34,8 +34,6 @@ import { FieldsContext } from "./esql_parser";
import { FieldContext } from "./esql_parser";
import { FromCommandContext } from "./esql_parser";
import { FromIdentifierContext } from "./esql_parser";
-import { FromOptionsContext } from "./esql_parser";
-import { ConfigOptionContext } from "./esql_parser";
import { MetadataContext } from "./esql_parser";
import { MetadataOptionContext } from "./esql_parser";
import { Deprecated_metadataContext } from "./esql_parser";
@@ -425,26 +423,6 @@ export default class esql_parserListener extends ParseTreeListener {
* @param ctx the parse tree
*/
exitFromIdentifier?: (ctx: FromIdentifierContext) => void;
- /**
- * Enter a parse tree produced by `esql_parser.fromOptions`.
- * @param ctx the parse tree
- */
- enterFromOptions?: (ctx: FromOptionsContext) => void;
- /**
- * Exit a parse tree produced by `esql_parser.fromOptions`.
- * @param ctx the parse tree
- */
- exitFromOptions?: (ctx: FromOptionsContext) => void;
- /**
- * Enter a parse tree produced by `esql_parser.configOption`.
- * @param ctx the parse tree
- */
- enterConfigOption?: (ctx: ConfigOptionContext) => void;
- /**
- * Exit a parse tree produced by `esql_parser.configOption`.
- * @param ctx the parse tree
- */
- exitConfigOption?: (ctx: ConfigOptionContext) => void;
/**
* Enter a parse tree produced by `esql_parser.metadata`.
* @param ctx the parse tree
diff --git a/packages/kbn-esql-ast/src/ast_helpers.ts b/packages/kbn-esql-ast/src/ast_helpers.ts
index d2ac5a026e316..7104eef95a062 100644
--- a/packages/kbn-esql-ast/src/ast_helpers.ts
+++ b/packages/kbn-esql-ast/src/ast_helpers.ts
@@ -218,7 +218,7 @@ function getQuotedText(ctx: ParserRuleContext) {
}
function getUnquotedText(ctx: ParserRuleContext) {
- return [67 /* esql_parser.UNQUOTED_IDENTIFIER */, 74 /* esql_parser.FROM_UNQUOTED_IDENTIFIER */]
+ return [67 /* esql_parser.UNQUOTED_IDENTIFIER */, 73 /* esql_parser.FROM_UNQUOTED_IDENTIFIER */]
.map((keyCode) => ctx.getToken(keyCode, 0))
.filter(nonNullable)[0];
}
diff --git a/packages/kbn-esql-validation-autocomplete/README.md b/packages/kbn-esql-validation-autocomplete/README.md
index f146ff876df40..fb82a67b9171f 100644
--- a/packages/kbn-esql-validation-autocomplete/README.md
+++ b/packages/kbn-esql-validation-autocomplete/README.md
@@ -11,6 +11,8 @@ src
| code_actions // => the quick fixes service logic
| definitions // => static assets to define all components behaviour of a ES|QL query: commands, functions, etc...
| validation // => the validation logic
+
+scripts // => scripts used to manage the validation engine code
```
### Basic usage
@@ -45,12 +47,12 @@ import { validateQuery } from '@kbn/esql-validation-autocomplete';
// define only the getSources callback
const myCallbacks = {
- getSources: async () => [{name: 'index', hidden: false}],
+ getSources: async () => [{ name: 'index', hidden: false }],
};
// ignore errors that might be triggered by the lack of some callbacks (i.e. "Unknown columns", etc...)
const { errors, warnings } = await validateQuery(
- "from index | stats 1 + avg(myColumn)",
+ 'from index | stats 1 + avg(myColumn)',
getAstAndSyntaxErrors,
{ ignoreOnMissingCallbacks: true },
myCallbacks
@@ -161,12 +163,12 @@ For instance to show contextual information on Hover the `getAstContext` functio
import { getAstAndSyntaxErrors } from '@kbn/esql-ast';
import { getAstContext } from '@kbn/esql-validation-autocomplete';
-const queryString = "from index2 | stats 1 + avg(myColumn)";
-const offset = queryString.indexOf("avg");
+const queryString = 'from index2 | stats 1 + avg(myColumn)';
+const offset = queryString.indexOf('avg');
const astContext = getAstContext(queryString, getAstAndSyntaxErrors(queryString), offset);
-if(astContext.type === "function"){
+if (astContext.type === 'function') {
const fnNode = astContext.node;
const fnDefinition = getFunctionDefinition(fnNode.name);
@@ -175,7 +177,6 @@ if(astContext.type === "function"){
}
```
-
### How does it work
The general idea of this package is to provide all ES|QL features on top of a custom compact AST definition (all data structure types defined in `@kbn/esql-ast`) which is designed to be resilient to many grammar changes.
@@ -211,9 +212,9 @@ The most complex case is the `expression` as it can cover a moltitude of cases.
### Adding new commands/options/functions/erc...
To update the definitions:
+
1. open either approriate definition file within the `definitions` folder and add a new entry to the relative array
-2. write new tests for validation and autocomplete
- * if a new function is added tests are automatically generated fro both validation and autocomplete with some standard checks
- * if a new function requires a new field types, make sure to add the new type to the initial part of the test file
- * this will be automatically picked up by the test generator to produce new test cases
- * if a new function requires a new type of test, make sure to write it manually
\ No newline at end of file
+2. if you are adding a function, run `yarn maketests` to add a set of fundamental validation tests for the new definition. If any of the suggested tests are wrong, feel free to correct them by hand. If it seems like a general problem, open an issue with the details so that we can update the generator code.
+3. write new tests for validation and autocomplete
+
+- if a new function requires a new type of test, make sure to write it manually
diff --git a/packages/kbn-esql-validation-autocomplete/package.json b/packages/kbn-esql-validation-autocomplete/package.json
index 1589e4aaba238..5d3773ed082b8 100644
--- a/packages/kbn-esql-validation-autocomplete/package.json
+++ b/packages/kbn-esql-validation-autocomplete/package.json
@@ -1,7 +1,10 @@
{
- "name": "@kbn/esql-validation-autocomplete",
- "version": "1.0.0",
- "private": true,
- "license": "SSPL-1.0 OR Elastic License 2.0",
- "sideEffects": false
- }
\ No newline at end of file
+ "name": "@kbn/esql-validation-autocomplete",
+ "version": "1.0.0",
+ "private": true,
+ "license": "SSPL-1.0 OR Elastic License 2.0",
+ "sideEffects": false,
+ "scripts": {
+ "maketests": "ts-node --transpileOnly ./scripts/generate_function_validation_tests.ts"
+ }
+}
diff --git a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts
new file mode 100644
index 0000000000000..2b68d96a4195c
--- /dev/null
+++ b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_validation_tests.ts
@@ -0,0 +1,1248 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { readFileSync, writeFileSync } from 'fs';
+import { camelCase } from 'lodash';
+import { join } from 'path';
+import * as recast from 'recast';
+import { statsAggregationFunctionDefinitions } from '../src/definitions/aggs';
+import { evalFunctionsDefinitions } from '../src/definitions/functions';
+import { groupingFunctionDefinitions } from '../src/definitions/grouping';
+import { getFunctionSignatures } from '../src/definitions/helpers';
+import { chronoLiterals, timeLiterals } from '../src/definitions/literals';
+import { FunctionDefinition } from '../src/definitions/types';
+import { nonNullable } from '../src/shared/helpers';
+import { FUNCTION_DESCRIBE_BLOCK_NAME } from '../src/validation/function_describe_block_name';
+
+function main() {
+ const testCasesByFunction: Map> = new Map();
+
+ for (const definition of evalFunctionsDefinitions) {
+ testCasesByFunction.set(definition.name, generateTestsForEvalFunction(definition));
+ }
+
+ for (const definition of statsAggregationFunctionDefinitions) {
+ testCasesByFunction.set(definition.name, generateTestsForAggFunction(definition));
+ }
+
+ for (const definition of groupingFunctionDefinitions) {
+ testCasesByFunction.set(definition.name, generateTestsForGroupingFunction(definition));
+ }
+
+ writeTestsToFile(testCasesByFunction);
+}
+
+function generateTestsForEvalFunction(definition: FunctionDefinition) {
+ const testCases: Map = new Map();
+ generateRowCommandTestsForEvalFunction(definition, testCases);
+ generateWhereCommandTestsForEvalFunction(definition, testCases);
+ generateEvalCommandTestsForEvalFunction(definition, testCases);
+ generateSortCommandTestsForEvalFunction(definition, testCases);
+ return testCases;
+}
+
+function generateTestsForAggFunction(definition: FunctionDefinition) {
+ const testCases: Map = new Map();
+ generateStatsCommandTestsForAggFunction(definition, testCases);
+ generateSortCommandTestsForAggFunction(definition, testCases);
+ generateWhereCommandTestsForAggFunction(definition, testCases);
+ generateEvalCommandTestsForAggFunction(definition, testCases);
+ return testCases;
+}
+
+function generateTestsForGroupingFunction(definition: FunctionDefinition) {
+ const testCases: Map = new Map();
+ generateStatsCommandTestsForGroupingFunction(definition, testCases);
+ generateSortCommandTestsForGroupingFunction(definition, testCases);
+ return testCases;
+}
+
+function generateRowCommandTestsForEvalFunction(
+ { name, alias, signatures, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ if (name === 'date_diff') return;
+ for (const { params, ...signRest } of signatures) {
+ // ROW command stuff
+ const fieldMapping = getFieldMapping(params);
+ const signatureStringCorrect = tweakSignatureForRowCommand(
+ getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration
+ );
+
+ testCases.set(`row var = ${signatureStringCorrect}`, []);
+ testCases.set(`row ${signatureStringCorrect}`, []);
+
+ if (alias) {
+ for (const otherName of alias) {
+ const signatureStringWithAlias = tweakSignatureForRowCommand(
+ getFunctionSignatures(
+ {
+ name: otherName,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ );
+
+ testCases.set(`row var = ${signatureStringWithAlias}`, []);
+ }
+ }
+
+ // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
+ // to_version functions are a bit harder to test exactly a combination of argument and predict the
+ // the right error message
+ if (
+ params.every(({ type }) => type !== 'any') &&
+ ![
+ 'to_version',
+ 'mv_sort',
+ // skip the date functions because the row tests always throw in
+ // a string literal and expect it to be invalid for the date functions
+ // but it's always valid because ES will parse it as a date
+ 'date_diff',
+ 'date_extract',
+ 'date_format',
+ 'date_trunc',
+ ].includes(name)
+ ) {
+ // now test nested functions
+ const fieldMappingWithNestedFunctions = getFieldMapping(params, {
+ useNestedFunction: true,
+ useLiterals: true,
+ });
+ const signatureString = tweakSignatureForRowCommand(
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ );
+
+ testCases.set(`row var = ${signatureString}`, []);
+
+ const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
+ name,
+ signatures,
+ params,
+ {
+ stringField: '"a"',
+ numberField: '5',
+ booleanField: 'true',
+ }
+ );
+ const wrongSignatureString = tweakSignatureForRowCommand(
+ getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration
+ );
+ testCases.set(`row var = ${wrongSignatureString}`, expectedErrors);
+ }
+ }
+}
+
+function generateWhereCommandTestsForEvalFunction(
+ { name, signatures, ...rest }: FunctionDefinition,
+ testCases: Map
+) {
+ // Test that all functions work in where
+ // TODO: not sure why there's this constraint...
+ const supportedFunction = signatures.some(
+ ({ returnType, params }) =>
+ ['number', 'string'].includes(returnType) &&
+ params.every(({ type }) => ['number', 'string'].includes(type))
+ );
+
+ if (!supportedFunction) {
+ return;
+ }
+
+ const supportedSignatures = signatures.filter(({ returnType }) =>
+ // TODO — not sure why the tests have this limitation... seems like any type
+ // that can be part of a boolean expression should be allowed in a where clause
+ ['number', 'string'].includes(returnType)
+ );
+ for (const { params, returnType, ...restSign } of supportedSignatures) {
+ const correctMapping = getFieldMapping(params);
+ testCases.set(
+ `from a_index | where ${returnType !== 'number' ? 'length(' : ''}${
+ // hijacking a bit this function to produce a function call
+ getFunctionSignatures(
+ {
+ name,
+ ...rest,
+ signatures: [{ params: correctMapping, returnType, ...restSign }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }${returnType !== 'number' ? ')' : ''} > 0`,
+ []
+ );
+
+ const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
+ name,
+ signatures,
+ params,
+ { stringField: 'stringField', numberField: 'numberField', booleanField: 'booleanField' }
+ );
+ testCases.set(
+ `from a_index | where ${returnType !== 'number' ? 'length(' : ''}${
+ // hijacking a bit this function to produce a function call
+ getFunctionSignatures(
+ {
+ name,
+ ...rest,
+ signatures: [{ params: wrongFieldMapping, returnType, ...restSign }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }${returnType !== 'number' ? ')' : ''} > 0`,
+ expectedErrors
+ );
+ }
+}
+
+function generateWhereCommandTestsForAggFunction(
+ { name, alias, signatures, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ // statsSignatures.some(({ returnType, params }) => ['number'].includes(returnType))
+ for (const { params, ...signRest } of signatures) {
+ const fieldMapping = getFieldMapping(params);
+
+ testCases.set(
+ `from a_index | where ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ [`WHERE does not support function ${name}`]
+ );
+
+ testCases.set(
+ `from a_index | where ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ } > 0`,
+ [`WHERE does not support function ${name}`]
+ );
+ }
+}
+
+function generateEvalCommandTestsForEvalFunction(
+ { name, signatures, alias, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ for (const { params, ...signRest } of signatures) {
+ const fieldMapping = getFieldMapping(params);
+ testCases.set(
+ `from a_index | eval var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ []
+ );
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ []
+ );
+ if (params.some(({ constantOnly }) => constantOnly)) {
+ const fieldReplacedType = params
+ .filter(({ constantOnly }) => constantOnly)
+ .map(({ type }) => type);
+ // create the mapping without the literal flag
+ // this will make the signature wrong on purpose where in place on constants
+ // the arg will be a column of the same type
+ const fieldMappingWithoutLiterals = getFieldMapping(
+ params.map(({ constantOnly, ...rest }) => rest)
+ );
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ fieldReplacedType.map(
+ (type) => `Argument of [${name}] must be a constant, received [${type}Field]`
+ )
+ );
+ }
+
+ if (alias) {
+ for (const otherName of alias) {
+ const signatureStringWithAlias = getFunctionSignatures(
+ {
+ name: otherName,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration;
+
+ testCases.set(`from a_index | eval var = ${signatureStringWithAlias}`, []);
+ }
+ }
+
+ // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
+ // to_version functions are a bit harder to test exactly a combination of argument and predict the
+ // the right error message
+ if (params.every(({ type }) => type !== 'any') && !['to_version', 'mv_sort'].includes(name)) {
+ // now test nested functions
+ const fieldMappingWithNestedFunctions = getFieldMapping(params, {
+ useNestedFunction: true,
+ useLiterals: true,
+ });
+ testCases.set(
+ `from a_index | eval var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ []
+ );
+
+ const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
+ name,
+ signatures,
+ params,
+ {
+ stringField: 'stringField',
+ numberField: 'numberField',
+ booleanField: 'booleanField',
+ }
+ );
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ expectedErrors
+ );
+
+ if (!signRest.minParams) {
+ // test that additional args are spotted
+ const fieldMappingWithOneExtraArg = getFieldMapping(params).concat({
+ name: 'extraArg',
+ type: 'number',
+ });
+ const refSignature = signatures[0];
+ // get the expected args from the first signature in case of errors
+ const minNumberOfArgs = refSignature.params.filter(({ optional }) => !optional).length;
+ const fullNumberOfArgs = refSignature.params.length;
+ const hasOptionalArgs = minNumberOfArgs < fullNumberOfArgs;
+ const hasTooManyArgs = fieldMappingWithOneExtraArg.length > fullNumberOfArgs;
+
+ // the validation engine tries to be smart about signatures with optional args
+ let messageQuantifier = 'exactly ';
+ if (hasOptionalArgs && hasTooManyArgs) {
+ messageQuantifier = 'no more than ';
+ }
+ if (!hasOptionalArgs && !hasTooManyArgs) {
+ messageQuantifier = 'at least ';
+ }
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithOneExtraArg, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ [
+ `Error: [${name}] function expects ${messageQuantifier}${
+ fullNumberOfArgs === 1
+ ? 'one argument'
+ : fullNumberOfArgs === 0
+ ? '0 arguments'
+ : `${fullNumberOfArgs} arguments`
+ }, got ${fieldMappingWithOneExtraArg.length}.`,
+ ]
+ );
+ }
+ }
+
+ // test that wildcard won't work as arg
+ if (fieldMapping.length === 1 && !signRest.minParams) {
+ const fieldMappingWithWildcard = [...fieldMapping];
+ fieldMappingWithWildcard[0].name = '*';
+
+ testCases.set(
+ `from a_index | eval var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithWildcard, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ [`Using wildcards (*) in ${name} is not allowed`]
+ );
+ }
+ }
+}
+
+function generateEvalCommandTestsForAggFunction(
+ { name, signatures, alias, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ for (const { params, ...signRest } of signatures) {
+ const fieldMapping = getFieldMapping(params);
+ testCases.set(
+ `from a_index | eval var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ [`EVAL does not support function ${name}`]
+ );
+
+ testCases.set(
+ `from a_index | eval var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ } > 0`,
+ [`EVAL does not support function ${name}`]
+ );
+
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ [`EVAL does not support function ${name}`]
+ );
+
+ testCases.set(
+ `from a_index | eval ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ } > 0`,
+ [`EVAL does not support function ${name}`]
+ );
+ }
+}
+
+function generateStatsCommandTestsForAggFunction(
+ { name, signatures, alias, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ for (const { params, ...signRest } of signatures) {
+ const fieldMapping = getFieldMapping(params);
+
+ const correctSignature = getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration;
+ testCases.set(`from a_index | stats var = ${correctSignature}`, []);
+ testCases.set(`from a_index | stats ${correctSignature}`, []);
+
+ if (signRest.returnType === 'number') {
+ testCases.set(`from a_index | stats var = round(${correctSignature})`, []);
+ testCases.set(`from a_index | stats round(${correctSignature})`, []);
+ testCases.set(
+ `from a_index | stats var = round(${correctSignature}) + ${correctSignature}`,
+ []
+ );
+ testCases.set(`from a_index | stats round(${correctSignature}) + ${correctSignature}`, []);
+ }
+
+ if (params.some(({ constantOnly }) => constantOnly)) {
+ const fieldReplacedType = params
+ .filter(({ constantOnly }) => constantOnly)
+ .map(({ type }) => type);
+ // create the mapping without the literal flag
+ // this will make the signature wrong on purpose where in place on constants
+ // the arg will be a column of the same type
+ const fieldMappingWithoutLiterals = getFieldMapping(
+ params.map(({ constantOnly, ...rest }) => rest)
+ );
+ testCases.set(
+ `from a_index | stats ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ fieldReplacedType.map(
+ (type) => `Argument of [${name}] must be a constant, received [${type}Field]`
+ )
+ );
+ }
+
+ if (alias) {
+ for (const otherName of alias) {
+ const signatureStringWithAlias = getFunctionSignatures(
+ {
+ name: otherName,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration;
+
+ testCases.set(`from a_index | stats var = ${signatureStringWithAlias}`, []);
+ }
+ }
+
+ // test only numeric functions for now
+ if (params[0].type === 'number') {
+ const nestedBuiltin = 'numberField / 2';
+ const fieldMappingWithNestedBuiltinFunctions = getFieldMapping(params);
+ fieldMappingWithNestedBuiltinFunctions[0].name = nestedBuiltin;
+
+ const fnSignatureWithBuiltinString = getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedBuiltinFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration;
+ // from a_index | STATS aggFn( numberField / 2 )
+ testCases.set(`from a_index | stats ${fnSignatureWithBuiltinString}`, []);
+ testCases.set(`from a_index | stats var0 = ${fnSignatureWithBuiltinString}`, []);
+ testCases.set(`from a_index | stats avg(numberField), ${fnSignatureWithBuiltinString}`, []);
+ testCases.set(
+ `from a_index | stats avg(numberField), var0 = ${fnSignatureWithBuiltinString}`,
+ []
+ );
+
+ const nestedEvalAndBuiltin = 'round(numberField / 2)';
+ const fieldMappingWithNestedEvalAndBuiltinFunctions = getFieldMapping(params);
+ fieldMappingWithNestedBuiltinFunctions[0].name = nestedEvalAndBuiltin;
+
+ const fnSignatureWithEvalAndBuiltinString = getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedEvalAndBuiltinFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration;
+ // from a_index | STATS aggFn( round(numberField / 2) )
+ testCases.set(`from a_index | stats ${fnSignatureWithEvalAndBuiltinString}`, []);
+ testCases.set(`from a_index | stats var0 = ${fnSignatureWithEvalAndBuiltinString}`, []);
+ testCases.set(
+ `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString}`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString}`,
+ []
+ );
+ // from a_index | STATS aggFn(round(numberField / 2) ) BY round(numberField / 2)
+ testCases.set(
+ `from a_index | stats ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}, ipField`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}, ipField`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}, ${nestedBuiltin}`,
+ []
+ );
+ testCases.set(
+ `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}, ${nestedBuiltin}`,
+ []
+ );
+ }
+
+ // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
+ // to_version is a bit harder to test exactly a combination of argument and predict the
+ // the right error message
+ if (params.every(({ type }) => type !== 'any') && !['to_version', 'mv_sort'].includes(name)) {
+ // now test nested functions
+ const fieldMappingWithNestedAggsFunctions = getFieldMapping(params, {
+ useNestedFunction: true,
+ useLiterals: false,
+ });
+ const nestedAggsExpectedErrors = params
+ .filter(({ constantOnly }) => !constantOnly)
+ .map(
+ (_) =>
+ `Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]`
+ );
+ testCases.set(
+ `from a_index | stats var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedAggsFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ nestedAggsExpectedErrors
+ );
+ testCases.set(
+ `from a_index | stats ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithNestedAggsFunctions, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ nestedAggsExpectedErrors
+ );
+ const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
+ name,
+ signatures,
+ params,
+ {
+ stringField: 'stringField',
+ numberField: 'numberField',
+ booleanField: 'booleanField',
+ }
+ );
+ // and the message is case of wrong argument type is passed
+ testCases.set(
+ `from a_index | stats ${
+ getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ expectedErrors
+ );
+
+ // test that only count() accepts wildcard as arg
+ // just check that the function accepts only 1 arg as the parser cannot handle multiple args with * as start arg
+ if (fieldMapping.length === 1) {
+ const fieldMappingWithWildcard = [...fieldMapping];
+ fieldMappingWithWildcard[0].name = '*';
+
+ testCases.set(
+ `from a_index | stats var = ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithWildcard, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ name === 'count' ? [] : [`Using wildcards (*) in ${name} is not allowed`]
+ );
+ }
+ }
+ }
+}
+
+function generateStatsCommandTestsForGroupingFunction(
+ { name, signatures, alias, ...defRest }: FunctionDefinition,
+ testCases: Map
+) {
+ for (const { params, ...signRest } of signatures) {
+ const fieldMapping = getFieldMapping(params);
+
+ const correctSignature = getFunctionSignatures(
+ { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
+ { withTypes: false }
+ )[0].declaration;
+ testCases.set(`from a_index | stats by ${correctSignature}`, []);
+
+ if (params.some(({ constantOnly }) => constantOnly)) {
+ const fieldReplacedType = params
+ .filter(({ constantOnly }) => constantOnly)
+ .map(({ type }) => type);
+ // create the mapping without the literal flag
+ // this will make the signature wrong on purpose where in place on constants
+ // the arg will be a column of the same type
+ const fieldMappingWithoutLiterals = getFieldMapping(
+ params.map(({ constantOnly, ...rest }) => rest)
+ );
+ testCases.set(
+ `from a_index | stats by ${
+ getFunctionSignatures(
+ {
+ name,
+ ...defRest,
+ signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration
+ }`,
+ fieldReplacedType
+ // if a param of type time_literal or chrono_literal it will always be a literal
+ // so no way to test the constantOnly thing
+ .filter((type) => !['time_literal', 'chrono_literal'].includes(type))
+ .map((type) => `Argument of [${name}] must be a constant, received [${type}Field]`)
+ );
+ }
+
+ if (alias) {
+ for (const otherName of alias) {
+ const signatureStringWithAlias = getFunctionSignatures(
+ {
+ name: otherName,
+ ...defRest,
+ signatures: [{ params: fieldMapping, ...signRest }],
+ },
+ { withTypes: false }
+ )[0].declaration;
+
+ testCases.set(`from a_index | stats by ${signatureStringWithAlias}`, []);
+ }
+ }
+ }
+}
+
+function generateSortCommandTestsForEvalFunction(
+ definition: FunctionDefinition,
+ testCases: Map
+) {
+ // should accept eval functions
+ const {
+ signatures: [firstSignature],
+ } = definition;
+ const fieldMapping = getFieldMapping(firstSignature.params);
+ const printedInvocation = getFunctionSignatures(
+ { ...definition, signatures: [{ ...firstSignature, params: fieldMapping }] },
+ { withTypes: false }
+ )[0].declaration;
+
+ testCases.set(`from a_index | sort ${printedInvocation}`, []);
+}
+
+function generateSortCommandTestsForAggFunction(
+ definition: FunctionDefinition,
+ testCases: Map
+) {
+ const {
+ name,
+ signatures: [firstSignature],
+ } = definition;
+ const fieldMapping = getFieldMapping(firstSignature.params);
+ const printedInvocation = getFunctionSignatures(
+ { ...definition, signatures: [{ ...firstSignature, params: fieldMapping }] },
+ { withTypes: false }
+ )[0].declaration;
+
+ testCases.set(`from a_index | sort ${printedInvocation}`, [
+ `SORT does not support function ${name}`,
+ ]);
+}
+
+const generateSortCommandTestsForGroupingFunction = generateSortCommandTestsForAggFunction;
+
+const fieldTypes = [
+ 'number',
+ 'date',
+ 'boolean',
+ 'version',
+ 'ip',
+ 'string',
+ 'cartesian_point',
+ 'cartesian_shape',
+ 'geo_point',
+ 'geo_shape',
+];
+
+function prepareNestedFunction(fnSignature: FunctionDefinition): string {
+ return getFunctionSignatures(
+ {
+ ...fnSignature,
+ signatures: [
+ {
+ ...fnSignature?.signatures[0]!,
+ params: getFieldMapping(fnSignature?.signatures[0]!.params),
+ },
+ ],
+ },
+ { withTypes: false }
+ )[0].declaration;
+}
+
+const toAvgSignature = statsAggregationFunctionDefinitions.find(({ name }) => name === 'avg')!;
+
+const toInteger = evalFunctionsDefinitions.find(({ name }) => name === 'to_integer')!;
+const toStringSignature = evalFunctionsDefinitions.find(({ name }) => name === 'to_string')!;
+const toDateSignature = evalFunctionsDefinitions.find(({ name }) => name === 'to_datetime')!;
+const toBooleanSignature = evalFunctionsDefinitions.find(({ name }) => name === 'to_boolean')!;
+const toIpSignature = evalFunctionsDefinitions.find(({ name }) => name === 'to_ip')!;
+const toGeoPointSignature = evalFunctionsDefinitions.find(({ name }) => name === 'to_geopoint')!;
+const toCartesianPointSignature = evalFunctionsDefinitions.find(
+ ({ name }) => name === 'to_cartesianpoint'
+)!;
+
+const nestedFunctions = {
+ number: prepareNestedFunction(toInteger),
+ string: prepareNestedFunction(toStringSignature),
+ date: prepareNestedFunction(toDateSignature),
+ boolean: prepareNestedFunction(toBooleanSignature),
+ ip: prepareNestedFunction(toIpSignature),
+ geo_point: prepareNestedFunction(toGeoPointSignature),
+ cartesian_point: prepareNestedFunction(toCartesianPointSignature),
+};
+
+function getFieldName(
+ typeString: string,
+ { useNestedFunction, isStats }: { useNestedFunction: boolean; isStats: boolean }
+) {
+ if (useNestedFunction && isStats) {
+ return prepareNestedFunction(toAvgSignature);
+ }
+ return useNestedFunction && typeString in nestedFunctions
+ ? nestedFunctions[typeString as keyof typeof nestedFunctions]
+ : `${camelCase(typeString)}Field`;
+}
+
+const literals = {
+ chrono_literal: chronoLiterals[0].name,
+ time_literal: timeLiterals[0].name,
+};
+
+function getLiteralType(typeString: 'chrono_literal' | 'time_literal') {
+ if (typeString === 'chrono_literal') {
+ return literals[typeString];
+ }
+ return `1 ${literals[typeString]}`;
+}
+
+function getMultiValue(type: string) {
+ if (/string|any/.test(type)) {
+ return `["a", "b", "c"]`;
+ }
+ if (/number/.test(type)) {
+ return `[1, 2, 3]`;
+ }
+ return `[true, false]`;
+}
+
+function tweakSignatureForRowCommand(signature: string) {
+ /**
+ * row has no access to any field, so replace it with literal
+ * or functions (for dates)
+ */
+ return signature
+ .replace(/numberField/g, '5')
+ .replace(/stringField/g, '"a"')
+ .replace(/dateField/g, 'now()')
+ .replace(/booleanField/g, 'true')
+ .replace(/ipField/g, 'to_ip("127.0.0.1")')
+ .replace(/geoPointField/g, 'to_geopoint("POINT (30 10)")')
+ .replace(/geoShapeField/g, 'to_geoshape("POINT (30 10)")')
+ .replace(/cartesianPointField/g, 'to_cartesianpoint("POINT (30 10)")')
+ .replace(/cartesianShapeField/g, 'to_cartesianshape("POINT (30 10)")');
+}
+
+function getFieldMapping(
+ params: FunctionDefinition['signatures'][number]['params'],
+ { useNestedFunction, useLiterals }: { useNestedFunction: boolean; useLiterals: boolean } = {
+ useNestedFunction: false,
+ useLiterals: true,
+ }
+) {
+ const literalValues = {
+ string: `"a"`,
+ number: '5',
+ date: 'now()',
+ };
+ return params.map(({ name: _name, type, constantOnly, literalOptions, ...rest }) => {
+ const typeString: string = type;
+ if (fieldTypes.includes(typeString)) {
+ if (useLiterals && literalOptions) {
+ return {
+ name: `"${literalOptions[0]}"`,
+ type,
+ ...rest,
+ };
+ }
+
+ const fieldName =
+ constantOnly && typeString in literalValues
+ ? literalValues[typeString as keyof typeof literalValues]!
+ : getFieldName(typeString, {
+ useNestedFunction,
+ isStats: !useLiterals,
+ });
+ return {
+ name: fieldName,
+ type,
+ ...rest,
+ };
+ }
+ if (/literal$/.test(typeString) && useLiterals) {
+ return {
+ name: getLiteralType(typeString as 'chrono_literal' | 'time_literal'),
+ type,
+ ...rest,
+ };
+ }
+ if (/\[\]$/.test(typeString)) {
+ return {
+ name: getMultiValue(typeString),
+ type,
+ ...rest,
+ };
+ }
+ return { name: 'stringField', type, ...rest };
+ });
+}
+
+function generateIncorrectlyTypedParameters(
+ name: string,
+ signatures: FunctionDefinition['signatures'],
+ currentParams: FunctionDefinition['signatures'][number]['params'],
+ values: { stringField: string; numberField: string; booleanField: string }
+) {
+ const literalValues = {
+ string: `"a"`,
+ number: '5',
+ };
+ const wrongFieldMapping = currentParams.map(
+ ({ name: _name, constantOnly, literalOptions, type, ...rest }, i) => {
+ // this thing is complex enough, let's not make it harder for constants
+ if (constantOnly) {
+ return {
+ name: literalValues[type as keyof typeof literalValues],
+ type,
+ wrong: false,
+ ...rest,
+ };
+ }
+ const canBeFieldButNotString = Boolean(
+ fieldTypes.filter((t) => t !== 'string').includes(type) &&
+ signatures.every(({ params: fnParams }) => fnParams[i].type !== 'string')
+ );
+ const canBeFieldButNotNumber =
+ fieldTypes.filter((t) => t !== 'number').includes(type) &&
+ signatures.every(({ params: fnParams }) => fnParams[i].type !== 'number');
+ const isLiteralType = /literal$/.test(type);
+ // pick a field name purposely wrong
+ const nameValue =
+ canBeFieldButNotString || isLiteralType
+ ? values.stringField
+ : canBeFieldButNotNumber
+ ? values.numberField
+ : values.booleanField;
+ return { name: nameValue, type, wrong: true, ...rest };
+ }
+ );
+
+ const generatedFieldTypes = {
+ [values.stringField]: 'string',
+ [values.numberField]: 'number',
+ [values.booleanField]: 'boolean',
+ };
+
+ // Try to predict which signature will be used to generate the errors
+ // in the validation engine. The validator currently uses the signature
+ // which generates the fewest errors.
+ //
+ // Approximate this by finding the signature that best matches the INCORRECT field mapping
+ //
+ // This is not future-proof...
+ const misMatchesBySignature = signatures.map(({ params: fnParams }) => {
+ const typeMatches = fnParams.map(({ type }, i) => {
+ if (wrongFieldMapping[i].wrong) {
+ const typeFromIncorrectMapping = generatedFieldTypes[wrongFieldMapping[i].name];
+ return type === typeFromIncorrectMapping;
+ }
+ return type === wrongFieldMapping[i].type;
+ });
+ return typeMatches.filter((t) => !t).length;
+ })!;
+ const signatureToUse =
+ signatures[misMatchesBySignature.indexOf(Math.min(...misMatchesBySignature))]!;
+
+ const expectedErrors = signatureToUse.params
+ .filter(({ constantOnly }) => !constantOnly)
+ .map(({ type }, i) => {
+ const fieldName = wrongFieldMapping[i].name;
+ if (
+ fieldName === 'numberField' &&
+ signatures.every(({ params: fnParams }) => fnParams[i].type !== 'string')
+ ) {
+ return;
+ }
+ return `Argument of [${name}] must be [${type}], found value [${fieldName}] type [${generatedFieldTypes[fieldName]}]`;
+ })
+ .filter(nonNullable);
+
+ return { wrongFieldMapping, expectedErrors };
+}
+
+/**
+ * This writes the test cases to the validation.test.ts file
+ *
+ * It will never overwrite existing test cases, only add new ones
+ *
+ * @param testCasesByFunction
+ */
+function writeTestsToFile(testCasesByFunction: Map>) {
+ const b = recast.types.builders;
+ const n = recast.types.namedTypes;
+
+ const buildTestCase = (testQuery: string, expectedErrors: string[]) => {
+ return b.expressionStatement(
+ b.callExpression(b.identifier('testErrorsAndWarnings'), [
+ b.stringLiteral(testQuery),
+ b.arrayExpression(expectedErrors.map((error) => b.stringLiteral(error))),
+ ])
+ );
+ };
+
+ const buildDescribeBlockForFunction = (
+ _functionName: string,
+ testCases: Map
+ ) => {
+ const testCasesInCode = Array.from(testCases.entries()).map(([testQuery, expectedErrors]) => {
+ return buildTestCase(testQuery, expectedErrors);
+ });
+
+ return b.expressionStatement(
+ b.callExpression(b.identifier('describe'), [
+ b.stringLiteral(_functionName),
+ b.arrowFunctionExpression([], b.blockStatement(testCasesInCode)),
+ ])
+ );
+ };
+
+ /**
+ * Returns the string contents of a node whether or not it's a StringLiteral or a TemplateLiteral
+ * @param node
+ * @returns
+ */
+ function getValueFromStringOrTemplateLiteral(node: any): string {
+ if (n.StringLiteral.check(node)) {
+ return node.value;
+ }
+
+ if (n.TemplateLiteral.check(node)) {
+ return node.quasis[0].value.raw;
+ }
+
+ return '';
+ }
+
+ /**
+ * This function searches the AST for the describe block containing per-function tests
+ * @param ast
+ * @returns
+ */
+ function findFunctionsDescribeBlock(ast: any): recast.types.namedTypes.BlockStatement {
+ let foundBlock: recast.types.namedTypes.CallExpression | null = null;
+
+ const describeBlockIdentifierName = Object.keys({ FUNCTION_DESCRIBE_BLOCK_NAME })[0];
+
+ recast.visit(ast, {
+ visitCallExpression(path) {
+ const node = path.node;
+ if (
+ n.Identifier.check(node.callee) &&
+ node.callee.name === 'describe' &&
+ n.Identifier.check(node.arguments[0]) &&
+ node.arguments[0].name === describeBlockIdentifierName
+ ) {
+ foundBlock = node;
+ this.abort();
+ }
+ this.traverse(path);
+ },
+ });
+
+ if (!foundBlock) {
+ throw Error('couldn\'t find the "functions" describe block in the test file');
+ }
+
+ const functionsDescribeCallExpression = foundBlock as recast.types.namedTypes.CallExpression;
+
+ if (!n.ArrowFunctionExpression.check(functionsDescribeCallExpression.arguments[1])) {
+ throw Error('Expected an arrow function expression');
+ }
+
+ if (!n.BlockStatement.check(functionsDescribeCallExpression.arguments[1].body)) {
+ throw Error('Expected a block statement');
+ }
+
+ return functionsDescribeCallExpression.arguments[1].body;
+ }
+
+ const testFilePath = join(__dirname, '../src/validation/validation.test.ts');
+
+ const ast = recast.parse(readFileSync(testFilePath).toString(), {
+ parser: require('recast/parsers/typescript'),
+ });
+
+ const functionsDescribeBlock = findFunctionsDescribeBlock(ast);
+
+ // check for existing describe blocks for functions and add any new
+ // test cases to them
+ for (const node of functionsDescribeBlock.body) {
+ if (!n.ExpressionStatement.check(node)) {
+ continue;
+ }
+
+ if (!n.CallExpression.check(node.expression)) {
+ continue;
+ }
+
+ if (!n.StringLiteral.check(node.expression.arguments[0])) {
+ continue;
+ }
+
+ const functionName = node.expression.arguments[0].value;
+
+ if (!testCasesByFunction.has(functionName)) {
+ // this will be a new describe block for a function that doesn't have any tests yet
+ continue;
+ }
+
+ const generatedTestCasesForFunction = testCasesByFunction.get(functionName) as Map<
+ string,
+ string[]
+ >;
+
+ if (!n.ArrowFunctionExpression.check(node.expression.arguments[1])) {
+ continue;
+ }
+
+ if (!n.BlockStatement.check(node.expression.arguments[1].body)) {
+ continue;
+ }
+
+ for (const existingTestCaseAST of node.expression.arguments[1].body.body) {
+ if (!n.ExpressionStatement.check(existingTestCaseAST)) {
+ continue;
+ }
+
+ if (!n.CallExpression.check(existingTestCaseAST.expression)) {
+ continue;
+ }
+
+ if (!n.Identifier.check(existingTestCaseAST.expression.callee)) {
+ continue;
+ }
+
+ if (existingTestCaseAST.expression.callee.name !== 'testErrorsAndWarnings') {
+ continue;
+ }
+
+ const testQuery = getValueFromStringOrTemplateLiteral(
+ existingTestCaseAST.expression.arguments[0]
+ );
+
+ if (!testQuery) {
+ continue;
+ }
+
+ if (generatedTestCasesForFunction.has(testQuery)) {
+ // Remove the test case from the generated test cases to respect
+ // what is already there in the test file... we don't want to overwrite
+ // what already exists
+ generatedTestCasesForFunction.delete(testQuery);
+ }
+ }
+
+ // add new testCases
+ for (const [testQuery, expectedErrors] of generatedTestCasesForFunction.entries()) {
+ node.expression.arguments[1].body.body.push(buildTestCase(testQuery, expectedErrors));
+ }
+
+ // remove the function from the map so we don't add a duplicate describe block
+ testCasesByFunction.delete(functionName);
+ }
+
+ // Add new describe blocks for functions that don't have any tests yet
+ for (const [functionName, testCases] of testCasesByFunction) {
+ functionsDescribeBlock.body.push(buildDescribeBlockForFunction(functionName, testCases));
+ }
+
+ writeFileSync(testFilePath, recast.print(ast).code, 'utf-8');
+}
+
+main();
diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
index 2320f11d4a1ab..9b5d3b50b0a63 100644
--- a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
+++ b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json
@@ -217,6 +217,14 @@
"error": [],
"warning": []
},
+ {
+ "query": "from `index`",
+ "error": [
+ "SyntaxError: token recognition error at: '`'",
+ "SyntaxError: token recognition error at: '`'"
+ ],
+ "warning": []
+ },
{
"query": "from index, other_index",
"error": [],
@@ -692,15534 +700,14644 @@
"warning": []
},
{
- "query": "row var = abs(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row abs(5)",
+ "query": "row var = 5 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = abs(to_integer(\"a\"))",
+ "query": "row var = NOT 5 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = abs(\"a\")",
+ "query": "row var = (numberField > 0)",
"error": [
- "Argument of [abs] must be [number], found value [\"a\"] type [string]"
+ "Unknown column [numberField]"
],
"warning": []
},
{
- "query": "row var = acos(5)",
+ "query": "row var = (NOT (5 > 0))",
"error": [],
"warning": []
},
{
- "query": "row acos(5)",
+ "query": "row var = to_ip(\"127.0.0.1\") > to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row var = acos(to_integer(\"a\"))",
+ "query": "row var = now() > now()",
"error": [],
"warning": []
},
{
- "query": "row var = acos(\"a\")",
+ "query": "row var = false > false",
"error": [
- "Argument of [acos] must be [number], found value [\"a\"] type [string]"
+ "Argument of [>] must be [number], found value [false] type [boolean]",
+ "Argument of [>] must be [number], found value [false] type [boolean]"
],
"warning": []
},
{
- "query": "row var = asin(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row asin(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = asin(to_integer(\"a\"))",
+ "query": "row var = now() > \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row var = asin(\"a\")",
- "error": [
- "Argument of [asin] must be [number], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = atan(5)",
+ "query": "row var = \"2022\" > now()",
"error": [],
"warning": []
},
{
- "query": "row atan(5)",
+ "query": "row var = 5 >= 0",
"error": [],
"warning": []
},
{
- "query": "row var = atan(to_integer(\"a\"))",
+ "query": "row var = NOT 5 >= 0",
"error": [],
"warning": []
},
{
- "query": "row var = atan(\"a\")",
+ "query": "row var = (numberField >= 0)",
"error": [
- "Argument of [atan] must be [number], found value [\"a\"] type [string]"
+ "Unknown column [numberField]"
],
"warning": []
},
{
- "query": "row var = atan2(5, 5)",
+ "query": "row var = (NOT (5 >= 0))",
"error": [],
"warning": []
},
{
- "query": "row atan2(5, 5)",
+ "query": "row var = to_ip(\"127.0.0.1\") >= to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row var = atan2(to_integer(\"a\"), to_integer(\"a\"))",
+ "query": "row var = now() >= now()",
"error": [],
"warning": []
},
{
- "query": "row var = atan2(\"a\", \"a\")",
+ "query": "row var = false >= false",
"error": [
- "Argument of [atan2] must be [number], found value [\"a\"] type [string]",
- "Argument of [atan2] must be [number], found value [\"a\"] type [string]"
+ "Argument of [>=] must be [number], found value [false] type [boolean]",
+ "Argument of [>=] must be [number], found value [false] type [boolean]"
],
"warning": []
},
{
- "query": "row var = case(true, \"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row case(true, \"a\")",
+ "query": "row var = now() >= \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row var = ceil(5)",
+ "query": "row var = \"2022\" >= now()",
"error": [],
"warning": []
},
{
- "query": "row ceil(5)",
+ "query": "row var = 5 < 0",
"error": [],
"warning": []
},
{
- "query": "row var = ceil(to_integer(\"a\"))",
+ "query": "row var = NOT 5 < 0",
"error": [],
"warning": []
},
{
- "query": "row var = ceil(\"a\")",
+ "query": "row var = (numberField < 0)",
"error": [
- "Argument of [ceil] must be [number], found value [\"a\"] type [string]"
+ "Unknown column [numberField]"
],
"warning": []
},
{
- "query": "row var = cidr_match(to_ip(\"127.0.0.1\"), \"a\")",
+ "query": "row var = (NOT (5 < 0))",
"error": [],
"warning": []
},
{
- "query": "row cidr_match(to_ip(\"127.0.0.1\"), \"a\")",
+ "query": "row var = to_ip(\"127.0.0.1\") < to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row var = cidr_match(to_ip(\"a\"), to_string(\"a\"))",
+ "query": "row var = now() < now()",
"error": [],
"warning": []
},
{
- "query": "row var = cidr_match(\"a\", 5)",
+ "query": "row var = false < false",
"error": [
- "Argument of [cidr_match] must be [ip], found value [\"a\"] type [string]",
- "Argument of [cidr_match] must be [string], found value [5] type [number]"
+ "Argument of [<] must be [number], found value [false] type [boolean]",
+ "Argument of [<] must be [number], found value [false] type [boolean]"
],
"warning": []
},
{
- "query": "row var = coalesce(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row coalesce(\"a\")",
+ "query": "row var = now() < \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row var = concat(\"a\", \"a\")",
+ "query": "row var = \"2022\" < now()",
"error": [],
"warning": []
},
{
- "query": "row concat(\"a\", \"a\")",
+ "query": "row var = 5 <= 0",
"error": [],
"warning": []
},
{
- "query": "row var = concat(to_string(\"a\"), to_string(\"a\"))",
+ "query": "row var = NOT 5 <= 0",
"error": [],
"warning": []
},
{
- "query": "row var = concat(5, 5)",
+ "query": "row var = (numberField <= 0)",
"error": [
- "Argument of [concat] must be [string], found value [5] type [number]"
+ "Unknown column [numberField]"
],
"warning": []
},
{
- "query": "row var = cos(5)",
+ "query": "row var = (NOT (5 <= 0))",
"error": [],
"warning": []
},
{
- "query": "row cos(5)",
+ "query": "row var = to_ip(\"127.0.0.1\") <= to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row var = cos(to_integer(\"a\"))",
+ "query": "row var = now() <= now()",
"error": [],
"warning": []
},
{
- "query": "row var = cos(\"a\")",
+ "query": "row var = false <= false",
"error": [
- "Argument of [cos] must be [number], found value [\"a\"] type [string]"
+ "Argument of [<=] must be [number], found value [false] type [boolean]",
+ "Argument of [<=] must be [number], found value [false] type [boolean]"
],
"warning": []
},
{
- "query": "row var = cosh(5)",
+ "query": "row var = now() <= \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row cosh(5)",
+ "query": "row var = \"2022\" <= now()",
"error": [],
"warning": []
},
{
- "query": "row var = cosh(to_integer(\"a\"))",
+ "query": "row var = 5 == 0",
"error": [],
"warning": []
},
{
- "query": "row var = cosh(\"a\")",
+ "query": "row var = NOT 5 == 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = (numberField == 0)",
"error": [
- "Argument of [cosh] must be [number], found value [\"a\"] type [string]"
+ "Unknown column [numberField]"
],
"warning": []
},
{
- "query": "row var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", now())",
+ "query": "row var = (NOT (5 == 0))",
"error": [],
"warning": []
},
{
- "query": "row date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", now())",
+ "query": "row var = to_ip(\"127.0.0.1\") == to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row var = date_format(now(), \"a\")",
+ "query": "row var = now() == now()",
"error": [],
"warning": []
},
{
- "query": "row date_format(now(), \"a\")",
+ "query": "row var = false == false",
"error": [],
"warning": []
},
{
- "query": "row var = date_parse(\"a\", \"a\")",
+ "query": "row var = now() == \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row date_parse(\"a\", \"a\")",
+ "query": "row var = \"2022\" == now()",
"error": [],
"warning": []
},
{
- "query": "row var = date_parse(to_string(\"a\"), to_string(\"a\"))",
+ "query": "row var = 5 != 0",
"error": [],
"warning": []
},
{
- "query": "row var = date_parse(5, 5)",
- "error": [
- "Argument of [date_parse] must be [string], found value [5] type [number]",
- "Argument of [date_parse] must be [string], found value [5] type [number]"
- ],
+ "query": "row var = NOT 5 != 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = date_trunc(1 year, now())",
- "error": [],
+ "query": "row var = (numberField != 0)",
+ "error": [
+ "Unknown column [numberField]"
+ ],
"warning": []
},
{
- "query": "row date_trunc(1 year, now())",
+ "query": "row var = (NOT (5 != 0))",
"error": [],
"warning": []
},
{
- "query": "row var = e()",
+ "query": "row var = to_ip(\"127.0.0.1\") != to_ip(\"127.0.0.1\")",
"error": [],
"warning": []
},
{
- "query": "row e()",
+ "query": "row var = now() != now()",
"error": [],
"warning": []
},
{
- "query": "row var = e()",
+ "query": "row var = false != false",
"error": [],
"warning": []
},
{
- "query": "row var = e()",
+ "query": "row var = now() != \"2022\"",
"error": [],
"warning": []
},
{
- "query": "row var = ends_with(\"a\", \"a\")",
+ "query": "row var = \"2022\" != now()",
"error": [],
"warning": []
},
{
- "query": "row ends_with(\"a\", \"a\")",
+ "query": "row var = 1 + 1",
"error": [],
"warning": []
},
{
- "query": "row var = ends_with(to_string(\"a\"), to_string(\"a\"))",
+ "query": "row var = (5 + 1)",
"error": [],
"warning": []
},
{
- "query": "row var = ends_with(5, 5)",
+ "query": "row var = now() + now()",
"error": [
- "Argument of [ends_with] must be [string], found value [5] type [number]",
- "Argument of [ends_with] must be [string], found value [5] type [number]"
+ "Argument of [+] must be [time_literal], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "row var = floor(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row floor(5)",
+ "query": "row var = 1 - 1",
"error": [],
"warning": []
},
{
- "query": "row var = floor(to_integer(\"a\"))",
+ "query": "row var = (5 - 1)",
"error": [],
"warning": []
},
{
- "query": "row var = floor(\"a\")",
+ "query": "row var = now() - now()",
"error": [
- "Argument of [floor] must be [number], found value [\"a\"] type [string]"
+ "Argument of [-] must be [time_literal], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "row var = greatest(\"a\")",
+ "query": "row var = 1 * 1",
"error": [],
"warning": []
},
{
- "query": "row greatest(\"a\")",
+ "query": "row var = (5 * 1)",
"error": [],
"warning": []
},
{
- "query": "row var = least(\"a\")",
- "error": [],
+ "query": "row var = now() * now()",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [now()] type [date]"
+ ],
"warning": []
},
{
- "query": "row least(\"a\")",
+ "query": "row var = 1 / 1",
"error": [],
"warning": []
},
{
- "query": "row var = left(\"a\", 5)",
+ "query": "row var = (5 / 1)",
"error": [],
"warning": []
},
{
- "query": "row left(\"a\", 5)",
+ "query": "row var = now() / now()",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [now()] type [date]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "row var = 1 % 1",
"error": [],
"warning": []
},
{
- "query": "row var = left(to_string(\"a\"), to_integer(\"a\"))",
+ "query": "row var = (5 % 1)",
"error": [],
"warning": []
},
{
- "query": "row var = left(5, \"a\")",
+ "query": "row var = now() % now()",
"error": [
- "Argument of [left] must be [string], found value [5] type [number]",
- "Argument of [left] must be [number], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "row var = length(\"a\")",
+ "query": "row var = \"a\" like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row length(\"a\")",
+ "query": "row var = \"a\" NOT like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row var = length(to_string(\"a\"))",
+ "query": "row var = NOT \"a\" like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row var = length(5)",
- "error": [
- "Argument of [length] must be [string], found value [5] type [number]"
- ],
+ "query": "row var = NOT \"a\" NOT like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "row var = log(5, 5)",
- "error": [],
+ "query": "row var = 5 like \"?a\"",
+ "error": [
+ "Argument of [like] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row log(5, 5)",
- "error": [],
+ "query": "row var = 5 NOT like \"?a\"",
+ "error": [
+ "Argument of [not_like] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row var = log(to_integer(\"a\"), to_integer(\"a\"))",
- "error": [],
+ "query": "row var = NOT 5 like \"?a\"",
+ "error": [
+ "Argument of [like] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row var = log(\"a\", \"a\")",
+ "query": "row var = NOT 5 NOT like \"?a\"",
"error": [
- "Argument of [log] must be [number], found value [\"a\"] type [string]",
- "Argument of [log] must be [number], found value [\"a\"] type [string]"
+ "Argument of [not_like] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "row var = log10(5)",
+ "query": "row var = \"a\" rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row log10(5)",
+ "query": "row var = \"a\" NOT rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row var = log10(to_integer(\"a\"))",
+ "query": "row var = NOT \"a\" rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "row var = log10(\"a\")",
- "error": [
- "Argument of [log10] must be [number], found value [\"a\"] type [string]"
- ],
+ "query": "row var = NOT \"a\" NOT rlike \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "row var = ltrim(\"a\")",
- "error": [],
+ "query": "row var = 5 rlike \"?a\"",
+ "error": [
+ "Argument of [rlike] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row ltrim(\"a\")",
- "error": [],
+ "query": "row var = 5 NOT rlike \"?a\"",
+ "error": [
+ "Argument of [not_rlike] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row var = ltrim(to_string(\"a\"))",
- "error": [],
+ "query": "row var = NOT 5 rlike \"?a\"",
+ "error": [
+ "Argument of [rlike] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "row var = ltrim(5)",
+ "query": "row var = NOT 5 NOT rlike \"?a\"",
"error": [
- "Argument of [ltrim] must be [string], found value [5] type [number]"
+ "Argument of [not_rlike] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "row var = mv_avg(5)",
+ "query": "row var = mv_sort([\"a\", \"b\"], \"bogus\")",
"error": [],
- "warning": []
+ "warning": [
+ "Invalid option [\"bogus\"] for mv_sort. Supported options: [\"asc\", \"desc\"]."
+ ]
},
{
- "query": "row mv_avg(5)",
+ "query": "row var = mv_sort([\"a\", \"b\"], \"ASC\")",
"error": [],
"warning": []
},
{
- "query": "row var = mv_avg(to_integer(\"a\"))",
+ "query": "row var = mv_sort([\"a\", \"b\"], \"DESC\")",
"error": [],
"warning": []
},
{
- "query": "row var = mv_avg(\"a\")",
+ "query": "row 1 anno",
"error": [
- "Argument of [mv_avg] must be [number], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 anno]"
],
"warning": []
},
{
- "query": "row var = mv_concat(\"a\", \"a\")",
- "error": [],
+ "query": "row var = 1 anno",
+ "error": [
+ "Unexpected time interval qualifier: 'anno'"
+ ],
"warning": []
},
{
- "query": "row mv_concat(\"a\", \"a\")",
- "error": [],
+ "query": "row now() + 1 anno",
+ "error": [
+ "Unexpected time interval qualifier: 'anno'"
+ ],
"warning": []
},
{
- "query": "row var = mv_concat(to_string(\"a\"), to_string(\"a\"))",
- "error": [],
+ "query": "row 1 year",
+ "error": [
+ "ROW does not support [date_period] in expression [1 year]"
+ ],
"warning": []
},
{
- "query": "row var = mv_concat(5, 5)",
+ "query": "row 1 year",
"error": [
- "Argument of [mv_concat] must be [string], found value [5] type [number]",
- "Argument of [mv_concat] must be [string], found value [5] type [number]"
+ "ROW does not support [date_period] in expression [1 year]"
],
"warning": []
},
{
- "query": "row var = mv_count(\"a\")",
+ "query": "row var = now() - 1 year",
"error": [],
"warning": []
},
{
- "query": "row mv_count(\"a\")",
+ "query": "row var = now() - 1 YEAR",
"error": [],
"warning": []
},
{
- "query": "row var = mv_dedupe(\"a\")",
+ "query": "row var = now() - 1 Year",
"error": [],
"warning": []
},
{
- "query": "row mv_dedupe(\"a\")",
+ "query": "row var = now() + 1 year",
"error": [],
"warning": []
},
{
- "query": "row var = mv_first(\"a\")",
- "error": [],
+ "query": "row 1 year + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "row mv_first(\"a\")",
- "error": [],
+ "query": "row var = now() * 1 year",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = mv_last(\"a\")",
- "error": [],
+ "query": "row var = now() / 1 year",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "row mv_last(\"a\")",
- "error": [],
+ "query": "row var = now() % 1 year",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = mv_max(\"a\")",
- "error": [],
+ "query": "row 1 years",
+ "error": [
+ "ROW does not support [date_period] in expression [1 years]"
+ ],
"warning": []
},
{
- "query": "row mv_max(\"a\")",
+ "query": "row 1 years",
+ "error": [
+ "ROW does not support [date_period] in expression [1 years]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "row var = now() - 1 years",
"error": [],
"warning": []
},
{
- "query": "row var = mv_median(5)",
+ "query": "row var = now() - 1 YEARS",
"error": [],
"warning": []
},
{
- "query": "row mv_median(5)",
+ "query": "row var = now() - 1 Years",
"error": [],
"warning": []
},
{
- "query": "row var = mv_median(to_integer(\"a\"))",
+ "query": "row var = now() + 1 years",
"error": [],
"warning": []
},
{
- "query": "row var = mv_median(\"a\")",
+ "query": "row 1 years + 1 year",
"error": [
- "Argument of [mv_median] must be [number], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 years] type [duration]"
],
"warning": []
},
{
- "query": "row var = mv_min(\"a\")",
- "error": [],
+ "query": "row var = now() * 1 years",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "row mv_min(\"a\")",
- "error": [],
+ "query": "row var = now() / 1 years",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = mv_slice(\"a\", 5, 5)",
- "error": [],
+ "query": "row var = now() % 1 years",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "row mv_slice(\"a\", 5, 5)",
- "error": [],
+ "query": "row 1 month",
+ "error": [
+ "ROW does not support [date_period] in expression [1 month]"
+ ],
"warning": []
},
{
- "query": "row var = mv_sort(\"a\", \"asc\")",
- "error": [],
+ "query": "row 1 month",
+ "error": [
+ "ROW does not support [date_period] in expression [1 month]"
+ ],
"warning": []
},
{
- "query": "row mv_sort(\"a\", \"asc\")",
+ "query": "row var = now() - 1 month",
"error": [],
"warning": []
},
{
- "query": "row var = mv_sum(5)",
+ "query": "row var = now() - 1 MONTH",
"error": [],
"warning": []
},
{
- "query": "row mv_sum(5)",
+ "query": "row var = now() - 1 Month",
"error": [],
"warning": []
},
{
- "query": "row var = mv_sum(to_integer(\"a\"))",
+ "query": "row var = now() + 1 month",
"error": [],
"warning": []
},
{
- "query": "row var = mv_sum(\"a\")",
+ "query": "row 1 month + 1 year",
"error": [
- "Argument of [mv_sum] must be [number], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 month] type [duration]"
],
"warning": []
},
{
- "query": "row var = mv_zip(\"a\", \"a\", \"a\")",
- "error": [],
+ "query": "row var = now() * 1 month",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "row mv_zip(\"a\", \"a\", \"a\")",
- "error": [],
+ "query": "row var = now() / 1 month",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = mv_zip(to_string(\"a\"), to_string(\"a\"), to_string(\"a\"))",
- "error": [],
+ "query": "row var = now() % 1 month",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = mv_zip(5, 5, 5)",
+ "query": "row 1 months",
"error": [
- "Argument of [mv_zip] must be [string], found value [5] type [number]",
- "Argument of [mv_zip] must be [string], found value [5] type [number]",
- "Argument of [mv_zip] must be [string], found value [5] type [number]"
+ "ROW does not support [date_period] in expression [1 months]"
],
"warning": []
},
{
- "query": "row var = now()",
- "error": [],
+ "query": "row 1 months",
+ "error": [
+ "ROW does not support [date_period] in expression [1 months]"
+ ],
"warning": []
},
{
- "query": "row now()",
+ "query": "row var = now() - 1 months",
"error": [],
"warning": []
},
{
- "query": "row var = now()",
+ "query": "row var = now() - 1 MONTHS",
"error": [],
"warning": []
},
{
- "query": "row var = now()",
+ "query": "row var = now() - 1 Months",
"error": [],
"warning": []
},
{
- "query": "row var = pi()",
+ "query": "row var = now() + 1 months",
"error": [],
"warning": []
},
{
- "query": "row pi()",
- "error": [],
+ "query": "row 1 months + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = pi()",
- "error": [],
+ "query": "row var = now() * 1 months",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = pi()",
- "error": [],
+ "query": "row var = now() / 1 months",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = pow(5, 5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row pow(5, 5)",
- "error": [],
+ "query": "row var = now() % 1 months",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = pow(to_integer(\"a\"), to_integer(\"a\"))",
- "error": [],
+ "query": "row 1 week",
+ "error": [
+ "ROW does not support [date_period] in expression [1 week]"
+ ],
"warning": []
},
{
- "query": "row var = pow(\"a\", \"a\")",
+ "query": "row 1 week",
"error": [
- "Argument of [pow] must be [number], found value [\"a\"] type [string]",
- "Argument of [pow] must be [number], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 week]"
],
"warning": []
},
{
- "query": "row var = replace(\"a\", \"a\", \"a\")",
+ "query": "row var = now() - 1 week",
"error": [],
"warning": []
},
{
- "query": "row replace(\"a\", \"a\", \"a\")",
+ "query": "row var = now() - 1 WEEK",
"error": [],
"warning": []
},
{
- "query": "row var = replace(to_string(\"a\"), to_string(\"a\"), to_string(\"a\"))",
+ "query": "row var = now() - 1 Week",
"error": [],
"warning": []
},
{
- "query": "row var = replace(5, 5, 5)",
- "error": [
- "Argument of [replace] must be [string], found value [5] type [number]",
- "Argument of [replace] must be [string], found value [5] type [number]",
- "Argument of [replace] must be [string], found value [5] type [number]"
- ],
+ "query": "row var = now() + 1 week",
+ "error": [],
"warning": []
},
{
- "query": "row var = right(\"a\", 5)",
- "error": [],
+ "query": "row 1 week + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "row right(\"a\", 5)",
- "error": [],
+ "query": "row var = now() * 1 week",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = right(to_string(\"a\"), to_integer(\"a\"))",
- "error": [],
+ "query": "row var = now() / 1 week",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = right(5, \"a\")",
+ "query": "row var = now() % 1 week",
"error": [
- "Argument of [right] must be [string], found value [5] type [number]",
- "Argument of [right] must be [number], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 week] type [duration]"
],
"warning": []
},
{
- "query": "row var = round(5, 5)",
- "error": [],
+ "query": "row 1 weeks",
+ "error": [
+ "ROW does not support [date_period] in expression [1 weeks]"
+ ],
"warning": []
},
{
- "query": "row round(5, 5)",
- "error": [],
+ "query": "row 1 weeks",
+ "error": [
+ "ROW does not support [date_period] in expression [1 weeks]"
+ ],
"warning": []
},
{
- "query": "row var = round(to_integer(\"a\"), to_integer(\"a\"))",
+ "query": "row var = now() - 1 weeks",
"error": [],
"warning": []
},
{
- "query": "row var = round(\"a\", \"a\")",
- "error": [
- "Argument of [round] must be [number], found value [\"a\"] type [string]",
- "Argument of [round] must be [number], found value [\"a\"] type [string]"
- ],
+ "query": "row var = now() - 1 WEEKS",
+ "error": [],
"warning": []
},
{
- "query": "row var = rtrim(\"a\")",
+ "query": "row var = now() - 1 Weeks",
"error": [],
"warning": []
},
{
- "query": "row rtrim(\"a\")",
+ "query": "row var = now() + 1 weeks",
"error": [],
"warning": []
},
{
- "query": "row var = rtrim(to_string(\"a\"))",
- "error": [],
+ "query": "row 1 weeks + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = rtrim(5)",
+ "query": "row var = now() * 1 weeks",
"error": [
- "Argument of [rtrim] must be [string], found value [5] type [number]"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 weeks] type [duration]"
],
"warning": []
},
{
- "query": "row var = signum(5)",
- "error": [],
+ "query": "row var = now() / 1 weeks",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "row signum(5)",
- "error": [],
+ "query": "row var = now() % 1 weeks",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = signum(to_integer(\"a\"))",
- "error": [],
+ "query": "row 1 day",
+ "error": [
+ "ROW does not support [date_period] in expression [1 day]"
+ ],
"warning": []
},
{
- "query": "row var = signum(\"a\")",
+ "query": "row 1 day",
"error": [
- "Argument of [signum] must be [number], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 day]"
],
"warning": []
},
{
- "query": "row var = sin(5)",
+ "query": "row var = now() - 1 day",
"error": [],
"warning": []
},
{
- "query": "row sin(5)",
+ "query": "row var = now() - 1 DAY",
"error": [],
"warning": []
},
{
- "query": "row var = sin(to_integer(\"a\"))",
+ "query": "row var = now() - 1 Day",
"error": [],
"warning": []
},
{
- "query": "row var = sin(\"a\")",
- "error": [
- "Argument of [sin] must be [number], found value [\"a\"] type [string]"
- ],
+ "query": "row var = now() + 1 day",
+ "error": [],
"warning": []
},
{
- "query": "row var = sinh(5)",
- "error": [],
+ "query": "row 1 day + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "row sinh(5)",
- "error": [],
+ "query": "row var = now() * 1 day",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = sinh(to_integer(\"a\"))",
- "error": [],
+ "query": "row var = now() / 1 day",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = sinh(\"a\")",
+ "query": "row var = now() % 1 day",
"error": [
- "Argument of [sinh] must be [number], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 day] type [duration]"
],
"warning": []
},
{
- "query": "row var = split(\"a\", \"a\")",
- "error": [],
+ "query": "row 1 days",
+ "error": [
+ "ROW does not support [date_period] in expression [1 days]"
+ ],
"warning": []
},
{
- "query": "row split(\"a\", \"a\")",
- "error": [],
+ "query": "row 1 days",
+ "error": [
+ "ROW does not support [date_period] in expression [1 days]"
+ ],
"warning": []
},
{
- "query": "row var = split(to_string(\"a\"), to_string(\"a\"))",
+ "query": "row var = now() - 1 days",
"error": [],
"warning": []
},
{
- "query": "row var = split(5, 5)",
- "error": [
- "Argument of [split] must be [string], found value [5] type [number]",
- "Argument of [split] must be [string], found value [5] type [number]"
- ],
+ "query": "row var = now() - 1 DAYS",
+ "error": [],
"warning": []
},
{
- "query": "row var = sqrt(5)",
+ "query": "row var = now() - 1 Days",
"error": [],
"warning": []
},
{
- "query": "row sqrt(5)",
+ "query": "row var = now() + 1 days",
"error": [],
"warning": []
},
{
- "query": "row var = sqrt(to_integer(\"a\"))",
- "error": [],
+ "query": "row 1 days + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = sqrt(\"a\")",
+ "query": "row var = now() * 1 days",
"error": [
- "Argument of [sqrt] must be [number], found value [\"a\"] type [string]"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 days] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() / 1 days",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() % 1 days",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(to_geopoint(\"a\"), to_geopoint(\"a\"))",
- "error": [],
+ "query": "row 1 hour",
+ "error": [
+ "ROW does not support [date_period] in expression [1 hour]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
+ "query": "row 1 hour",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 hour]"
],
"warning": []
},
{
- "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 hour",
"error": [],
"warning": []
},
{
- "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 HOUR",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Hour",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
- ],
+ "query": "row var = now() + 1 hour",
+ "error": [],
"warning": []
},
{
- "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 hour + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() * 1 hour",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
- "error": [],
+ "query": "row var = now() / 1 hour",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
+ "query": "row var = now() % 1 hour",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 hour] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 hours",
+ "error": [
+ "ROW does not support [date_period] in expression [1 hours]"
+ ],
"warning": []
},
{
- "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 hours",
+ "error": [
+ "ROW does not support [date_period] in expression [1 hours]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 hours",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 HOURS",
"error": [],
"warning": []
},
{
- "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Hours",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "query": "row var = now() + 1 hours",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
+ "query": "row 1 hours + 1 year",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 hours] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() * 1 hours",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() / 1 hours",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() % 1 hours",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
+ "query": "row 1 minute",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 minute]"
],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 minute",
+ "error": [
+ "ROW does not support [date_period] in expression [1 minute]"
+ ],
"warning": []
},
{
- "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 minute",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
+ "query": "row var = now() - 1 MINUTE",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Minute",
"error": [],
"warning": []
},
{
- "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "query": "row var = now() + 1 minute",
"error": [],
"warning": []
},
{
- "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 minute + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 minute] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_contains(\"a\", \"a\")",
+ "query": "row var = now() * 1 minute",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 minute] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() / 1 minute",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 minute] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() % 1 minute",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 minute] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geopoint(\"a\"), to_geopoint(\"a\"))",
- "error": [],
+ "query": "row 1 minutes",
+ "error": [
+ "ROW does not support [date_period] in expression [1 minutes]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
+ "query": "row 1 minutes",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 minutes]"
],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 minutes",
"error": [],
"warning": []
},
{
- "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 MINUTES",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Minutes",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
- "error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "query": "row var = now() + 1 minutes",
"error": [],
"warning": []
},
{
- "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 minutes + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 minutes] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
- "error": [],
+ "query": "row var = now() * 1 minutes",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 minutes] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
+ "query": "row var = now() / 1 minutes",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 minutes] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() % 1 minutes",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 minutes] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 second",
+ "error": [
+ "ROW does not support [date_period] in expression [1 second]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 second",
+ "error": [
+ "ROW does not support [date_period] in expression [1 second]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
- "error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
- ],
+ "query": "row var = now() - 1 second",
+ "error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 SECOND",
"error": [],
"warning": []
},
{
- "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Second",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "query": "row var = now() + 1 second",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
+ "query": "row 1 second + 1 year",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 second] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() * 1 second",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 second] type [duration]"
+ ],
"warning": []
},
{
- "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() / 1 second",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 second] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() % 1 second",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 second] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
+ "query": "row 1 seconds",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 seconds]"
],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 seconds",
+ "error": [
+ "ROW does not support [date_period] in expression [1 seconds]"
+ ],
"warning": []
},
{
- "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 seconds",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
+ "query": "row var = now() - 1 SECONDS",
"error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
- "error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
- ],
+ "query": "row var = now() - 1 Seconds",
+ "error": [],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "query": "row var = now() + 1 seconds",
"error": [],
"warning": []
},
{
- "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 seconds + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 seconds] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() * 1 seconds",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 seconds] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_disjoint(\"a\", \"a\")",
+ "query": "row var = now() / 1 seconds",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_geopoint(\"a\"), to_geopoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row var = now() % 1 seconds",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row 1 millisecond",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 millisecond]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row 1 millisecond",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 millisecond]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 millisecond",
"error": [],
"warning": []
},
{
- "query": "row var = st_intersects(\"a\", \"a\")",
- "error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 MILLISECOND",
"error": [],
"warning": []
},
{
- "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Millisecond",
"error": [],
"warning": []
},
{
- "query": "row var = st_intersects(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "query": "row var = now() + 1 millisecond",
"error": [],
"warning": []
},
{
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row 1 millisecond + 1 year",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row var = now() * 1 millisecond",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row var = now() / 1 millisecond",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_intersects(\"a\", \"a\")",
+ "query": "row var = now() % 1 millisecond",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(to_geopoint(\"a\"), to_geopoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(\"a\", \"a\")",
+ "query": "row 1 milliseconds",
"error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
+ "ROW does not support [date_period] in expression [1 milliseconds]"
],
"warning": []
},
{
- "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row 1 milliseconds",
+ "error": [
+ "ROW does not support [date_period] in expression [1 milliseconds]"
+ ],
"warning": []
},
{
- "query": "row var = st_within(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 milliseconds",
"error": [],
"warning": []
},
{
- "query": "row var = st_within(\"a\", \"a\")",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 MILLISECONDS",
"error": [],
"warning": []
},
{
- "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "query": "row var = now() - 1 Milliseconds",
"error": [],
"warning": []
},
{
- "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
+ "query": "row var = now() + 1 milliseconds",
"error": [],
"warning": []
},
{
- "query": "row var = st_within(\"a\", \"a\")",
+ "query": "row 1 milliseconds + 1 year",
"error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [+] must be [date], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() * 1 milliseconds",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 milliseconds] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
- "error": [],
+ "query": "row var = now() / 1 milliseconds",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 milliseconds] type [duration]"
+ ],
"warning": []
},
{
- "query": "row var = st_within(\"a\", \"a\")",
+ "query": "row var = now() % 1 milliseconds",
"error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
+ "query": "meta",
+ "error": [
+ "SyntaxError: missing 'functions' at ''"
+ ],
"warning": []
},
{
- "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "query": "meta functions",
"error": [],
"warning": []
},
{
- "query": "row var = st_within(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
- "error": [],
+ "query": "meta functions()",
+ "error": [
+ "SyntaxError: token recognition error at: '('",
+ "SyntaxError: token recognition error at: ')'"
+ ],
"warning": []
},
{
- "query": "row var = st_within(\"a\", \"a\")",
+ "query": "meta functions blah",
"error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
+ "SyntaxError: token recognition error at: 'b'",
+ "SyntaxError: token recognition error at: 'l'",
+ "SyntaxError: token recognition error at: 'a'",
+ "SyntaxError: token recognition error at: 'h'"
],
"warning": []
},
{
- "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(\"a\", \"a\")",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(\"a\", \"a\")",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_within(\"a\", \"a\")",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
- "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_x(to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_x(to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_x(to_geopoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_x(\"a\")",
- "error": [
- "Argument of [st_x] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_x(to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_x(to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_x(to_cartesianpoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_x(\"a\")",
- "error": [
- "Argument of [st_x] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_y(to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_y(to_geopoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_y(to_geopoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_y(\"a\")",
- "error": [
- "Argument of [st_y] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = st_y(to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row st_y(to_cartesianpoint(\"POINT (30 10)\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_y(to_cartesianpoint(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = st_y(\"a\")",
- "error": [
- "Argument of [st_y] must be [geo_point], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = starts_with(\"a\", \"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row starts_with(\"a\", \"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = starts_with(to_string(\"a\"), to_string(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = starts_with(5, 5)",
- "error": [
- "Argument of [starts_with] must be [string], found value [5] type [number]",
- "Argument of [starts_with] must be [string], found value [5] type [number]"
- ],
- "warning": []
- },
- {
- "query": "row var = substring(\"a\", 5, 5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row substring(\"a\", 5, 5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = substring(to_string(\"a\"), to_integer(\"a\"), to_integer(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = substring(5, \"a\", \"a\")",
- "error": [
- "Argument of [substring] must be [string], found value [5] type [number]",
- "Argument of [substring] must be [number], found value [\"a\"] type [string]",
- "Argument of [substring] must be [number], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = tan(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row tan(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tan(to_integer(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tan(\"a\")",
- "error": [
- "Argument of [tan] must be [number], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = tanh(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row tanh(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tanh(to_integer(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tanh(\"a\")",
- "error": [
- "Argument of [tanh] must be [number], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = tau()",
- "error": [],
- "warning": []
- },
- {
- "query": "row tau()",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tau()",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = tau()",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_boolean(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_boolean(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_bool(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_cartesianpoint(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_cartesianpoint(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_cartesianshape(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_cartesianshape(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_datetime(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_datetime(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_dt(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_degrees(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_degrees(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_degrees(to_integer(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_degrees(\"a\")",
- "error": [
- "Argument of [to_degrees] must be [number], found value [\"a\"] type [string]"
- ],
- "warning": []
- },
- {
- "query": "row var = to_double(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_double(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_dbl(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_geopoint(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_geopoint(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_geoshape(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_geoshape(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_integer(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_integer(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_int(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_ip(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_ip(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_long(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_long(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_lower(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_lower(\"a\")",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_lower(to_string(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_lower(5)",
+ "query": "meta info",
"error": [
- "Argument of [to_lower] must be [string], found value [5] type [number]"
+ "SyntaxError: token recognition error at: 'i'",
+ "SyntaxError: token recognition error at: 'n'",
+ "SyntaxError: token recognition error at: 'fo'",
+ "SyntaxError: missing 'functions' at ''"
],
"warning": []
},
{
- "query": "row var = to_radians(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row to_radians(5)",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_radians(to_integer(\"a\"))",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = to_radians(\"a\")",
+ "query": "show",
"error": [
- "Argument of [to_radians] must be [number], found value [\"a\"] type [string]"
+ "SyntaxError: missing 'info' at ''"
],
"warning": []
},
{
- "query": "row var = to_string(\"a\")",
- "error": [],
+ "query": "show functions",
+ "error": [
+ "SyntaxError: token recognition error at: 'f'",
+ "SyntaxError: token recognition error at: 'u'",
+ "SyntaxError: token recognition error at: 'n'",
+ "SyntaxError: token recognition error at: 'c'",
+ "SyntaxError: token recognition error at: 't'",
+ "SyntaxError: token recognition error at: 'io'",
+ "SyntaxError: token recognition error at: 'n'",
+ "SyntaxError: token recognition error at: 's'",
+ "SyntaxError: missing 'info' at ''"
+ ],
"warning": []
},
{
- "query": "row to_string(\"a\")",
+ "query": "show info",
"error": [],
"warning": []
},
{
- "query": "row var = to_str(\"a\")",
- "error": [],
+ "query": "show numberField",
+ "error": [
+ "SyntaxError: token recognition error at: 'n'",
+ "SyntaxError: token recognition error at: 'u'",
+ "SyntaxError: token recognition error at: 'm'",
+ "SyntaxError: token recognition error at: 'b'",
+ "SyntaxError: token recognition error at: 'e'",
+ "SyntaxError: token recognition error at: 'r'",
+ "SyntaxError: token recognition error at: 'F'",
+ "SyntaxError: token recognition error at: 'ie'",
+ "SyntaxError: token recognition error at: 'l'",
+ "SyntaxError: token recognition error at: 'd'",
+ "SyntaxError: missing 'info' at ''"
+ ],
"warning": []
},
{
- "query": "row var = to_unsigned_long(\"a\")",
- "error": [],
+ "query": "from index | limit ",
+ "error": [
+ "SyntaxError: missing INTEGER_LITERAL at ''"
+ ],
"warning": []
},
{
- "query": "row to_unsigned_long(\"a\")",
+ "query": "from index | limit 4 ",
"error": [],
"warning": []
},
{
- "query": "row var = to_ul(\"a\")",
- "error": [],
+ "query": "from index | limit 4.5",
+ "error": [
+ "SyntaxError: mismatched input '4.5' expecting INTEGER_LITERAL"
+ ],
"warning": []
},
{
- "query": "row var = to_ulong(\"a\")",
- "error": [],
+ "query": "from index | limit a",
+ "error": [
+ "SyntaxError: mismatched input 'a' expecting INTEGER_LITERAL"
+ ],
"warning": []
},
{
- "query": "row var = to_upper(\"a\")",
- "error": [],
+ "query": "from index | limit numberField",
+ "error": [
+ "SyntaxError: mismatched input 'numberField' expecting INTEGER_LITERAL"
+ ],
"warning": []
},
{
- "query": "row to_upper(\"a\")",
- "error": [],
+ "query": "from index | limit stringField",
+ "error": [
+ "SyntaxError: mismatched input 'stringField' expecting INTEGER_LITERAL"
+ ],
"warning": []
},
{
- "query": "row var = to_upper(to_string(\"a\"))",
+ "query": "from index | limit 4",
"error": [],
"warning": []
},
{
- "query": "row var = to_upper(5)",
+ "query": "from index | keep ",
"error": [
- "Argument of [to_upper] must be [string], found value [5] type [number]"
+ "SyntaxError: missing ID_PATTERN at ''"
],
"warning": []
},
{
- "query": "row var = to_version(\"a\")",
+ "query": "from index | keep stringField, numberField, dateField",
"error": [],
"warning": []
},
{
- "query": "row to_version(\"a\")",
+ "query": "from index | keep `stringField`, `numberField`, `dateField`",
"error": [],
"warning": []
},
{
- "query": "row var = to_ver(\"a\")",
- "error": [],
+ "query": "from index | keep 4.5",
+ "error": [
+ "SyntaxError: token recognition error at: '4'",
+ "SyntaxError: token recognition error at: '5'",
+ "SyntaxError: missing ID_PATTERN at '.'",
+ "SyntaxError: missing ID_PATTERN at ''"
+ ],
"warning": []
},
{
- "query": "row var = trim(\"a\")",
- "error": [],
+ "query": "from index | keep `4.5`",
+ "error": [
+ "Unknown column [4.5]"
+ ],
"warning": []
},
{
- "query": "row trim(\"a\")",
- "error": [],
+ "query": "from index | keep missingField, numberField, dateField",
+ "error": [
+ "Unknown column [missingField]"
+ ],
"warning": []
},
{
- "query": "row var = trim(to_string(\"a\"))",
+ "query": "from index | keep `any#Char$Field`",
"error": [],
"warning": []
},
{
- "query": "row var = trim(5)",
+ "query": "from index | project ",
"error": [
- "Argument of [trim] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
],
"warning": []
},
{
- "query": "row var = 5 > 0",
- "error": [],
+ "query": "from index | project stringField, numberField, dateField",
+ "error": [
+ "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
+ ],
"warning": []
},
{
- "query": "row var = NOT 5 > 0",
- "error": [],
+ "query": "from index | PROJECT stringField, numberField, dateField",
+ "error": [
+ "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
+ ],
"warning": []
},
{
- "query": "row var = (numberField > 0)",
+ "query": "from index | project missingField, numberField, dateField",
"error": [
- "Unknown column [numberField]"
+ "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
],
"warning": []
},
{
- "query": "row var = (NOT (5 > 0))",
+ "query": "from index | keep s*",
"error": [],
"warning": []
},
{
- "query": "row var = to_ip(\"127.0.0.1\") > to_ip(\"127.0.0.1\")",
+ "query": "from index | keep *Field",
"error": [],
"warning": []
},
{
- "query": "row var = now() > now()",
+ "query": "from index | keep s*Field",
"error": [],
"warning": []
},
{
- "query": "row var = false > false",
- "error": [
- "Argument of [>] must be [number], found value [false] type [boolean]",
- "Argument of [>] must be [number], found value [false] type [boolean]"
- ],
- "warning": []
- },
- {
- "query": "row var = now() > \"2022\"",
+ "query": "from index | keep string*Field",
"error": [],
"warning": []
},
{
- "query": "row var = \"2022\" > now()",
+ "query": "from index | keep s*, n*",
"error": [],
"warning": []
},
{
- "query": "row var = 5 >= 0",
- "error": [],
+ "query": "from index | keep m*",
+ "error": [
+ "Unknown column [m*]"
+ ],
"warning": []
},
{
- "query": "row var = NOT 5 >= 0",
- "error": [],
+ "query": "from index | keep *m",
+ "error": [
+ "Unknown column [*m]"
+ ],
"warning": []
},
{
- "query": "row var = (numberField >= 0)",
+ "query": "from index | keep d*m",
"error": [
- "Unknown column [numberField]"
+ "Unknown column [d*m]"
],
"warning": []
},
{
- "query": "row var = (NOT (5 >= 0))",
+ "query": "from unsupported_index | keep unsupported_field",
"error": [],
- "warning": []
+ "warning": [
+ "Field [unsupported_field] cannot be retrieved, it is unsupported or not indexed; returning null"
+ ]
},
{
- "query": "row var = to_ip(\"127.0.0.1\") >= to_ip(\"127.0.0.1\")",
+ "query": "FROM index | STATS ROUND(AVG(numberField * 1.5)), COUNT(*), MIN(numberField * 10) | KEEP `MIN(numberField * 10)`",
"error": [],
"warning": []
},
{
- "query": "row var = now() >= now()",
+ "query": "FROM index | STATS COUNT(*), MIN(numberField * 10), MAX(numberField)| KEEP `COUNT(*)`",
"error": [],
"warning": []
},
{
- "query": "row var = false >= false",
+ "query": "from index | drop ",
"error": [
- "Argument of [>=] must be [number], found value [false] type [boolean]",
- "Argument of [>=] must be [number], found value [false] type [boolean]"
+ "SyntaxError: missing ID_PATTERN at ''"
],
"warning": []
},
{
- "query": "row var = now() >= \"2022\"",
+ "query": "from index | drop stringField, numberField, dateField",
"error": [],
"warning": []
},
{
- "query": "row var = \"2022\" >= now()",
- "error": [],
+ "query": "from index | drop 4.5",
+ "error": [
+ "SyntaxError: token recognition error at: '4'",
+ "SyntaxError: token recognition error at: '5'",
+ "SyntaxError: missing ID_PATTERN at '.'",
+ "SyntaxError: missing ID_PATTERN at ''"
+ ],
"warning": []
},
{
- "query": "row var = 5 < 0",
- "error": [],
+ "query": "from index | drop missingField, numberField, dateField",
+ "error": [
+ "Unknown column [missingField]"
+ ],
"warning": []
},
{
- "query": "row var = NOT 5 < 0",
+ "query": "from index | drop `any#Char$Field`",
"error": [],
"warning": []
},
{
- "query": "row var = (numberField < 0)",
- "error": [
- "Unknown column [numberField]"
- ],
- "warning": []
- },
- {
- "query": "row var = (NOT (5 < 0))",
+ "query": "from index | drop s*",
"error": [],
"warning": []
},
{
- "query": "row var = to_ip(\"127.0.0.1\") < to_ip(\"127.0.0.1\")",
+ "query": "from index | drop s**Field",
"error": [],
"warning": []
},
{
- "query": "row var = now() < now()",
+ "query": "from index | drop *Field*",
"error": [],
"warning": []
},
{
- "query": "row var = false < false",
- "error": [
- "Argument of [<] must be [number], found value [false] type [boolean]",
- "Argument of [<] must be [number], found value [false] type [boolean]"
- ],
+ "query": "from index | drop s*F*d",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() < \"2022\"",
+ "query": "from index | drop *Field",
"error": [],
"warning": []
},
{
- "query": "row var = \"2022\" < now()",
+ "query": "from index | drop s*Field",
"error": [],
"warning": []
},
{
- "query": "row var = 5 <= 0",
+ "query": "from index | drop string*Field",
"error": [],
"warning": []
},
{
- "query": "row var = NOT 5 <= 0",
+ "query": "from index | drop s*, n*",
"error": [],
"warning": []
},
{
- "query": "row var = (numberField <= 0)",
+ "query": "from index | drop m*",
"error": [
- "Unknown column [numberField]"
+ "Unknown column [m*]"
],
"warning": []
},
{
- "query": "row var = (NOT (5 <= 0))",
- "error": [],
+ "query": "from index | drop *m",
+ "error": [
+ "Unknown column [*m]"
+ ],
"warning": []
},
{
- "query": "row var = to_ip(\"127.0.0.1\") <= to_ip(\"127.0.0.1\")",
- "error": [],
+ "query": "from index | drop d*m",
+ "error": [
+ "Unknown column [d*m]"
+ ],
"warning": []
},
{
- "query": "row var = now() <= now()",
- "error": [],
+ "query": "from index | drop *",
+ "error": [
+ "Removing all fields is not allowed [*]"
+ ],
"warning": []
},
{
- "query": "row var = false <= false",
+ "query": "from index | drop stringField, *",
"error": [
- "Argument of [<=] must be [number], found value [false] type [boolean]",
- "Argument of [<=] must be [number], found value [false] type [boolean]"
+ "Removing all fields is not allowed [*]"
],
"warning": []
},
{
- "query": "row var = now() <= \"2022\"",
+ "query": "from index | drop @timestamp",
"error": [],
- "warning": []
+ "warning": [
+ "Drop [@timestamp] will remove all time filters to the search results"
+ ]
},
{
- "query": "row var = \"2022\" <= now()",
+ "query": "from index | drop stringField, @timestamp",
"error": [],
- "warning": []
+ "warning": [
+ "Drop [@timestamp] will remove all time filters to the search results"
+ ]
},
{
- "query": "row var = 5 == 0",
+ "query": "FROM index | STATS ROUND(AVG(numberField * 1.5)), COUNT(*), MIN(numberField * 10) | DROP `MIN(numberField * 10)`",
"error": [],
"warning": []
},
{
- "query": "row var = NOT 5 == 0",
+ "query": "FROM index | STATS COUNT(*), MIN(numberField * 10), MAX(numberField)| DROP `COUNT(*)`",
"error": [],
"warning": []
},
{
- "query": "row var = (numberField == 0)",
+ "query": "from a_index | mv_expand ",
"error": [
- "Unknown column [numberField]"
+ "SyntaxError: missing {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} at ''"
],
"warning": []
},
{
- "query": "row var = (NOT (5 == 0))",
+ "query": "from a_index | mv_expand stringField",
"error": [],
"warning": []
},
{
- "query": "row var = to_ip(\"127.0.0.1\") == to_ip(\"127.0.0.1\")",
+ "query": "from a_index | mv_expand numberField",
"error": [],
"warning": []
},
{
- "query": "row var = now() == now()",
+ "query": "from a_index | mv_expand dateField",
"error": [],
"warning": []
},
{
- "query": "row var = false == false",
+ "query": "from a_index | mv_expand booleanField",
"error": [],
"warning": []
},
{
- "query": "row var = now() == \"2022\"",
+ "query": "from a_index | mv_expand ipField",
"error": [],
"warning": []
},
{
- "query": "row var = \"2022\" == now()",
- "error": [],
+ "query": "from a_index | mv_expand numberField, b",
+ "error": [
+ "SyntaxError: token recognition error at: ','",
+ "SyntaxError: extraneous input 'b' expecting "
+ ],
"warning": []
},
{
- "query": "row var = 5 != 0",
+ "query": "row a = \"a\" | mv_expand a",
"error": [],
"warning": []
},
{
- "query": "row var = NOT 5 != 0",
+ "query": "row a = [1, 2, 3] | mv_expand a",
"error": [],
"warning": []
},
{
- "query": "row var = (numberField != 0)",
- "error": [
- "Unknown column [numberField]"
- ],
- "warning": []
- },
- {
- "query": "row var = (NOT (5 != 0))",
+ "query": "row a = [true, false] | mv_expand a",
"error": [],
"warning": []
},
{
- "query": "row var = to_ip(\"127.0.0.1\") != to_ip(\"127.0.0.1\")",
+ "query": "row a = [\"a\", \"b\"] | mv_expand a",
"error": [],
"warning": []
},
{
- "query": "row var = now() != now()",
- "error": [],
+ "query": "from a_index | rename",
+ "error": [
+ "SyntaxError: mismatched input '' expecting ID_PATTERN"
+ ],
"warning": []
},
{
- "query": "row var = false != false",
- "error": [],
+ "query": "from a_index | rename stringField",
+ "error": [
+ "SyntaxError: mismatched input '' expecting 'as'"
+ ],
"warning": []
},
{
- "query": "row var = now() != \"2022\"",
- "error": [],
+ "query": "from a_index | rename a",
+ "error": [
+ "SyntaxError: mismatched input '' expecting 'as'",
+ "Unknown column [a]"
+ ],
"warning": []
},
{
- "query": "row var = \"2022\" != now()",
- "error": [],
+ "query": "from a_index | rename stringField as",
+ "error": [
+ "SyntaxError: missing ID_PATTERN at ''"
+ ],
"warning": []
},
{
- "query": "row var = 1 + 1",
- "error": [],
+ "query": "from a_index | rename missingField as",
+ "error": [
+ "SyntaxError: missing ID_PATTERN at ''",
+ "Unknown column [missingField]"
+ ],
"warning": []
},
{
- "query": "row var = (5 + 1)",
+ "query": "from a_index | rename stringField as b",
"error": [],
"warning": []
},
{
- "query": "row var = now() + now()",
- "error": [
- "Argument of [+] must be [time_literal], found value [now()] type [date]"
- ],
+ "query": "from a_index | rename stringField AS b",
+ "error": [],
"warning": []
},
{
- "query": "row var = 1 - 1",
+ "query": "from a_index | rename stringField As b",
"error": [],
"warning": []
},
{
- "query": "row var = (5 - 1)",
+ "query": "from a_index | rename stringField As b, b AS c",
"error": [],
"warning": []
},
{
- "query": "row var = now() - now()",
+ "query": "from a_index | rename fn() as a",
"error": [
- "Argument of [-] must be [time_literal], found value [now()] type [date]"
+ "SyntaxError: token recognition error at: '('",
+ "SyntaxError: token recognition error at: ')'",
+ "Unknown column [fn]",
+ "Unknown column [a]"
],
"warning": []
},
{
- "query": "row var = 1 * 1",
+ "query": "from a_index | eval numberField + 1 | rename `numberField + 1` as a",
"error": [],
"warning": []
},
{
- "query": "row var = (5 * 1)",
+ "query": "from a_index | stats avg(numberField) | rename `avg(numberField)` as avg0",
"error": [],
"warning": []
},
{
- "query": "row var = now() * now()",
+ "query": "from a_index |eval numberField + 1 | rename `numberField + 1` as ",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [now()] type [date]"
+ "SyntaxError: missing ID_PATTERN at ''"
],
"warning": []
},
{
- "query": "row var = 1 / 1",
- "error": [],
+ "query": "from a_index | rename s* as strings",
+ "error": [
+ "Using wildcards (*) in RENAME is not allowed [s*]",
+ "Unknown column [strings]"
+ ],
"warning": []
},
{
- "query": "row var = (5 / 1)",
+ "query": "row a = 10 | rename a as `this``is fine`",
"error": [],
"warning": []
},
{
- "query": "row var = now() / now()",
+ "query": "row a = 10 | rename a as this is fine",
"error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [now()] type [date]"
+ "SyntaxError: mismatched input 'is' expecting "
],
"warning": []
},
{
- "query": "row var = 1 % 1",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = (5 % 1)",
- "error": [],
+ "query": "from a_index | dissect",
+ "error": [
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ ],
"warning": []
},
{
- "query": "row var = now() % now()",
+ "query": "from a_index | dissect stringField",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [now()] type [date]"
+ "SyntaxError: missing QUOTED_STRING at ''"
],
"warning": []
},
{
- "query": "row var = \"a\" like \"?a\"",
- "error": [],
+ "query": "from a_index | dissect stringField 2",
+ "error": [
+ "SyntaxError: mismatched input '2' expecting QUOTED_STRING"
+ ],
"warning": []
},
{
- "query": "row var = \"a\" NOT like \"?a\"",
- "error": [],
+ "query": "from a_index | dissect stringField .",
+ "error": [
+ "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
+ "Unknown column [stringField.]"
+ ],
"warning": []
},
{
- "query": "row var = NOT \"a\" like \"?a\"",
- "error": [],
+ "query": "from a_index | dissect stringField %a",
+ "error": [
+ "SyntaxError: mismatched input '%' expecting QUOTED_STRING",
+ "SyntaxError: mismatched input '' expecting '='"
+ ],
"warning": []
},
{
- "query": "row var = NOT \"a\" NOT like \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\"",
"error": [],
"warning": []
},
{
- "query": "row var = 5 like \"?a\"",
+ "query": "from a_index | dissect numberField \"%{firstWord}\"",
"error": [
- "Argument of [like] must be [string], found value [5] type [number]"
+ "DISSECT only supports string type values, found [numberField] of type [number]"
],
"warning": []
},
{
- "query": "row var = 5 NOT like \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\" option ",
"error": [
- "Argument of [not_like] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input '' expecting '='"
],
"warning": []
},
{
- "query": "row var = NOT 5 like \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\" option = ",
"error": [
- "Argument of [like] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', 'null', '?', 'true', '+', '-', OPENING_BRACKET}",
+ "Invalid option for DISSECT: [option]"
],
"warning": []
},
{
- "query": "row var = NOT 5 NOT like \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\" option = 1",
"error": [
- "Argument of [not_like] must be [string], found value [5] type [number]"
+ "Invalid option for DISSECT: [option]"
],
"warning": []
},
{
- "query": "row var = \"a\" rlike \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\" append_separator = \"-\"",
"error": [],
"warning": []
},
{
- "query": "row var = \"a\" NOT rlike \"?a\"",
- "error": [],
+ "query": "from a_index | dissect stringField \"%{firstWord}\" ignore_missing = true",
+ "error": [
+ "Invalid option for DISSECT: [ignore_missing]"
+ ],
"warning": []
},
{
- "query": "row var = NOT \"a\" rlike \"?a\"",
- "error": [],
+ "query": "from a_index | dissect stringField \"%{firstWord}\" append_separator = true",
+ "error": [
+ "Invalid value for DISSECT append_separator: expected a string, but was [true]"
+ ],
"warning": []
},
{
- "query": "row var = NOT \"a\" NOT rlike \"?a\"",
+ "query": "from a_index | dissect stringField \"%{firstWord}\" | keep firstWord",
"error": [],
"warning": []
},
{
- "query": "row var = 5 rlike \"?a\"",
+ "query": "from a_index | grok",
"error": [
- "Argument of [rlike] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "row var = 5 NOT rlike \"?a\"",
+ "query": "from a_index | grok stringField",
"error": [
- "Argument of [not_rlike] must be [string], found value [5] type [number]"
+ "SyntaxError: missing QUOTED_STRING at ''"
],
"warning": []
},
{
- "query": "row var = NOT 5 rlike \"?a\"",
+ "query": "from a_index | grok stringField 2",
"error": [
- "Argument of [rlike] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input '2' expecting QUOTED_STRING"
],
"warning": []
},
{
- "query": "row var = NOT 5 NOT rlike \"?a\"",
+ "query": "from a_index | grok stringField .",
"error": [
- "Argument of [not_rlike] must be [string], found value [5] type [number]"
+ "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
+ "Unknown column [stringField.]"
],
"warning": []
},
{
- "query": "row var = mv_sort([\"a\", \"b\"], \"bogus\")",
- "error": [],
- "warning": [
- "Invalid option [\"bogus\"] for mv_sort. Supported options: [\"asc\", \"desc\"]."
- ]
- },
- {
- "query": "row var = mv_sort([\"a\", \"b\"], \"ASC\")",
- "error": [],
+ "query": "from a_index | grok stringField %a",
+ "error": [
+ "SyntaxError: mismatched input '%' expecting QUOTED_STRING"
+ ],
"warning": []
},
{
- "query": "row var = mv_sort([\"a\", \"b\"], \"DESC\")",
+ "query": "from a_index | grok stringField \"%{firstWord}\"",
"error": [],
"warning": []
},
{
- "query": "row 1 anno",
- "error": [
- "ROW does not support [date_period] in expression [1 anno]"
- ],
- "warning": []
- },
- {
- "query": "row var = 1 anno",
+ "query": "from a_index | grok numberField \"%{firstWord}\"",
"error": [
- "Unexpected time interval qualifier: 'anno'"
+ "GROK only supports string type values, found [numberField] of type [number]"
],
"warning": []
},
{
- "query": "row now() + 1 anno",
- "error": [
- "Unexpected time interval qualifier: 'anno'"
- ],
+ "query": "from a_index | grok stringField \"%{firstWord}\" | keep firstWord",
+ "error": [],
"warning": []
},
{
- "query": "row 1 year",
+ "query": "from a_index | where b",
"error": [
- "ROW does not support [date_period] in expression [1 year]"
+ "Unknown column [b]"
],
"warning": []
},
{
- "query": "row 1 year",
- "error": [
- "ROW does not support [date_period] in expression [1 year]"
- ],
+ "query": "from a_index | where true",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 year",
+ "query": "from a_index | where NOT true",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 YEAR",
+ "query": "from a_index | where false",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Year",
+ "query": "from a_index | where NOT false",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 year",
+ "query": "from a_index | where 1 > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 year + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | where NOT 1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 year",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | where +1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 year",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | where NOT +1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 year",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | where 1 * 1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 years",
- "error": [
- "ROW does not support [date_period] in expression [1 years]"
- ],
+ "query": "from a_index | where NOT 1 * 1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 years",
- "error": [
- "ROW does not support [date_period] in expression [1 years]"
- ],
+ "query": "from a_index | where -1 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 years",
+ "query": "from a_index | where NOT -1 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 YEARS",
+ "query": "from a_index | where 1 / 1 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Years",
+ "query": "from a_index | where NOT 1 / 1 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 years",
+ "query": "from a_index | where 1.0 > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 years + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | where NOT 1.0 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 years",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | where 1.5 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 years",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | where NOT 1.5 > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 years",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | where numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 month",
- "error": [
- "ROW does not support [date_period] in expression [1 month]"
- ],
+ "query": "from a_index | where NOT numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 month",
- "error": [
- "ROW does not support [date_period] in expression [1 month]"
- ],
+ "query": "from a_index | where (numberField > 0)",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 month",
+ "query": "from a_index | where (NOT (numberField > 0))",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 MONTH",
+ "query": "from a_index | where 1 > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Month",
+ "query": "from a_index | where stringField > stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 month",
+ "query": "from a_index | where numberField > numberField",
"error": [],
"warning": []
},
{
- "query": "row 1 month + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | where dateField > dateField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 month",
+ "query": "from a_index | where booleanField > booleanField",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 month] type [duration]"
+ "Argument of [>] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [>] must be [number], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "row var = now() / 1 month",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | where ipField > ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 month",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | where numberField >= 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 months",
- "error": [
- "ROW does not support [date_period] in expression [1 months]"
- ],
+ "query": "from a_index | where NOT numberField >= 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 months",
- "error": [
- "ROW does not support [date_period] in expression [1 months]"
- ],
+ "query": "from a_index | where (numberField >= 0)",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 months",
+ "query": "from a_index | where (NOT (numberField >= 0))",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 MONTHS",
+ "query": "from a_index | where 1 >= 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Months",
+ "query": "from a_index | where stringField >= stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 months",
+ "query": "from a_index | where numberField >= numberField",
"error": [],
"warning": []
},
{
- "query": "row 1 months + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 months] type [duration]"
- ],
+ "query": "from a_index | where dateField >= dateField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 months",
+ "query": "from a_index | where booleanField >= booleanField",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 months] type [duration]"
+ "Argument of [>=] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [>=] must be [number], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "row var = now() / 1 months",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 months] type [duration]"
- ],
+ "query": "from a_index | where ipField >= ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 months",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 months] type [duration]"
- ],
+ "query": "from a_index | where numberField < 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 week",
- "error": [
- "ROW does not support [date_period] in expression [1 week]"
- ],
+ "query": "from a_index | where NOT numberField < 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 week",
- "error": [
- "ROW does not support [date_period] in expression [1 week]"
- ],
+ "query": "from a_index | where (numberField < 0)",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 week",
+ "query": "from a_index | where (NOT (numberField < 0))",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 WEEK",
+ "query": "from a_index | where 1 < 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Week",
+ "query": "from a_index | where stringField < stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 week",
+ "query": "from a_index | where numberField < numberField",
"error": [],
"warning": []
},
{
- "query": "row 1 week + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 week] type [duration]"
- ],
+ "query": "from a_index | where dateField < dateField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 week",
+ "query": "from a_index | where booleanField < booleanField",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 week] type [duration]"
+ "Argument of [<] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [<] must be [number], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "row var = now() / 1 week",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 week] type [duration]"
- ],
+ "query": "from a_index | where ipField < ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 week",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 week] type [duration]"
- ],
+ "query": "from a_index | where numberField <= 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 weeks",
- "error": [
- "ROW does not support [date_period] in expression [1 weeks]"
- ],
+ "query": "from a_index | where NOT numberField <= 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 weeks",
- "error": [
- "ROW does not support [date_period] in expression [1 weeks]"
- ],
+ "query": "from a_index | where (numberField <= 0)",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 weeks",
+ "query": "from a_index | where (NOT (numberField <= 0))",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 WEEKS",
+ "query": "from a_index | where 1 <= 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Weeks",
+ "query": "from a_index | where stringField <= stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 weeks",
+ "query": "from a_index | where numberField <= numberField",
"error": [],
"warning": []
},
{
- "query": "row 1 weeks + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 weeks] type [duration]"
- ],
+ "query": "from a_index | where dateField <= dateField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 weeks",
+ "query": "from a_index | where booleanField <= booleanField",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 weeks] type [duration]"
+ "Argument of [<=] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [<=] must be [number], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "row var = now() / 1 weeks",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 weeks] type [duration]"
- ],
+ "query": "from a_index | where ipField <= ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 weeks",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 weeks] type [duration]"
- ],
+ "query": "from a_index | where numberField == 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where NOT numberField == 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 day",
- "error": [
- "ROW does not support [date_period] in expression [1 day]"
- ],
+ "query": "from a_index | where (numberField == 0)",
+ "error": [],
"warning": []
},
{
- "query": "row 1 day",
- "error": [
- "ROW does not support [date_period] in expression [1 day]"
- ],
+ "query": "from a_index | where (NOT (numberField == 0))",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 day",
+ "query": "from a_index | where 1 == 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 DAY",
+ "query": "from a_index | where stringField == stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Day",
+ "query": "from a_index | where numberField == numberField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 day",
+ "query": "from a_index | where dateField == dateField",
"error": [],
"warning": []
},
{
- "query": "row 1 day + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | where booleanField == booleanField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 day",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | where ipField == ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 day",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | where numberField != 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 day",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | where NOT numberField != 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 days",
- "error": [
- "ROW does not support [date_period] in expression [1 days]"
- ],
+ "query": "from a_index | where (numberField != 0)",
+ "error": [],
"warning": []
},
{
- "query": "row 1 days",
- "error": [
- "ROW does not support [date_period] in expression [1 days]"
- ],
+ "query": "from a_index | where (NOT (numberField != 0))",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 days",
+ "query": "from a_index | where 1 != 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 DAYS",
+ "query": "from a_index | where stringField != stringField",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Days",
+ "query": "from a_index | where numberField != numberField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 days",
+ "query": "from a_index | where dateField != dateField",
"error": [],
"warning": []
},
{
- "query": "row 1 days + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | where booleanField != booleanField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 days",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | where ipField != ipField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 days",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | where - numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 days",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | where - round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 hour",
- "error": [
- "ROW does not support [date_period] in expression [1 hour]"
- ],
+ "query": "from a_index | where 1 + - numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 hour",
- "error": [
- "ROW does not support [date_period] in expression [1 hour]"
- ],
+ "query": "from a_index | where 1 - numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 hour",
+ "query": "from a_index | where - numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 HOUR",
+ "query": "from a_index | where - round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Hour",
+ "query": "from a_index | where 1 + - numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 hour",
+ "query": "from a_index | where 1 - numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 hour + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 hour] type [duration]"
- ],
+ "query": "from a_index | where + numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 hour",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "from a_index | where + round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 hour",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "from a_index | where 1 + + numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 hour",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "from a_index | where 1 + numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 hours",
- "error": [
- "ROW does not support [date_period] in expression [1 hours]"
- ],
+ "query": "from a_index | where + numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 hours",
- "error": [
- "ROW does not support [date_period] in expression [1 hours]"
- ],
+ "query": "from a_index | where + round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 hours",
+ "query": "from a_index | where 1 + + numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 HOURS",
+ "query": "from a_index | where 1 + numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Hours",
+ "query": "from a_index | where not booleanField",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 hours",
+ "query": "from a_index | where -- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 hours + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 hours] type [duration]"
- ],
+ "query": "from a_index | where -- round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 hours",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "from a_index | where 1 + -- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 hours",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "from a_index | where 1 -- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 hours",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "from a_index | where -+ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 minute",
- "error": [
- "ROW does not support [date_period] in expression [1 minute]"
- ],
+ "query": "from a_index | where -+ round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 minute",
- "error": [
- "ROW does not support [date_period] in expression [1 minute]"
- ],
+ "query": "from a_index | where 1 + -+ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 minute",
+ "query": "from a_index | where 1 -+ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 MINUTE",
+ "query": "from a_index | where +- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Minute",
+ "query": "from a_index | where +- round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 minute",
+ "query": "from a_index | where 1 + +- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 minute + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | where 1 +- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 minute",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | where ++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 minute",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | where ++ round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 minute",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | where 1 + ++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 minutes",
- "error": [
- "ROW does not support [date_period] in expression [1 minutes]"
- ],
+ "query": "from a_index | where 1 ++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 minutes",
- "error": [
- "ROW does not support [date_period] in expression [1 minutes]"
- ],
+ "query": "from a_index | where not not booleanField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 minutes",
+ "query": "from a_index | where --- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 MINUTES",
+ "query": "from a_index | where --- round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Minutes",
+ "query": "from a_index | where 1 + --- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 minutes",
+ "query": "from a_index | where 1 --- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 minutes + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | where -+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 minutes",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | where -+- round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 minutes",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | where 1 + -+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 minutes",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | where 1 -+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 second",
- "error": [
- "ROW does not support [date_period] in expression [1 second]"
- ],
+ "query": "from a_index | where +-+ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 second",
- "error": [
- "ROW does not support [date_period] in expression [1 second]"
- ],
+ "query": "from a_index | where +-+ round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 second",
+ "query": "from a_index | where 1 + +-+ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 SECOND",
+ "query": "from a_index | where 1 +-+ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Second",
+ "query": "from a_index | where +++ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 second",
+ "query": "from a_index | where +++ round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 second + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | where 1 + +++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 second",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | where 1 +++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 second",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | where not not not booleanField",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 second",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | where ---- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 seconds",
- "error": [
- "ROW does not support [date_period] in expression [1 seconds]"
- ],
+ "query": "from a_index | where ---- round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 seconds",
- "error": [
- "ROW does not support [date_period] in expression [1 seconds]"
- ],
+ "query": "from a_index | where 1 + ---- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 seconds",
+ "query": "from a_index | where 1 ---- numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 SECONDS",
+ "query": "from a_index | where -+-+ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Seconds",
+ "query": "from a_index | where -+-+ round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 seconds",
+ "query": "from a_index | where 1 + -+-+ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row 1 seconds + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | where 1 -+-+ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() * 1 seconds",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | where +-+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() / 1 seconds",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | where +-+- round(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 seconds",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | where 1 + +-+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 millisecond",
- "error": [
- "ROW does not support [date_period] in expression [1 millisecond]"
- ],
+ "query": "from a_index | where 1 +-+- numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row 1 millisecond",
- "error": [
- "ROW does not support [date_period] in expression [1 millisecond]"
- ],
+ "query": "from a_index | where ++++ numberField > 0",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() - 1 millisecond",
+ "query": "from a_index | where ++++ round(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 MILLISECOND",
+ "query": "from a_index | where 1 + ++++ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() - 1 Millisecond",
+ "query": "from a_index | where 1 ++++ numberField > 0",
"error": [],
"warning": []
},
{
- "query": "row var = now() + 1 millisecond",
+ "query": "from a_index | where not not not not booleanField",
"error": [],
"warning": []
},
{
- "query": "row 1 millisecond + 1 year",
+ "query": "from a_index | where *+ numberField",
"error": [
- "Argument of [+] must be [date], found value [1 millisecond] type [duration]"
+ "SyntaxError: extraneous input '*' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "row var = now() * 1 millisecond",
+ "query": "from a_index | where /+ numberField",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 millisecond] type [duration]"
+ "SyntaxError: extraneous input '/' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "row var = now() / 1 millisecond",
+ "query": "from a_index | where %+ numberField",
"error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 millisecond] type [duration]"
+ "SyntaxError: extraneous input '%' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "row var = now() % 1 millisecond",
+ "query": "from a_index | where numberField =~ 0",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 millisecond] type [duration]"
+ "Argument of [=~] must be [string], found value [numberField] type [number]",
+ "Argument of [=~] must be [string], found value [0] type [number]"
],
"warning": []
},
{
- "query": "row 1 milliseconds",
+ "query": "from a_index | where NOT numberField =~ 0",
"error": [
- "ROW does not support [date_period] in expression [1 milliseconds]"
+ "Argument of [=~] must be [string], found value [numberField] type [number]",
+ "Argument of [=~] must be [string], found value [0] type [number]"
],
"warning": []
},
{
- "query": "row 1 milliseconds",
+ "query": "from a_index | where (numberField =~ 0)",
"error": [
- "ROW does not support [date_period] in expression [1 milliseconds]"
+ "Argument of [=~] must be [string], found value [numberField] type [number]",
+ "Argument of [=~] must be [string], found value [0] type [number]"
],
"warning": []
},
{
- "query": "row var = now() - 1 milliseconds",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = now() - 1 MILLISECONDS",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = now() - 1 Milliseconds",
- "error": [],
- "warning": []
- },
- {
- "query": "row var = now() + 1 milliseconds",
- "error": [],
+ "query": "from a_index | where (NOT (numberField =~ 0))",
+ "error": [
+ "Argument of [=~] must be [string], found value [numberField] type [number]",
+ "Argument of [=~] must be [string], found value [0] type [number]"
+ ],
"warning": []
},
{
- "query": "row 1 milliseconds + 1 year",
+ "query": "from a_index | where 1 =~ 0",
"error": [
- "Argument of [+] must be [date], found value [1 milliseconds] type [duration]"
+ "Argument of [=~] must be [string], found value [1] type [number]",
+ "Argument of [=~] must be [string], found value [0] type [number]"
],
"warning": []
},
{
- "query": "row var = now() * 1 milliseconds",
+ "query": "from a_index | eval stringField =~ 0",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 milliseconds] type [duration]"
+ "Argument of [=~] must be [string], found value [0] type [number]"
],
"warning": []
},
{
- "query": "row var = now() / 1 milliseconds",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 milliseconds] type [duration]"
- ],
+ "query": "from a_index | where stringField like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "row var = now() % 1 milliseconds",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 milliseconds] type [duration]"
- ],
+ "query": "from a_index | where stringField NOT like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "meta",
- "error": [
- "SyntaxError: missing 'functions' at ''"
- ],
+ "query": "from a_index | where NOT stringField like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "meta functions",
+ "query": "from a_index | where NOT stringField NOT like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "meta functions()",
+ "query": "from a_index | where numberField like \"?a\"",
"error": [
- "SyntaxError: token recognition error at: '('",
- "SyntaxError: token recognition error at: ')'"
+ "Argument of [like] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "meta functions blah",
+ "query": "from a_index | where numberField NOT like \"?a\"",
"error": [
- "SyntaxError: token recognition error at: 'b'",
- "SyntaxError: token recognition error at: 'l'",
- "SyntaxError: token recognition error at: 'a'",
- "SyntaxError: token recognition error at: 'h'"
+ "Argument of [not_like] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "meta info",
+ "query": "from a_index | where NOT numberField like \"?a\"",
"error": [
- "SyntaxError: token recognition error at: 'i'",
- "SyntaxError: token recognition error at: 'n'",
- "SyntaxError: token recognition error at: 'fo'",
- "SyntaxError: missing 'functions' at ''"
+ "Argument of [like] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "show",
+ "query": "from a_index | where NOT numberField NOT like \"?a\"",
"error": [
- "SyntaxError: missing 'info' at ''"
+ "Argument of [not_like] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "show functions",
- "error": [
- "SyntaxError: token recognition error at: 'f'",
- "SyntaxError: token recognition error at: 'u'",
- "SyntaxError: token recognition error at: 'n'",
- "SyntaxError: token recognition error at: 'c'",
- "SyntaxError: token recognition error at: 't'",
- "SyntaxError: token recognition error at: 'io'",
- "SyntaxError: token recognition error at: 'n'",
- "SyntaxError: token recognition error at: 's'",
- "SyntaxError: missing 'info' at ''"
- ],
+ "query": "from a_index | where stringField rlike \"?a\"",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where stringField NOT rlike \"?a\"",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where NOT stringField rlike \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "show info",
+ "query": "from a_index | where NOT stringField NOT rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "show numberField",
+ "query": "from a_index | where numberField rlike \"?a\"",
"error": [
- "SyntaxError: token recognition error at: 'n'",
- "SyntaxError: token recognition error at: 'u'",
- "SyntaxError: token recognition error at: 'm'",
- "SyntaxError: token recognition error at: 'b'",
- "SyntaxError: token recognition error at: 'e'",
- "SyntaxError: token recognition error at: 'r'",
- "SyntaxError: token recognition error at: 'F'",
- "SyntaxError: token recognition error at: 'ie'",
- "SyntaxError: token recognition error at: 'l'",
- "SyntaxError: token recognition error at: 'd'",
- "SyntaxError: missing 'info' at ''"
+ "Argument of [rlike] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from index | limit ",
+ "query": "from a_index | where numberField NOT rlike \"?a\"",
"error": [
- "SyntaxError: missing INTEGER_LITERAL at ''"
+ "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from index | limit 4 ",
- "error": [],
+ "query": "from a_index | where NOT numberField rlike \"?a\"",
+ "error": [
+ "Argument of [rlike] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from index | limit 4.5",
+ "query": "from a_index | where NOT numberField NOT rlike \"?a\"",
"error": [
- "SyntaxError: mismatched input '4.5' expecting INTEGER_LITERAL"
+ "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from index | limit a",
+ "query": "from a_index | where cidr_match(ipField)",
"error": [
- "SyntaxError: mismatched input 'a' expecting INTEGER_LITERAL"
+ "Error: [cidr_match] function expects at least 2 arguments, got 1."
],
"warning": []
},
{
- "query": "from index | limit numberField",
- "error": [
- "SyntaxError: mismatched input 'numberField' expecting INTEGER_LITERAL"
- ],
+ "query": "from a_index | eval cidr = \"172.0.0.1/30\" | where cidr_match(ipField, \"172.0.0.1/30\", cidr)",
+ "error": [],
"warning": []
},
{
- "query": "from index | limit stringField",
- "error": [
- "SyntaxError: mismatched input 'stringField' expecting INTEGER_LITERAL"
- ],
+ "query": "from a_index | where numberField IS NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | limit 4",
+ "query": "from a_index | where numberField IS null",
"error": [],
"warning": []
},
{
- "query": "from index | keep ",
- "error": [
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where numberField is null",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep stringField, numberField, dateField",
+ "query": "from a_index | where numberField is NULL",
"error": [],
"warning": []
},
{
- "query": "from index | keep `stringField`, `numberField`, `dateField`",
+ "query": "from a_index | where numberField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from index | keep 4.5",
- "error": [
- "SyntaxError: token recognition error at: '4'",
- "SyntaxError: token recognition error at: '5'",
- "SyntaxError: missing ID_PATTERN at '.'",
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where numberField IS NOT null",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep `4.5`",
- "error": [
- "Unknown column [4.5]"
- ],
+ "query": "from a_index | where numberField IS not NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep missingField, numberField, dateField",
- "error": [
- "Unknown column [missingField]"
- ],
+ "query": "from a_index | where numberField Is nOt NuLL",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep `any#Char$Field`",
+ "query": "from a_index | where dateField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from index | project ",
- "error": [
- "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
- ],
+ "query": "from a_index | where dateField IS null",
+ "error": [],
"warning": []
},
{
- "query": "from index | project stringField, numberField, dateField",
- "error": [
- "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
- ],
+ "query": "from a_index | where dateField is null",
+ "error": [],
"warning": []
},
{
- "query": "from index | PROJECT stringField, numberField, dateField",
- "error": [
- "SyntaxError: mismatched input 'PROJECT' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
- ],
+ "query": "from a_index | where dateField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | project missingField, numberField, dateField",
- "error": [
- "SyntaxError: mismatched input 'project' expecting {'dissect', 'drop', 'enrich', 'eval', 'grok', 'inlinestats', 'keep', 'limit', 'mv_expand', 'rename', 'sort', 'stats', 'where'}"
- ],
+ "query": "from a_index | where dateField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep s*",
+ "query": "from a_index | where dateField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from index | keep *Field",
+ "query": "from a_index | where dateField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from index | keep s*Field",
+ "query": "from a_index | where dateField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "from index | keep string*Field",
+ "query": "from a_index | where booleanField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from index | keep s*, n*",
+ "query": "from a_index | where booleanField IS null",
"error": [],
"warning": []
},
{
- "query": "from index | keep m*",
- "error": [
- "Unknown column [m*]"
- ],
+ "query": "from a_index | where booleanField is null",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep *m",
- "error": [
- "Unknown column [*m]"
- ],
+ "query": "from a_index | where booleanField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | keep d*m",
- "error": [
- "Unknown column [d*m]"
- ],
+ "query": "from a_index | where booleanField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "from unsupported_index | keep unsupported_field",
+ "query": "from a_index | where booleanField IS NOT null",
"error": [],
- "warning": [
- "Field [unsupported_field] cannot be retrieved, it is unsupported or not indexed; returning null"
- ]
+ "warning": []
},
{
- "query": "FROM index | STATS ROUND(AVG(numberField * 1.5)), COUNT(*), MIN(numberField * 10) | KEEP `MIN(numberField * 10)`",
+ "query": "from a_index | where booleanField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "FROM index | STATS COUNT(*), MIN(numberField * 10), MAX(numberField)| KEEP `COUNT(*)`",
+ "query": "from a_index | where booleanField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "from index | drop ",
- "error": [
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where versionField IS NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop stringField, numberField, dateField",
+ "query": "from a_index | where versionField IS null",
"error": [],
"warning": []
},
{
- "query": "from index | drop 4.5",
- "error": [
- "SyntaxError: token recognition error at: '4'",
- "SyntaxError: token recognition error at: '5'",
- "SyntaxError: missing ID_PATTERN at '.'",
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where versionField is null",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop missingField, numberField, dateField",
- "error": [
- "Unknown column [missingField]"
- ],
+ "query": "from a_index | where versionField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop `any#Char$Field`",
+ "query": "from a_index | where versionField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from index | drop s*",
+ "query": "from a_index | where versionField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from index | drop s**Field",
+ "query": "from a_index | where versionField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from index | drop *Field*",
+ "query": "from a_index | where versionField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "from index | drop s*F*d",
+ "query": "from a_index | where ipField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from index | drop *Field",
+ "query": "from a_index | where ipField IS null",
"error": [],
"warning": []
},
{
- "query": "from index | drop s*Field",
+ "query": "from a_index | where ipField is null",
"error": [],
"warning": []
},
{
- "query": "from index | drop string*Field",
+ "query": "from a_index | where ipField is NULL",
"error": [],
"warning": []
},
{
- "query": "from index | drop s*, n*",
+ "query": "from a_index | where ipField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from index | drop m*",
- "error": [
- "Unknown column [m*]"
- ],
+ "query": "from a_index | where ipField IS NOT null",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop *m",
- "error": [
- "Unknown column [*m]"
- ],
+ "query": "from a_index | where ipField IS not NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop d*m",
- "error": [
- "Unknown column [d*m]"
- ],
+ "query": "from a_index | where ipField Is nOt NuLL",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop *",
- "error": [
- "Removing all fields is not allowed [*]"
- ],
+ "query": "from a_index | where stringField IS NULL",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop stringField, *",
- "error": [
- "Removing all fields is not allowed [*]"
- ],
+ "query": "from a_index | where stringField IS null",
+ "error": [],
"warning": []
},
{
- "query": "from index | drop @timestamp",
+ "query": "from a_index | where stringField is null",
"error": [],
- "warning": [
- "Drop [@timestamp] will remove all time filters to the search results"
- ]
+ "warning": []
},
{
- "query": "from index | drop stringField, @timestamp",
+ "query": "from a_index | where stringField is NULL",
"error": [],
- "warning": [
- "Drop [@timestamp] will remove all time filters to the search results"
- ]
+ "warning": []
},
{
- "query": "FROM index | STATS ROUND(AVG(numberField * 1.5)), COUNT(*), MIN(numberField * 10) | DROP `MIN(numberField * 10)`",
+ "query": "from a_index | where stringField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "FROM index | STATS COUNT(*), MIN(numberField * 10), MAX(numberField)| DROP `COUNT(*)`",
+ "query": "from a_index | where stringField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand ",
- "error": [
- "SyntaxError: missing {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER} at ''"
- ],
+ "query": "from a_index | where stringField IS not NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand stringField",
+ "query": "from a_index | where stringField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand numberField",
+ "query": "from a_index | where cartesianPointField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand dateField",
+ "query": "from a_index | where cartesianPointField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand booleanField",
+ "query": "from a_index | where cartesianPointField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand ipField",
+ "query": "from a_index | where cartesianPointField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | mv_expand numberField, b",
- "error": [
- "SyntaxError: token recognition error at: ','",
- "SyntaxError: extraneous input 'b' expecting "
- ],
+ "query": "from a_index | where cartesianPointField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "row a = \"a\" | mv_expand a",
+ "query": "from a_index | where cartesianPointField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "row a = [1, 2, 3] | mv_expand a",
+ "query": "from a_index | where cartesianPointField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "row a = [true, false] | mv_expand a",
+ "query": "from a_index | where cartesianPointField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "row a = [\"a\", \"b\"] | mv_expand a",
+ "query": "from a_index | where cartesianShapeField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | rename",
- "error": [
- "SyntaxError: mismatched input '' expecting ID_PATTERN"
- ],
+ "query": "from a_index | where cartesianShapeField IS null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField",
- "error": [
- "SyntaxError: mismatched input '' expecting 'as'"
- ],
+ "query": "from a_index | where cartesianShapeField is null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename a",
- "error": [
- "SyntaxError: mismatched input '' expecting 'as'",
- "Unknown column [a]"
- ],
+ "query": "from a_index | where cartesianShapeField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField as",
- "error": [
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where cartesianShapeField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename missingField as",
- "error": [
- "SyntaxError: missing ID_PATTERN at ''",
- "Unknown column [missingField]"
- ],
+ "query": "from a_index | where cartesianShapeField IS NOT null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField as b",
+ "query": "from a_index | where cartesianShapeField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField AS b",
+ "query": "from a_index | where cartesianShapeField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField As b",
+ "query": "from a_index | where geoPointField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | rename stringField As b, b AS c",
+ "query": "from a_index | where geoPointField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | rename fn() as a",
- "error": [
- "SyntaxError: token recognition error at: '('",
- "SyntaxError: token recognition error at: ')'",
- "Unknown column [fn]",
- "Unknown column [a]"
- ],
+ "query": "from a_index | where geoPointField is null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField + 1 | rename `numberField + 1` as a",
+ "query": "from a_index | where geoPointField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) | rename `avg(numberField)` as avg0",
+ "query": "from a_index | where geoPointField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index |eval numberField + 1 | rename `numberField + 1` as ",
- "error": [
- "SyntaxError: missing ID_PATTERN at ''"
- ],
+ "query": "from a_index | where geoPointField IS NOT null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | rename s* as strings",
- "error": [
- "Using wildcards (*) in RENAME is not allowed [s*]",
- "Unknown column [strings]"
- ],
+ "query": "from a_index | where geoPointField IS not NULL",
+ "error": [],
"warning": []
},
{
- "query": "row a = 10 | rename a as `this``is fine`",
+ "query": "from a_index | where geoPointField Is nOt NuLL",
"error": [],
"warning": []
},
{
- "query": "row a = 10 | rename a as this is fine",
- "error": [
- "SyntaxError: mismatched input 'is' expecting "
- ],
+ "query": "from a_index | where geoShapeField IS NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | where geoShapeField IS null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField",
- "error": [
- "SyntaxError: missing QUOTED_STRING at ''"
- ],
+ "query": "from a_index | where geoShapeField is null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField 2",
- "error": [
- "SyntaxError: mismatched input '2' expecting QUOTED_STRING"
- ],
+ "query": "from a_index | where geoShapeField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField .",
- "error": [
- "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
- "Unknown column [stringField.]"
- ],
+ "query": "from a_index | where geoShapeField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField %a",
- "error": [
- "SyntaxError: mismatched input '%' expecting QUOTED_STRING",
- "SyntaxError: mismatched input '' expecting '='"
- ],
+ "query": "from a_index | where geoShapeField IS NOT null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\"",
+ "query": "from a_index | where geoShapeField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | dissect numberField \"%{firstWord}\"",
- "error": [
- "DISSECT only supports string type values, found [numberField] of type [number]"
- ],
+ "query": "from a_index | where geoShapeField Is nOt NuLL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" option ",
- "error": [
- "SyntaxError: mismatched input '' expecting '='"
- ],
+ "query": "from a_index | where stringField == \"a\" or null",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" option = ",
+ "query": "from a_index | eval ",
"error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', 'null', '?', 'true', '+', '-', OPENING_BRACKET}",
- "Invalid option for DISSECT: [option]"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" option = 1",
- "error": [
- "Invalid option for DISSECT: [option]"
- ],
+ "query": "from a_index | eval stringField ",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" append_separator = \"-\"",
+ "query": "from a_index | eval b = stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" ignore_missing = true",
- "error": [
- "Invalid option for DISSECT: [ignore_missing]"
- ],
+ "query": "from a_index | eval numberField + 1",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" append_separator = true",
+ "query": "from a_index | eval numberField + ",
"error": [
- "Invalid value for DISSECT append_separator: expected a string, but was [true]"
+ "SyntaxError: no viable alternative at input 'numberField + '"
],
"warning": []
},
{
- "query": "from a_index | dissect stringField \"%{firstWord}\" | keep firstWord",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | grok",
+ "query": "from a_index | eval stringField + 1",
"error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Argument of [+] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | grok stringField",
+ "query": "from a_index | eval a=b",
"error": [
- "SyntaxError: missing QUOTED_STRING at ''"
+ "Unknown column [b]"
],
"warning": []
},
{
- "query": "from a_index | grok stringField 2",
+ "query": "from a_index | eval a=b, ",
"error": [
- "SyntaxError: mismatched input '2' expecting QUOTED_STRING"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
+ "Unknown column [b]"
],
"warning": []
},
{
- "query": "from a_index | grok stringField .",
+ "query": "from a_index | eval a=round",
"error": [
- "SyntaxError: mismatched input '' expecting {UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
- "Unknown column [stringField.]"
+ "Unknown column [round]"
],
"warning": []
},
{
- "query": "from a_index | grok stringField %a",
+ "query": "from a_index | eval a=round(",
"error": [
- "SyntaxError: mismatched input '%' expecting QUOTED_STRING"
+ "SyntaxError: no viable alternative at input 'round('"
],
"warning": []
},
{
- "query": "from a_index | grok stringField \"%{firstWord}\"",
+ "query": "from a_index | eval a=round(numberField) ",
"error": [],
"warning": []
},
{
- "query": "from a_index | grok numberField \"%{firstWord}\"",
+ "query": "from a_index | eval a=round(numberField), ",
"error": [
- "GROK only supports string type values, found [numberField] of type [number]"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | grok stringField \"%{firstWord}\" | keep firstWord",
+ "query": "from a_index | eval a=round(numberField) + round(numberField) ",
"error": [],
"warning": []
},
{
- "query": "from a_index | where b",
+ "query": "from a_index | eval a=round(numberField) + round(stringField) ",
"error": [
- "Unknown column [b]"
+ "Argument of [round] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where true",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where NOT true",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where false",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where NOT false",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where 1 > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where NOT 1 > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where +1 > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where NOT +1 > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where 1 * 1 > 0",
- "error": [],
+ "query": "from a_index | eval a=round(numberField) + round(stringField), numberField ",
+ "error": [
+ "Argument of [round] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where NOT 1 * 1 > 0",
+ "query": "from a_index | eval a=round(numberField) + round(numberField), numberField ",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -1 > 0",
+ "query": "from a_index | eval a=round(numberField) + round(numberField), b = numberField ",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT -1 > 0",
+ "query": "from a_index | eval a=[1, 2, 3]",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 / 1 > 0",
+ "query": "from a_index | eval a=[true, false]",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT 1 / 1 > 0",
+ "query": "from a_index | eval a=[\"a\", \"b\"]",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1.0 > 0",
+ "query": "from a_index | eval a=null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT 1.0 > 0",
+ "query": "from a_index | eval numberField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1.5 > 0",
+ "query": "from a_index | eval numberField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT 1.5 > 0",
+ "query": "from a_index | eval numberField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField > 0",
+ "query": "from a_index | eval numberField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField > 0",
+ "query": "from a_index | eval numberField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField > 0)",
+ "query": "from a_index | eval numberField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField > 0))",
+ "query": "from a_index | eval numberField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 > 0",
+ "query": "from a_index | eval dateField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField > stringField",
+ "query": "from a_index | eval dateField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField > numberField",
+ "query": "from a_index | eval dateField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField > dateField",
+ "query": "from a_index | eval dateField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField > booleanField",
- "error": [
- "Argument of [>] must be [number], found value [booleanField] type [boolean]",
- "Argument of [>] must be [number], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | eval dateField IS NOT NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where ipField > ipField",
+ "query": "from a_index | eval dateField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField >= 0",
+ "query": "from a_index | eval dateField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField >= 0",
+ "query": "from a_index | eval booleanField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField >= 0)",
+ "query": "from a_index | eval booleanField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField >= 0))",
+ "query": "from a_index | eval booleanField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 >= 0",
+ "query": "from a_index | eval booleanField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField >= stringField",
+ "query": "from a_index | eval booleanField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField >= numberField",
+ "query": "from a_index | eval booleanField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField >= dateField",
+ "query": "from a_index | eval booleanField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField >= booleanField",
- "error": [
- "Argument of [>=] must be [number], found value [booleanField] type [boolean]",
- "Argument of [>=] must be [number], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | eval versionField IS NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where ipField >= ipField",
+ "query": "from a_index | eval versionField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField < 0",
+ "query": "from a_index | eval versionField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField < 0",
+ "query": "from a_index | eval versionField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField < 0)",
+ "query": "from a_index | eval versionField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField < 0))",
+ "query": "from a_index | eval versionField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 < 0",
+ "query": "from a_index | eval versionField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField < stringField",
+ "query": "from a_index | eval ipField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField < numberField",
+ "query": "from a_index | eval ipField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField < dateField",
+ "query": "from a_index | eval ipField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField < booleanField",
- "error": [
- "Argument of [<] must be [number], found value [booleanField] type [boolean]",
- "Argument of [<] must be [number], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | eval ipField is NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where ipField < ipField",
+ "query": "from a_index | eval ipField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField <= 0",
+ "query": "from a_index | eval ipField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField <= 0",
+ "query": "from a_index | eval ipField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField <= 0)",
+ "query": "from a_index | eval stringField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField <= 0))",
+ "query": "from a_index | eval stringField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 <= 0",
+ "query": "from a_index | eval stringField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField <= stringField",
+ "query": "from a_index | eval stringField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField <= numberField",
+ "query": "from a_index | eval stringField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField <= dateField",
+ "query": "from a_index | eval stringField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField <= booleanField",
- "error": [
- "Argument of [<=] must be [number], found value [booleanField] type [boolean]",
- "Argument of [<=] must be [number], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | eval stringField IS not NULL",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where ipField <= ipField",
+ "query": "from a_index | eval cartesianPointField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField == 0",
+ "query": "from a_index | eval cartesianPointField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField == 0",
+ "query": "from a_index | eval cartesianPointField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField == 0)",
+ "query": "from a_index | eval cartesianPointField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField == 0))",
+ "query": "from a_index | eval cartesianPointField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 == 0",
+ "query": "from a_index | eval cartesianPointField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField == stringField",
+ "query": "from a_index | eval cartesianPointField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField == numberField",
+ "query": "from a_index | eval cartesianShapeField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField == dateField",
+ "query": "from a_index | eval cartesianShapeField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField == booleanField",
+ "query": "from a_index | eval cartesianShapeField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField == ipField",
+ "query": "from a_index | eval cartesianShapeField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField != 0",
+ "query": "from a_index | eval cartesianShapeField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField != 0",
+ "query": "from a_index | eval cartesianShapeField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField != 0)",
+ "query": "from a_index | eval cartesianShapeField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField != 0))",
+ "query": "from a_index | eval geoPointField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 != 0",
+ "query": "from a_index | eval geoPointField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField != stringField",
+ "query": "from a_index | eval geoPointField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField != numberField",
+ "query": "from a_index | eval geoPointField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField != dateField",
+ "query": "from a_index | eval geoPointField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField != booleanField",
+ "query": "from a_index | eval geoPointField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField != ipField",
+ "query": "from a_index | eval geoPointField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where - numberField > 0",
+ "query": "from a_index | eval geoShapeField IS NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where - round(numberField) > 0",
+ "query": "from a_index | eval geoShapeField IS null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + - numberField > 0",
+ "query": "from a_index | eval geoShapeField is null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 - numberField > 0",
+ "query": "from a_index | eval geoShapeField is NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where - numberField > 0",
+ "query": "from a_index | eval geoShapeField IS NOT NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where - round(numberField) > 0",
+ "query": "from a_index | eval geoShapeField IS NOT null",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + - numberField > 0",
+ "query": "from a_index | eval geoShapeField IS not NULL",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 - numberField > 0",
+ "query": "from a_index | eval - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where + numberField > 0",
+ "query": "from a_index | eval a=- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where + round(numberField) > 0",
+ "query": "from a_index | eval a=- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + + numberField > 0",
+ "query": "from a_index | eval 1 + - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + numberField > 0",
+ "query": "from a_index | eval 1 - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where + numberField > 0",
+ "query": "from a_index | eval - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where + round(numberField) > 0",
+ "query": "from a_index | eval a=- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + + numberField > 0",
+ "query": "from a_index | eval a=- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + numberField > 0",
+ "query": "from a_index | eval 1 + - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where not booleanField",
+ "query": "from a_index | eval 1 - numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -- numberField > 0",
+ "query": "from a_index | eval + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -- round(numberField) > 0",
+ "query": "from a_index | eval a=+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + -- numberField > 0",
+ "query": "from a_index | eval a=+ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 -- numberField > 0",
+ "query": "from a_index | eval 1 + + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+ numberField > 0",
+ "query": "from a_index | eval 1 + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+ round(numberField) > 0",
+ "query": "from a_index | eval + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + -+ numberField > 0",
+ "query": "from a_index | eval a=+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 -+ numberField > 0",
+ "query": "from a_index | eval a=+ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +- numberField > 0",
+ "query": "from a_index | eval 1 + + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +- round(numberField) > 0",
+ "query": "from a_index | eval 1 + numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + +- numberField > 0",
+ "query": "from a_index | eval not booleanField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 +- numberField > 0",
+ "query": "from a_index | eval -- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ++ numberField > 0",
+ "query": "from a_index | eval a=-- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ++ round(numberField) > 0",
+ "query": "from a_index | eval a=-- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + ++ numberField > 0",
+ "query": "from a_index | eval 1 + -- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 ++ numberField > 0",
+ "query": "from a_index | eval 1 -- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where not not booleanField",
+ "query": "from a_index | eval -+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where --- numberField > 0",
+ "query": "from a_index | eval a=-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where --- round(numberField) > 0",
+ "query": "from a_index | eval a=-+ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + --- numberField > 0",
+ "query": "from a_index | eval 1 + -+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 --- numberField > 0",
+ "query": "from a_index | eval 1 -+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+- numberField > 0",
+ "query": "from a_index | eval +- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+- round(numberField) > 0",
+ "query": "from a_index | eval a=+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + -+- numberField > 0",
+ "query": "from a_index | eval a=+- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 -+- numberField > 0",
+ "query": "from a_index | eval 1 + +- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +-+ numberField > 0",
+ "query": "from a_index | eval 1 +- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +-+ round(numberField) > 0",
+ "query": "from a_index | eval ++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + +-+ numberField > 0",
+ "query": "from a_index | eval a=++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 +-+ numberField > 0",
+ "query": "from a_index | eval a=++ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +++ numberField > 0",
+ "query": "from a_index | eval 1 + ++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +++ round(numberField) > 0",
+ "query": "from a_index | eval 1 ++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + +++ numberField > 0",
+ "query": "from a_index | eval not not booleanField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 +++ numberField > 0",
+ "query": "from a_index | eval --- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where not not not booleanField",
+ "query": "from a_index | eval a=--- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ---- numberField > 0",
+ "query": "from a_index | eval a=--- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ---- round(numberField) > 0",
+ "query": "from a_index | eval 1 + --- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + ---- numberField > 0",
+ "query": "from a_index | eval 1 --- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 ---- numberField > 0",
+ "query": "from a_index | eval -+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+-+ numberField > 0",
+ "query": "from a_index | eval a=-+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where -+-+ round(numberField) > 0",
+ "query": "from a_index | eval a=-+- round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + -+-+ numberField > 0",
+ "query": "from a_index | eval 1 + -+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 -+-+ numberField > 0",
+ "query": "from a_index | eval 1 -+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +-+- numberField > 0",
+ "query": "from a_index | eval +-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where +-+- round(numberField) > 0",
+ "query": "from a_index | eval a=+-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + +-+- numberField > 0",
+ "query": "from a_index | eval a=+-+ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 +-+- numberField > 0",
+ "query": "from a_index | eval 1 + +-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ++++ numberField > 0",
+ "query": "from a_index | eval 1 +-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ++++ round(numberField) > 0",
+ "query": "from a_index | eval +++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 + ++++ numberField > 0",
+ "query": "from a_index | eval a=+++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where 1 ++++ numberField > 0",
+ "query": "from a_index | eval a=+++ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where not not not not booleanField",
+ "query": "from a_index | eval 1 + +++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where *+ numberField",
- "error": [
- "SyntaxError: extraneous input '*' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | eval 1 +++ numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where /+ numberField",
- "error": [
- "SyntaxError: extraneous input '/' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | eval not not not booleanField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where %+ numberField",
- "error": [
- "SyntaxError: extraneous input '%' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | eval ---- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where numberField =~ 0",
- "error": [
- "Argument of [=~] must be [string], found value [numberField] type [number]",
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval a=---- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField =~ 0",
- "error": [
- "Argument of [=~] must be [string], found value [numberField] type [number]",
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval a=---- round(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where (numberField =~ 0)",
- "error": [
- "Argument of [=~] must be [string], found value [numberField] type [number]",
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval 1 + ---- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where (NOT (numberField =~ 0))",
- "error": [
- "Argument of [=~] must be [string], found value [numberField] type [number]",
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval 1 ---- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where 1 =~ 0",
- "error": [
- "Argument of [=~] must be [string], found value [1] type [number]",
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval -+-+ numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField =~ 0",
- "error": [
- "Argument of [=~] must be [string], found value [0] type [number]"
- ],
+ "query": "from a_index | eval a=-+-+ numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where stringField like \"?a\"",
+ "query": "from a_index | eval a=-+-+ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField NOT like \"?a\"",
+ "query": "from a_index | eval 1 + -+-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT stringField like \"?a\"",
+ "query": "from a_index | eval 1 -+-+ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT stringField NOT like \"?a\"",
+ "query": "from a_index | eval +-+- numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField like \"?a\"",
- "error": [
- "Argument of [like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval a=+-+- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where numberField NOT like \"?a\"",
- "error": [
- "Argument of [not_like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval a=+-+- round(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField like \"?a\"",
- "error": [
- "Argument of [like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval 1 + +-+- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField NOT like \"?a\"",
- "error": [
- "Argument of [not_like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval 1 +-+- numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where stringField rlike \"?a\"",
+ "query": "from a_index | eval ++++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField NOT rlike \"?a\"",
+ "query": "from a_index | eval a=++++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT stringField rlike \"?a\"",
+ "query": "from a_index | eval a=++++ round(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where NOT stringField NOT rlike \"?a\"",
+ "query": "from a_index | eval 1 + ++++ numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField rlike \"?a\"",
- "error": [
- "Argument of [rlike] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval 1 ++++ numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where numberField NOT rlike \"?a\"",
- "error": [
- "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval not not not not booleanField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where NOT numberField rlike \"?a\"",
+ "query": "from a_index | eval *+ numberField",
"error": [
- "Argument of [rlike] must be [string], found value [numberField] type [number]"
+ "SyntaxError: extraneous input '*' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | where NOT numberField NOT rlike \"?a\"",
+ "query": "from a_index | eval /+ numberField",
"error": [
- "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
+ "SyntaxError: extraneous input '/' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | where cidr_match(ipField)",
+ "query": "from a_index | eval %+ numberField",
"error": [
- "Error: [cidr_match] function expects at least 2 arguments, got 1."
+ "SyntaxError: extraneous input '%' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | eval cidr = \"172.0.0.1/30\" | where cidr_match(ipField, \"172.0.0.1/30\", cidr)",
+ "query": "from a_index | eval log10(-1)",
"error": [],
- "warning": []
+ "warning": [
+ "Log of a negative number results in null: -1"
+ ]
},
{
- "query": "from a_index | where numberField IS NULL",
+ "query": "from a_index | eval log(-1)",
"error": [],
- "warning": []
+ "warning": [
+ "Log of a negative number results in null: -1"
+ ]
},
{
- "query": "from a_index | where numberField IS null",
+ "query": "from a_index | eval log(-1, 20)",
"error": [],
- "warning": []
+ "warning": [
+ "Log of a negative number results in null: -1"
+ ]
},
{
- "query": "from a_index | where numberField is null",
+ "query": "from a_index | eval log(-1, -20)",
"error": [],
- "warning": []
+ "warning": [
+ "Log of a negative number results in null: -1",
+ "Log of a negative number results in null: -20"
+ ]
},
{
- "query": "from a_index | where numberField is NULL",
+ "query": "from a_index | eval var0 = log(-1, -20)",
"error": [],
- "warning": []
+ "warning": [
+ "Log of a negative number results in null: -1",
+ "Log of a negative number results in null: -20"
+ ]
},
{
- "query": "from a_index | where numberField IS NOT NULL",
+ "query": "from a_index | eval numberField > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField IS NOT null",
+ "query": "from a_index | eval NOT numberField > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField IS not NULL",
+ "query": "from a_index | eval (numberField > 0)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where numberField Is nOt NuLL",
+ "query": "from a_index | eval (NOT (numberField > 0))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField IS NULL",
+ "query": "from a_index | eval 1 > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField IS null",
+ "query": "from a_index | eval stringField > stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField is null",
+ "query": "from a_index | eval numberField > numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField is NULL",
+ "query": "from a_index | eval dateField > dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval booleanField > booleanField",
+ "error": [
+ "Argument of [>] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [>] must be [number], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where dateField IS NOT null",
+ "query": "from a_index | eval ipField > ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where dateField IS not NULL",
- "error": [],
+ "query": "from a_index | eval numberField > stringField",
+ "error": [
+ "Argument of [>] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where dateField Is nOt NuLL",
- "error": [],
+ "query": "from a_index | eval stringField > numberField",
+ "error": [
+ "Argument of [>] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField IS NULL",
- "error": [],
+ "query": "from a_index | eval numberField > \"2022\"",
+ "error": [
+ "Argument of [>] must be [number], found value [\"2022\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField IS null",
- "error": [],
+ "query": "from a_index | eval dateField > stringField",
+ "error": [
+ "Argument of [>] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField is null",
- "error": [],
+ "query": "from a_index | eval stringField > dateField",
+ "error": [
+ "Argument of [>] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField is NULL",
- "error": [],
+ "query": "from a_index | eval stringField > 0",
+ "error": [
+ "Argument of [>] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval stringField > now()",
+ "error": [
+ "Argument of [>] must be [string], found value [now()] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where booleanField IS NOT null",
+ "query": "from a_index | eval dateField > \"2022\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField IS not NULL",
+ "query": "from a_index | eval \"2022\" > dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where booleanField Is nOt NuLL",
+ "query": "from a_index | eval versionField > \"1.2.3\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField IS NULL",
+ "query": "from a_index | eval \"1.2.3\" > versionField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField IS null",
- "error": [],
+ "query": "from a_index | eval booleanField > \"true\"",
+ "error": [
+ "Argument of [>] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where versionField is null",
- "error": [],
+ "query": "from a_index | eval \"true\" > booleanField",
+ "error": [
+ "Argument of [>] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where versionField is NULL",
+ "query": "from a_index | eval ipField > \"136.36.3.205\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField IS NOT NULL",
+ "query": "from a_index | eval \"136.36.3.205\" > ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField IS NOT null",
+ "query": "from a_index | eval numberField >= 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField IS not NULL",
+ "query": "from a_index | eval NOT numberField >= 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where versionField Is nOt NuLL",
+ "query": "from a_index | eval (numberField >= 0)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField IS NULL",
+ "query": "from a_index | eval (NOT (numberField >= 0))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField IS null",
+ "query": "from a_index | eval 1 >= 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField is null",
+ "query": "from a_index | eval stringField >= stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField is NULL",
+ "query": "from a_index | eval numberField >= numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField IS NOT NULL",
+ "query": "from a_index | eval dateField >= dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField IS NOT null",
- "error": [],
+ "query": "from a_index | eval booleanField >= booleanField",
+ "error": [
+ "Argument of [>=] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [>=] must be [number], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where ipField IS not NULL",
+ "query": "from a_index | eval ipField >= ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ipField Is nOt NuLL",
- "error": [],
+ "query": "from a_index | eval numberField >= stringField",
+ "error": [
+ "Argument of [>=] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField IS NULL",
- "error": [],
+ "query": "from a_index | eval stringField >= numberField",
+ "error": [
+ "Argument of [>=] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField IS null",
- "error": [],
+ "query": "from a_index | eval numberField >= \"2022\"",
+ "error": [
+ "Argument of [>=] must be [number], found value [\"2022\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField is null",
- "error": [],
+ "query": "from a_index | eval dateField >= stringField",
+ "error": [
+ "Argument of [>=] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField is NULL",
- "error": [],
+ "query": "from a_index | eval stringField >= dateField",
+ "error": [
+ "Argument of [>=] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval stringField >= 0",
+ "error": [
+ "Argument of [>=] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField IS NOT null",
- "error": [],
+ "query": "from a_index | eval stringField >= now()",
+ "error": [
+ "Argument of [>=] must be [string], found value [now()] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where stringField IS not NULL",
+ "query": "from a_index | eval dateField >= \"2022\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField Is nOt NuLL",
+ "query": "from a_index | eval \"2022\" >= dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField IS NULL",
+ "query": "from a_index | eval versionField >= \"1.2.3\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField IS null",
+ "query": "from a_index | eval \"1.2.3\" >= versionField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField is null",
- "error": [],
+ "query": "from a_index | eval booleanField >= \"true\"",
+ "error": [
+ "Argument of [>=] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField is NULL",
- "error": [],
+ "query": "from a_index | eval \"true\" >= booleanField",
+ "error": [
+ "Argument of [>=] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField IS NOT NULL",
+ "query": "from a_index | eval ipField >= \"136.36.3.205\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField IS NOT null",
+ "query": "from a_index | eval \"136.36.3.205\" >= ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField IS not NULL",
+ "query": "from a_index | eval numberField < 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianPointField Is nOt NuLL",
+ "query": "from a_index | eval NOT numberField < 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField IS NULL",
+ "query": "from a_index | eval (numberField < 0)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField IS null",
+ "query": "from a_index | eval (NOT (numberField < 0))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField is null",
+ "query": "from a_index | eval 1 < 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField is NULL",
+ "query": "from a_index | eval stringField < stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField IS NOT NULL",
+ "query": "from a_index | eval numberField < numberField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField IS NOT null",
+ "query": "from a_index | eval dateField < dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField IS not NULL",
- "error": [],
+ "query": "from a_index | eval booleanField < booleanField",
+ "error": [
+ "Argument of [<] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [<] must be [number], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where cartesianShapeField Is nOt NuLL",
+ "query": "from a_index | eval ipField < ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoPointField IS NULL",
- "error": [],
+ "query": "from a_index | eval numberField < stringField",
+ "error": [
+ "Argument of [<] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField IS null",
- "error": [],
+ "query": "from a_index | eval stringField < numberField",
+ "error": [
+ "Argument of [<] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField is null",
- "error": [],
+ "query": "from a_index | eval numberField < \"2022\"",
+ "error": [
+ "Argument of [<] must be [number], found value [\"2022\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField is NULL",
- "error": [],
+ "query": "from a_index | eval dateField < stringField",
+ "error": [
+ "Argument of [<] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval stringField < dateField",
+ "error": [
+ "Argument of [<] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField IS NOT null",
- "error": [],
+ "query": "from a_index | eval stringField < 0",
+ "error": [
+ "Argument of [<] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField IS not NULL",
- "error": [],
+ "query": "from a_index | eval stringField < now()",
+ "error": [
+ "Argument of [<] must be [string], found value [now()] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoPointField Is nOt NuLL",
+ "query": "from a_index | eval dateField < \"2022\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField IS NULL",
+ "query": "from a_index | eval \"2022\" < dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField IS null",
+ "query": "from a_index | eval versionField < \"1.2.3\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField is null",
+ "query": "from a_index | eval \"1.2.3\" < versionField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField is NULL",
- "error": [],
+ "query": "from a_index | eval booleanField < \"true\"",
+ "error": [
+ "Argument of [<] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoShapeField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval \"true\" < booleanField",
+ "error": [
+ "Argument of [<] must be [string], found value [booleanField] type [boolean]"
+ ],
"warning": []
},
{
- "query": "from a_index | where geoShapeField IS NOT null",
+ "query": "from a_index | eval ipField < \"136.36.3.205\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField IS not NULL",
+ "query": "from a_index | eval \"136.36.3.205\" < ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where geoShapeField Is nOt NuLL",
+ "query": "from a_index | eval numberField <= 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where stringField == \"a\" or null",
+ "query": "from a_index | eval NOT numberField <= 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where avg(numberField)",
- "error": [
- "WHERE does not support function avg"
- ],
+ "query": "from a_index | eval (numberField <= 0)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where avg(numberField) > 0",
- "error": [
- "WHERE does not support function avg"
- ],
+ "query": "from a_index | eval (NOT (numberField <= 0))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where sum(numberField)",
- "error": [
- "WHERE does not support function sum"
- ],
+ "query": "from a_index | eval 1 <= 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where sum(numberField) > 0",
- "error": [
- "WHERE does not support function sum"
- ],
+ "query": "from a_index | eval stringField <= stringField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where median(numberField)",
- "error": [
- "WHERE does not support function median"
- ],
+ "query": "from a_index | eval numberField <= numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where median(numberField) > 0",
- "error": [
- "WHERE does not support function median"
- ],
+ "query": "from a_index | eval dateField <= dateField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where median_absolute_deviation(numberField)",
+ "query": "from a_index | eval booleanField <= booleanField",
"error": [
- "WHERE does not support function median_absolute_deviation"
+ "Argument of [<=] must be [number], found value [booleanField] type [boolean]",
+ "Argument of [<=] must be [number], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "from a_index | where median_absolute_deviation(numberField) > 0",
- "error": [
- "WHERE does not support function median_absolute_deviation"
- ],
+ "query": "from a_index | eval ipField <= ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where percentile(numberField, 5)",
+ "query": "from a_index | eval numberField <= stringField",
"error": [
- "WHERE does not support function percentile"
+ "Argument of [<=] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where percentile(numberField, 5) > 0",
+ "query": "from a_index | eval stringField <= numberField",
"error": [
- "WHERE does not support function percentile"
+ "Argument of [<=] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where max(numberField)",
+ "query": "from a_index | eval numberField <= \"2022\"",
"error": [
- "WHERE does not support function max"
+ "Argument of [<=] must be [number], found value [\"2022\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where max(numberField) > 0",
+ "query": "from a_index | eval dateField <= stringField",
"error": [
- "WHERE does not support function max"
+ "Argument of [<=] must be [string], found value [dateField] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where max(dateField)",
+ "query": "from a_index | eval stringField <= dateField",
"error": [
- "WHERE does not support function max"
+ "Argument of [<=] must be [string], found value [dateField] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where max(dateField) > 0",
+ "query": "from a_index | eval stringField <= 0",
"error": [
- "WHERE does not support function max"
+ "Argument of [<=] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where min(numberField)",
+ "query": "from a_index | eval stringField <= now()",
"error": [
- "WHERE does not support function min"
+ "Argument of [<=] must be [string], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where min(numberField) > 0",
- "error": [
- "WHERE does not support function min"
- ],
+ "query": "from a_index | eval dateField <= \"2022\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where min(dateField)",
- "error": [
- "WHERE does not support function min"
- ],
+ "query": "from a_index | eval \"2022\" <= dateField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where min(dateField) > 0",
- "error": [
- "WHERE does not support function min"
- ],
+ "query": "from a_index | eval versionField <= \"1.2.3\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where count(stringField)",
- "error": [
- "WHERE does not support function count"
- ],
+ "query": "from a_index | eval \"1.2.3\" <= versionField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where count(stringField) > 0",
+ "query": "from a_index | eval booleanField <= \"true\"",
"error": [
- "WHERE does not support function count"
+ "Argument of [<=] must be [string], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "from a_index | where count_distinct(stringField, numberField)",
+ "query": "from a_index | eval \"true\" <= booleanField",
"error": [
- "WHERE does not support function count_distinct"
+ "Argument of [<=] must be [string], found value [booleanField] type [boolean]"
],
"warning": []
},
{
- "query": "from a_index | where count_distinct(stringField, numberField) > 0",
- "error": [
- "WHERE does not support function count_distinct"
- ],
+ "query": "from a_index | eval ipField <= \"136.36.3.205\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where abs(numberField) > 0",
+ "query": "from a_index | eval \"136.36.3.205\" <= ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where abs(stringField) > 0",
- "error": [
- "Argument of [abs] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval numberField == 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where acos(numberField) > 0",
+ "query": "from a_index | eval NOT numberField == 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where acos(stringField) > 0",
- "error": [
- "Argument of [acos] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval (numberField == 0)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where asin(numberField) > 0",
+ "query": "from a_index | eval (NOT (numberField == 0))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where asin(stringField) > 0",
- "error": [
- "Argument of [asin] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval 1 == 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where atan(numberField) > 0",
+ "query": "from a_index | eval stringField == stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where atan(stringField) > 0",
- "error": [
- "Argument of [atan] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval numberField == numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where atan2(numberField, numberField) > 0",
+ "query": "from a_index | eval dateField == dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where atan2(stringField, stringField) > 0",
- "error": [
- "Argument of [atan2] must be [number], found value [stringField] type [string]",
- "Argument of [atan2] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval booleanField == booleanField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where ceil(numberField) > 0",
+ "query": "from a_index | eval ipField == ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where ceil(stringField) > 0",
+ "query": "from a_index | eval numberField == stringField",
"error": [
- "Argument of [ceil] must be [number], found value [stringField] type [string]"
+ "Argument of [==] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where length(concat(stringField, stringField)) > 0",
- "error": [],
+ "query": "from a_index | eval stringField == numberField",
+ "error": [
+ "Argument of [==] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where length(concat(numberField, numberField)) > 0",
+ "query": "from a_index | eval numberField == \"2022\"",
"error": [
- "Argument of [concat] must be [string], found value [numberField] type [number]"
+ "Argument of [==] must be [number], found value [\"2022\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where cos(numberField) > 0",
- "error": [],
+ "query": "from a_index | eval dateField == stringField",
+ "error": [
+ "Argument of [==] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where cos(stringField) > 0",
+ "query": "from a_index | eval stringField == dateField",
"error": [
- "Argument of [cos] must be [number], found value [stringField] type [string]"
+ "Argument of [==] must be [string], found value [dateField] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where cosh(numberField) > 0",
- "error": [],
+ "query": "from a_index | eval stringField == 0",
+ "error": [
+ "Argument of [==] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where cosh(stringField) > 0",
+ "query": "from a_index | eval stringField == now()",
"error": [
- "Argument of [cosh] must be [number], found value [stringField] type [string]"
+ "Argument of [==] must be [string], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where e() > 0",
+ "query": "from a_index | eval dateField == \"2022\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where e() > 0",
+ "query": "from a_index | eval \"2022\" == dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where floor(numberField) > 0",
+ "query": "from a_index | eval versionField == \"1.2.3\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where floor(stringField) > 0",
- "error": [
- "Argument of [floor] must be [number], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | where length(left(stringField, numberField)) > 0",
+ "query": "from a_index | eval \"1.2.3\" == versionField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(left(numberField, stringField)) > 0",
- "error": [
- "Argument of [left] must be [string], found value [numberField] type [number]",
- "Argument of [left] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval booleanField == \"true\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(stringField) > 0",
+ "query": "from a_index | eval \"true\" == booleanField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(numberField) > 0",
- "error": [
- "Argument of [length] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval ipField == \"136.36.3.205\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where log(numberField, numberField) > 0",
+ "query": "from a_index | eval \"136.36.3.205\" == ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where log(stringField, stringField) > 0",
- "error": [
- "Argument of [log] must be [number], found value [stringField] type [string]",
- "Argument of [log] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval numberField != 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where log10(numberField) > 0",
+ "query": "from a_index | eval NOT numberField != 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | where log10(stringField) > 0",
- "error": [
- "Argument of [log10] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval (numberField != 0)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(ltrim(stringField)) > 0",
+ "query": "from a_index | eval (NOT (numberField != 0))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(ltrim(numberField)) > 0",
- "error": [
- "Argument of [ltrim] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval 1 != 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where mv_avg(numberField) > 0",
+ "query": "from a_index | eval stringField != stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where mv_avg(stringField) > 0",
- "error": [
- "Argument of [mv_avg] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval numberField != numberField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(mv_concat(stringField, stringField)) > 0",
+ "query": "from a_index | eval dateField != dateField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(mv_concat(numberField, numberField)) > 0",
- "error": [
- "Argument of [mv_concat] must be [string], found value [numberField] type [number]",
- "Argument of [mv_concat] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval booleanField != booleanField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where mv_median(numberField) > 0",
+ "query": "from a_index | eval ipField != ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | where mv_median(stringField) > 0",
+ "query": "from a_index | eval numberField != stringField",
"error": [
- "Argument of [mv_median] must be [number], found value [stringField] type [string]"
+ "Argument of [!=] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where mv_sum(numberField) > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where mv_sum(stringField) > 0",
+ "query": "from a_index | eval stringField != numberField",
"error": [
- "Argument of [mv_sum] must be [number], found value [stringField] type [string]"
+ "Argument of [!=] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where length(mv_zip(stringField, stringField, stringField)) > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where length(mv_zip(numberField, numberField, numberField)) > 0",
+ "query": "from a_index | eval numberField != \"2022\"",
"error": [
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]"
+ "Argument of [!=] must be [number], found value [\"2022\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where pi() > 0",
- "error": [],
+ "query": "from a_index | eval dateField != stringField",
+ "error": [
+ "Argument of [!=] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
{
- "query": "from a_index | where pi() > 0",
- "error": [],
+ "query": "from a_index | eval stringField != dateField",
+ "error": [
+ "Argument of [!=] must be [string], found value [dateField] type [date]"
+ ],
"warning": []
},
- {
- "query": "from a_index | where pow(numberField, numberField) > 0",
- "error": [],
+ {
+ "query": "from a_index | eval stringField != 0",
+ "error": [
+ "Argument of [!=] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where pow(stringField, stringField) > 0",
+ "query": "from a_index | eval stringField != now()",
"error": [
- "Argument of [pow] must be [number], found value [stringField] type [string]",
- "Argument of [pow] must be [number], found value [stringField] type [string]"
+ "Argument of [!=] must be [string], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where length(replace(stringField, stringField, stringField)) > 0",
+ "query": "from a_index | eval dateField != \"2022\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(replace(numberField, numberField, numberField)) > 0",
- "error": [
- "Argument of [replace] must be [string], found value [numberField] type [number]",
- "Argument of [replace] must be [string], found value [numberField] type [number]",
- "Argument of [replace] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval \"2022\" != dateField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(right(stringField, numberField)) > 0",
+ "query": "from a_index | eval versionField != \"1.2.3\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(right(numberField, stringField)) > 0",
- "error": [
- "Argument of [right] must be [string], found value [numberField] type [number]",
- "Argument of [right] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval \"1.2.3\" != versionField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where round(numberField, numberField) > 0",
+ "query": "from a_index | eval booleanField != \"true\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where round(stringField, stringField) > 0",
- "error": [
- "Argument of [round] must be [number], found value [stringField] type [string]",
- "Argument of [round] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval \"true\" != booleanField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(rtrim(stringField)) > 0",
+ "query": "from a_index | eval ipField != \"136.36.3.205\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(rtrim(numberField)) > 0",
- "error": [
- "Argument of [rtrim] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval \"136.36.3.205\" != ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where signum(numberField) > 0",
+ "query": "from a_index | eval versionField in (\"1.2.3\", \"4.5.6\", to_version(\"2.3.2\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | where signum(stringField) > 0",
- "error": [
- "Argument of [signum] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval dateField in (\"2023-12-12\", \"2024-12-12\", date_parse(\"yyyy-MM-dd\", \"2025-12-12\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where sin(numberField) > 0",
+ "query": "from a_index | eval booleanField in (\"true\", \"false\", false)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where sin(stringField) > 0",
- "error": [
- "Argument of [sin] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval ipField in (\"136.36.3.205\", \"136.36.3.206\", to_ip(\"136.36.3.207\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where sinh(numberField) > 0",
+ "query": "from a_index | eval numberField + 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where sinh(stringField) > 0",
- "error": [
- "Argument of [sinh] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval (numberField + 1)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(split(stringField, stringField)) > 0",
+ "query": "from a_index | eval 1 + 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(split(numberField, numberField)) > 0",
+ "query": "from a_index | eval now() + now()",
"error": [
- "Argument of [split] must be [string], found value [numberField] type [number]",
- "Argument of [split] must be [string], found value [numberField] type [number]"
+ "Argument of [+] must be [time_literal], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where sqrt(numberField) > 0",
- "error": [],
+ "query": "from a_index | eval 1 + \"1\"",
+ "error": [
+ "Argument of [+] must be [number], found value [\"1\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where sqrt(stringField) > 0",
+ "query": "from a_index | eval \"1\" + 1",
"error": [
- "Argument of [sqrt] must be [number], found value [stringField] type [string]"
+ "Argument of [+] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where length(substring(stringField, numberField, numberField)) > 0",
+ "query": "from a_index | eval numberField - 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(substring(numberField, stringField, stringField)) > 0",
- "error": [
- "Argument of [substring] must be [string], found value [numberField] type [number]",
- "Argument of [substring] must be [number], found value [stringField] type [string]",
- "Argument of [substring] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval (numberField - 1)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where tan(numberField) > 0",
+ "query": "from a_index | eval 1 - 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where tan(stringField) > 0",
+ "query": "from a_index | eval now() - now()",
"error": [
- "Argument of [tan] must be [number], found value [stringField] type [string]"
+ "Argument of [-] must be [time_literal], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where tanh(numberField) > 0",
- "error": [],
+ "query": "from a_index | eval 1 - \"1\"",
+ "error": [
+ "Argument of [-] must be [number], found value [\"1\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where tanh(stringField) > 0",
+ "query": "from a_index | eval \"1\" - 1",
"error": [
- "Argument of [tanh] must be [number], found value [stringField] type [string]"
+ "Argument of [-] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where tau() > 0",
+ "query": "from a_index | eval numberField * 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where tau() > 0",
+ "query": "from a_index | eval (numberField * 1)",
"error": [],
"warning": []
},
{
- "query": "from a_index | where to_degrees(numberField) > 0",
+ "query": "from a_index | eval 1 * 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where to_degrees(stringField) > 0",
+ "query": "from a_index | eval now() * now()",
"error": [
- "Argument of [to_degrees] must be [number], found value [stringField] type [string]"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where length(to_lower(stringField)) > 0",
- "error": [],
+ "query": "from a_index | eval 1 * \"1\"",
+ "error": [
+ "Argument of [*] must be [number], found value [\"1\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | where length(to_lower(numberField)) > 0",
+ "query": "from a_index | eval \"1\" * 1",
"error": [
- "Argument of [to_lower] must be [string], found value [numberField] type [number]"
+ "Argument of [*] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | where to_radians(numberField) > 0",
+ "query": "from a_index | eval numberField / 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where to_radians(stringField) > 0",
- "error": [
- "Argument of [to_radians] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval (numberField / 1)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | where length(to_upper(stringField)) > 0",
+ "query": "from a_index | eval 1 / 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | where length(to_upper(numberField)) > 0",
+ "query": "from a_index | eval now() / now()",
"error": [
- "Argument of [to_upper] must be [string], found value [numberField] type [number]"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | where length(trim(stringField)) > 0",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | where length(trim(numberField)) > 0",
+ "query": "from a_index | eval 1 / \"1\"",
"error": [
- "Argument of [trim] must be [string], found value [numberField] type [number]"
+ "Argument of [/] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval ",
+ "query": "from a_index | eval \"1\" / 1",
"error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Argument of [/] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField ",
+ "query": "from a_index | eval numberField % 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval b = stringField",
+ "query": "from a_index | eval (numberField % 1)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField + 1",
+ "query": "from a_index | eval 1 % 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField + ",
+ "query": "from a_index | eval now() % now()",
"error": [
- "SyntaxError: no viable alternative at input 'numberField + '"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [now()] type [date]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField + 1",
+ "query": "from a_index | eval 1 % \"1\"",
"error": [
- "Argument of [+] must be [number], found value [stringField] type [string]"
+ "Argument of [%] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval a=b",
+ "query": "from a_index | eval \"1\" % 1",
"error": [
- "Unknown column [b]"
+ "Argument of [%] must be [number], found value [\"1\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval a=b, ",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
- "Unknown column [b]"
- ],
- "warning": []
+ "query": "from a_index | eval 1/0",
+ "error": [],
+ "warning": [
+ "Cannot divide by zero: 1/0"
+ ]
},
{
- "query": "from a_index | eval a=round",
- "error": [
- "Unknown column [round]"
- ],
- "warning": []
+ "query": "from a_index | eval var = 1/0",
+ "error": [],
+ "warning": [
+ "Cannot divide by zero: 1/0"
+ ]
},
{
- "query": "from a_index | eval a=round(",
- "error": [
- "SyntaxError: no viable alternative at input 'round('"
- ],
- "warning": []
+ "query": "from a_index | eval 1 + 1/0",
+ "error": [],
+ "warning": [
+ "Cannot divide by zero: 1/0"
+ ]
},
{
- "query": "from a_index | eval a=round(numberField) ",
+ "query": "from a_index | eval 1%0",
"error": [],
- "warning": []
+ "warning": [
+ "Module by zero can return null value: 1%0"
+ ]
},
{
- "query": "from a_index | eval a=round(numberField), ",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
- "warning": []
+ "query": "from a_index | eval var = 1%0",
+ "error": [],
+ "warning": [
+ "Module by zero can return null value: 1%0"
+ ]
},
{
- "query": "from a_index | eval a=round(numberField) + round(numberField) ",
+ "query": "from a_index | eval 1 + 1%0",
"error": [],
- "warning": []
+ "warning": [
+ "Module by zero can return null value: 1%0"
+ ]
},
{
- "query": "from a_index | eval a=round(numberField) + round(stringField) ",
- "error": [
- "Argument of [round] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval stringField like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval a=round(numberField) + round(stringField), numberField ",
- "error": [
- "Argument of [round] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval stringField NOT like \"?a\"",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval a=round(numberField) + round(numberField), numberField ",
+ "query": "from a_index | eval NOT stringField like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=round(numberField) + round(numberField), b = numberField ",
+ "query": "from a_index | eval NOT stringField NOT like \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=[1, 2, 3]",
- "error": [],
+ "query": "from a_index | eval numberField like \"?a\"",
+ "error": [
+ "Argument of [like] must be [string], found value [numberField] type [number]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval numberField NOT like \"?a\"",
+ "error": [
+ "Argument of [not_like] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=[true, false]",
- "error": [],
+ "query": "from a_index | eval NOT numberField like \"?a\"",
+ "error": [
+ "Argument of [like] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=[\"a\", \"b\"]",
- "error": [],
+ "query": "from a_index | eval NOT numberField NOT like \"?a\"",
+ "error": [
+ "Argument of [not_like] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=null",
+ "query": "from a_index | eval stringField rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField IS NULL",
+ "query": "from a_index | eval stringField NOT rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField IS null",
+ "query": "from a_index | eval NOT stringField rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField is null",
+ "query": "from a_index | eval NOT stringField NOT rlike \"?a\"",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField is NULL",
- "error": [],
+ "query": "from a_index | eval numberField rlike \"?a\"",
+ "error": [
+ "Argument of [rlike] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval numberField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval numberField NOT rlike \"?a\"",
+ "error": [
+ "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval numberField IS NOT null",
- "error": [],
+ "query": "from a_index | eval NOT numberField rlike \"?a\"",
+ "error": [
+ "Argument of [rlike] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval numberField IS not NULL",
- "error": [],
+ "query": "from a_index | eval NOT numberField NOT rlike \"?a\"",
+ "error": [
+ "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval dateField IS NULL",
+ "query": "from a_index | eval 1 in (1, 2, 3)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField IS null",
+ "query": "from a_index | eval numberField in (1, 2, 3)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField is null",
+ "query": "from a_index | eval numberField not in (1, 2, 3)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField is NULL",
+ "query": "from a_index | eval numberField not in (1, 2, 3, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField IS NOT NULL",
+ "query": "from a_index | eval 1 in (1, 2, 3, round(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField IS NOT null",
+ "query": "from a_index | eval \"a\" in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField IS not NULL",
+ "query": "from a_index | eval stringField in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField IS NULL",
+ "query": "from a_index | eval stringField not in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField IS null",
+ "query": "from a_index | eval stringField not in (\"a\", \"b\", \"c\", stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField is null",
+ "query": "from a_index | eval 1 in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField is NULL",
+ "query": "from a_index | eval numberField in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField IS NOT NULL",
+ "query": "from a_index | eval numberField not in (\"a\", \"b\", \"c\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField IS NOT null",
+ "query": "from a_index | eval numberField not in (1, 2, 3, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField IS not NULL",
- "error": [],
+ "query": "from a_index | eval avg(numberField)",
+ "error": [
+ "EVAL does not support function avg"
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField IS NULL",
+ "query": "from a_index | stats avg(numberField) | eval `avg(numberField)` + 1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField IS null",
- "error": [],
+ "query": "from a_index | eval not",
+ "error": [
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
+ "Error: [not] function expects exactly one argument, got 0."
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField is null",
- "error": [],
+ "query": "from a_index | eval in",
+ "error": [
+ "SyntaxError: mismatched input 'in' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField is NULL",
- "error": [],
+ "query": "from a_index | eval stringField in stringField",
+ "error": [
+ "SyntaxError: missing '(' at 'stringField'",
+ "SyntaxError: mismatched input '' expecting {',', ')'}"
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval stringField in stringField)",
+ "error": [
+ "SyntaxError: missing '(' at 'stringField'",
+ "Error: [in] function expects exactly 2 arguments, got 1."
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField IS NOT null",
- "error": [],
+ "query": "from a_index | eval stringField not in stringField",
+ "error": [
+ "SyntaxError: missing '(' at 'stringField'",
+ "SyntaxError: mismatched input '' expecting {',', ')'}"
+ ],
"warning": []
},
{
- "query": "from a_index | eval versionField IS not NULL",
+ "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"bogus\")",
"error": [],
- "warning": []
+ "warning": [
+ "Invalid option [\"bogus\"] for mv_sort. Supported options: [\"asc\", \"desc\"]."
+ ]
},
{
- "query": "from a_index | eval ipField IS NULL",
+ "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"ASC\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField IS null",
+ "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"DESC\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField is null",
+ "query": "from a_index | eval result = case(false, 0, 1), round(result)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField is NULL",
+ "query": "from a_index | eval result = case(false, 0, 1) | stats sum(result)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField IS NOT NULL",
+ "query": "from a_index | eval result = case(false, 0, 1) | stats var0 = sum(result)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField IS NOT null",
+ "query": "from a_index | eval round(case(false, 0, 1))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField IS not NULL",
- "error": [],
+ "query": "from a_index | eval 1 anno",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 anno]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField IS NULL",
- "error": [],
+ "query": "from a_index | eval var = 1 anno",
+ "error": [
+ "Unexpected time interval qualifier: 'anno'"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField IS null",
- "error": [],
+ "query": "from a_index | eval now() + 1 anno",
+ "error": [
+ "Unexpected time interval qualifier: 'anno'"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField is null",
- "error": [],
+ "query": "from a_index | eval 1 year",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 year]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField is NULL",
- "error": [],
+ "query": "from a_index | eval 1 year",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 year]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField IS NOT NULL",
+ "query": "from a_index | eval var = now() - 1 year",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField IS NOT null",
+ "query": "from a_index | eval var = dateField - 1 year",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField IS not NULL",
+ "query": "from a_index | eval var = dateField - 1 YEAR",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField IS NULL",
+ "query": "from a_index | eval var = dateField - 1 Year",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField IS null",
+ "query": "from a_index | eval var = dateField + 1 year",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField is null",
- "error": [],
+ "query": "from a_index | eval 1 year + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField is NULL",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 year",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 year",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField IS NOT null",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 year",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 year] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianPointField IS not NULL",
- "error": [],
+ "query": "from a_index | eval 1 years",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 years]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField IS NULL",
- "error": [],
+ "query": "from a_index | eval 1 years",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 years]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField IS null",
+ "query": "from a_index | eval var = now() - 1 years",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField is null",
+ "query": "from a_index | eval var = dateField - 1 years",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField is NULL",
+ "query": "from a_index | eval var = dateField - 1 YEARS",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField IS NOT NULL",
+ "query": "from a_index | eval var = dateField - 1 Years",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField IS NOT null",
+ "query": "from a_index | eval var = dateField + 1 years",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cartesianShapeField IS not NULL",
- "error": [],
+ "query": "from a_index | eval 1 years + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoPointField IS NULL",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 years",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoPointField IS null",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 years",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoPointField is null",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 years",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 years] type [duration]"
+ ],
"warning": []
},
- {
- "query": "from a_index | eval geoPointField is NULL",
- "error": [],
+ {
+ "query": "from a_index | eval 1 month",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 month]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoPointField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval 1 month",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 month]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoPointField IS NOT null",
+ "query": "from a_index | eval var = now() - 1 month",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval geoPointField IS not NULL",
+ "query": "from a_index | eval var = dateField - 1 month",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField IS NULL",
+ "query": "from a_index | eval var = dateField - 1 MONTH",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField IS null",
+ "query": "from a_index | eval var = dateField - 1 Month",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField is null",
+ "query": "from a_index | eval var = dateField + 1 month",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField is NULL",
- "error": [],
+ "query": "from a_index | eval 1 month + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField IS NOT NULL",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 month",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField IS NOT null",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 month",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval geoShapeField IS not NULL",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 month",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 month] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval - numberField",
- "error": [],
+ "query": "from a_index | eval 1 months",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 months]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=- numberField",
- "error": [],
+ "query": "from a_index | eval 1 months",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 months]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=- round(numberField)",
+ "query": "from a_index | eval var = now() - 1 months",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + - numberField",
+ "query": "from a_index | eval var = dateField - 1 months",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 - numberField",
+ "query": "from a_index | eval var = dateField - 1 MONTHS",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval - numberField",
+ "query": "from a_index | eval var = dateField - 1 Months",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=- numberField",
+ "query": "from a_index | eval var = dateField + 1 months",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=- round(numberField)",
- "error": [],
+ "query": "from a_index | eval 1 months + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + - numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 months",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 - numberField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 months",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval + numberField",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 months",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 months] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+ numberField",
- "error": [],
+ "query": "from a_index | eval 1 week",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 week]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+ round(numberField)",
- "error": [],
+ "query": "from a_index | eval 1 week",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 week]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + + numberField",
+ "query": "from a_index | eval var = now() - 1 week",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + numberField",
+ "query": "from a_index | eval var = dateField - 1 week",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval + numberField",
+ "query": "from a_index | eval var = dateField - 1 WEEK",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=+ numberField",
+ "query": "from a_index | eval var = dateField - 1 Week",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=+ round(numberField)",
+ "query": "from a_index | eval var = dateField + 1 week",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + + numberField",
- "error": [],
+ "query": "from a_index | eval 1 week + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 week",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval not booleanField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 week",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval -- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 week",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 week] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=-- numberField",
- "error": [],
+ "query": "from a_index | eval 1 weeks",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 weeks]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=-- round(numberField)",
- "error": [],
+ "query": "from a_index | eval 1 weeks",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 weeks]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + -- numberField",
+ "query": "from a_index | eval var = now() - 1 weeks",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 -- numberField",
+ "query": "from a_index | eval var = dateField - 1 weeks",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval -+ numberField",
+ "query": "from a_index | eval var = dateField - 1 WEEKS",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+ numberField",
+ "query": "from a_index | eval var = dateField - 1 Weeks",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+ round(numberField)",
+ "query": "from a_index | eval var = dateField + 1 weeks",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + -+ numberField",
- "error": [],
+ "query": "from a_index | eval 1 weeks + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 -+ numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 weeks",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval +- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 weeks",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 weeks",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 weeks] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+- round(numberField)",
- "error": [],
+ "query": "from a_index | eval 1 day",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 day]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + +- numberField",
- "error": [],
+ "query": "from a_index | eval 1 day",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 day]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 +- numberField",
+ "query": "from a_index | eval var = now() - 1 day",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ++ numberField",
+ "query": "from a_index | eval var = dateField - 1 day",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=++ numberField",
+ "query": "from a_index | eval var = dateField - 1 DAY",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=++ round(numberField)",
+ "query": "from a_index | eval var = dateField - 1 Day",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + ++ numberField",
+ "query": "from a_index | eval var = dateField + 1 day",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 ++ numberField",
- "error": [],
+ "query": "from a_index | eval 1 day + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval not not booleanField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 day",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval --- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 day",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=--- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 day",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 day] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=--- round(numberField)",
- "error": [],
+ "query": "from a_index | eval 1 days",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 days]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + --- numberField",
- "error": [],
+ "query": "from a_index | eval 1 days",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 days]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 --- numberField",
+ "query": "from a_index | eval var = now() - 1 days",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval -+- numberField",
+ "query": "from a_index | eval var = dateField - 1 days",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+- numberField",
+ "query": "from a_index | eval var = dateField - 1 DAYS",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+- round(numberField)",
+ "query": "from a_index | eval var = dateField - 1 Days",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + -+- numberField",
+ "query": "from a_index | eval var = dateField + 1 days",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 -+- numberField",
- "error": [],
+ "query": "from a_index | eval 1 days + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval +-+ numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 days",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+-+ numberField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 days",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+-+ round(numberField)",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 days",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 days] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + +-+ numberField",
- "error": [],
+ "query": "from a_index | eval 1 hour",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 hour]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 +-+ numberField",
- "error": [],
+ "query": "from a_index | eval 1 hour",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 hour]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval +++ numberField",
+ "query": "from a_index | eval var = now() - 1 hour",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=+++ numberField",
+ "query": "from a_index | eval var = dateField - 1 hour",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=+++ round(numberField)",
+ "query": "from a_index | eval var = dateField - 1 HOUR",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + +++ numberField",
+ "query": "from a_index | eval var = dateField - 1 Hour",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 +++ numberField",
+ "query": "from a_index | eval var = dateField + 1 hour",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval not not not booleanField",
- "error": [],
+ "query": "from a_index | eval 1 hour + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ---- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 hour",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=---- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 hour",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=---- round(numberField)",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 hour",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 hour] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + ---- numberField",
- "error": [],
+ "query": "from a_index | eval 1 hours",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 hours]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 ---- numberField",
- "error": [],
+ "query": "from a_index | eval 1 hours",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 hours]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval -+-+ numberField",
+ "query": "from a_index | eval var = now() - 1 hours",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+-+ numberField",
+ "query": "from a_index | eval var = dateField - 1 hours",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=-+-+ round(numberField)",
+ "query": "from a_index | eval var = dateField - 1 HOURS",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + -+-+ numberField",
+ "query": "from a_index | eval var = dateField - 1 Hours",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 -+-+ numberField",
+ "query": "from a_index | eval var = dateField + 1 hours",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval +-+- numberField",
- "error": [],
+ "query": "from a_index | eval 1 hours + 1 year",
+ "error": [
+ "Argument of [+] must be [date], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+-+- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() * 1 hours",
+ "error": [
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=+-+- round(numberField)",
- "error": [],
+ "query": "from a_index | eval var = now() / 1 hours",
+ "error": [
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 + +-+- numberField",
- "error": [],
+ "query": "from a_index | eval var = now() % 1 hours",
+ "error": [
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 hours] type [duration]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 +-+- numberField",
- "error": [],
+ "query": "from a_index | eval 1 minute",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 minute]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ++++ numberField",
- "error": [],
+ "query": "from a_index | eval 1 minute",
+ "error": [
+ "EVAL does not support [date_period] in expression [1 minute]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval a=++++ numberField",
+ "query": "from a_index | eval var = now() - 1 minute",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval a=++++ round(numberField)",
+ "query": "from a_index | eval var = dateField - 1 minute",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + ++++ numberField",
+ "query": "from a_index | eval var = dateField - 1 MINUTE",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 ++++ numberField",
+ "query": "from a_index | eval var = dateField - 1 Minute",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval not not not not booleanField",
+ "query": "from a_index | eval var = dateField + 1 minute",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval *+ numberField",
+ "query": "from a_index | eval 1 minute + 1 year",
"error": [
- "SyntaxError: extraneous input '*' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Argument of [+] must be [date], found value [1 minute] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval /+ numberField",
+ "query": "from a_index | eval var = now() * 1 minute",
"error": [
- "SyntaxError: extraneous input '/' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 minute] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval %+ numberField",
+ "query": "from a_index | eval var = now() / 1 minute",
"error": [
- "SyntaxError: extraneous input '%' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 minute] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = avg(numberField)",
+ "query": "from a_index | eval var = now() % 1 minute",
"error": [
- "EVAL does not support function avg"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 minute] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = avg(numberField) > 0",
+ "query": "from a_index | eval 1 minutes",
"error": [
- "EVAL does not support function avg"
+ "EVAL does not support [date_period] in expression [1 minutes]"
],
"warning": []
},
{
- "query": "from a_index | eval avg(numberField)",
+ "query": "from a_index | eval 1 minutes",
"error": [
- "EVAL does not support function avg"
+ "EVAL does not support [date_period] in expression [1 minutes]"
],
"warning": []
},
{
- "query": "from a_index | eval avg(numberField) > 0",
- "error": [
- "EVAL does not support function avg"
- ],
+ "query": "from a_index | eval var = now() - 1 minutes",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = sum(numberField)",
+ "query": "from a_index | eval var = dateField - 1 minutes",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField - 1 MINUTES",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField - 1 Minutes",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField + 1 minutes",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval 1 minutes + 1 year",
"error": [
- "EVAL does not support function sum"
+ "Argument of [+] must be [date], found value [1 minutes] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = sum(numberField) > 0",
+ "query": "from a_index | eval var = now() * 1 minutes",
"error": [
- "EVAL does not support function sum"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 minutes] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval sum(numberField)",
+ "query": "from a_index | eval var = now() / 1 minutes",
"error": [
- "EVAL does not support function sum"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 minutes] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval sum(numberField) > 0",
+ "query": "from a_index | eval var = now() % 1 minutes",
"error": [
- "EVAL does not support function sum"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 minutes] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = median(numberField)",
+ "query": "from a_index | eval 1 second",
"error": [
- "EVAL does not support function median"
+ "EVAL does not support [date_period] in expression [1 second]"
],
"warning": []
},
{
- "query": "from a_index | eval var = median(numberField) > 0",
+ "query": "from a_index | eval 1 second",
"error": [
- "EVAL does not support function median"
+ "EVAL does not support [date_period] in expression [1 second]"
],
"warning": []
},
{
- "query": "from a_index | eval median(numberField)",
- "error": [
- "EVAL does not support function median"
- ],
+ "query": "from a_index | eval var = now() - 1 second",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField - 1 second",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField - 1 SECOND",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField - 1 Second",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = dateField + 1 second",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval median(numberField) > 0",
+ "query": "from a_index | eval 1 second + 1 year",
"error": [
- "EVAL does not support function median"
+ "Argument of [+] must be [date], found value [1 second] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = median_absolute_deviation(numberField)",
+ "query": "from a_index | eval var = now() * 1 second",
"error": [
- "EVAL does not support function median_absolute_deviation"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 second] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = median_absolute_deviation(numberField) > 0",
+ "query": "from a_index | eval var = now() / 1 second",
"error": [
- "EVAL does not support function median_absolute_deviation"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 second] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval median_absolute_deviation(numberField)",
+ "query": "from a_index | eval var = now() % 1 second",
"error": [
- "EVAL does not support function median_absolute_deviation"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 second] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval median_absolute_deviation(numberField) > 0",
+ "query": "from a_index | eval 1 seconds",
"error": [
- "EVAL does not support function median_absolute_deviation"
+ "EVAL does not support [date_period] in expression [1 seconds]"
],
"warning": []
},
{
- "query": "from a_index | eval var = percentile(numberField, 5)",
+ "query": "from a_index | eval 1 seconds",
"error": [
- "EVAL does not support function percentile"
+ "EVAL does not support [date_period] in expression [1 seconds]"
],
"warning": []
},
{
- "query": "from a_index | eval var = percentile(numberField, 5) > 0",
- "error": [
- "EVAL does not support function percentile"
- ],
+ "query": "from a_index | eval var = now() - 1 seconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval percentile(numberField, 5)",
- "error": [
- "EVAL does not support function percentile"
- ],
+ "query": "from a_index | eval var = dateField - 1 seconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval percentile(numberField, 5) > 0",
- "error": [
- "EVAL does not support function percentile"
- ],
+ "query": "from a_index | eval var = dateField - 1 SECONDS",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = max(numberField)",
- "error": [
- "EVAL does not support function max"
- ],
+ "query": "from a_index | eval var = dateField - 1 Seconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = max(numberField) > 0",
- "error": [
- "EVAL does not support function max"
- ],
+ "query": "from a_index | eval var = dateField + 1 seconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval max(numberField)",
+ "query": "from a_index | eval 1 seconds + 1 year",
"error": [
- "EVAL does not support function max"
+ "Argument of [+] must be [date], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval max(numberField) > 0",
+ "query": "from a_index | eval var = now() * 1 seconds",
"error": [
- "EVAL does not support function max"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = max(dateField)",
+ "query": "from a_index | eval var = now() / 1 seconds",
"error": [
- "EVAL does not support function max"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = max(dateField) > 0",
+ "query": "from a_index | eval var = now() % 1 seconds",
"error": [
- "EVAL does not support function max"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 seconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval max(dateField)",
+ "query": "from a_index | eval 1 millisecond",
"error": [
- "EVAL does not support function max"
+ "EVAL does not support [date_period] in expression [1 millisecond]"
],
"warning": []
},
{
- "query": "from a_index | eval max(dateField) > 0",
+ "query": "from a_index | eval 1 millisecond",
"error": [
- "EVAL does not support function max"
+ "EVAL does not support [date_period] in expression [1 millisecond]"
],
"warning": []
},
{
- "query": "from a_index | eval var = min(numberField)",
- "error": [
- "EVAL does not support function min"
- ],
+ "query": "from a_index | eval var = now() - 1 millisecond",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = min(numberField) > 0",
- "error": [
- "EVAL does not support function min"
- ],
+ "query": "from a_index | eval var = dateField - 1 millisecond",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval min(numberField)",
- "error": [
- "EVAL does not support function min"
- ],
+ "query": "from a_index | eval var = dateField - 1 MILLISECOND",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval min(numberField) > 0",
- "error": [
- "EVAL does not support function min"
- ],
+ "query": "from a_index | eval var = dateField - 1 Millisecond",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = min(dateField)",
- "error": [
- "EVAL does not support function min"
- ],
+ "query": "from a_index | eval var = dateField + 1 millisecond",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = min(dateField) > 0",
+ "query": "from a_index | eval 1 millisecond + 1 year",
"error": [
- "EVAL does not support function min"
+ "Argument of [+] must be [date], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval min(dateField)",
+ "query": "from a_index | eval var = now() * 1 millisecond",
"error": [
- "EVAL does not support function min"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval min(dateField) > 0",
+ "query": "from a_index | eval var = now() / 1 millisecond",
"error": [
- "EVAL does not support function min"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = count(stringField)",
+ "query": "from a_index | eval var = now() % 1 millisecond",
"error": [
- "EVAL does not support function count"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 millisecond] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = count(stringField) > 0",
+ "query": "from a_index | eval 1 milliseconds",
"error": [
- "EVAL does not support function count"
+ "EVAL does not support [date_period] in expression [1 milliseconds]"
],
"warning": []
},
{
- "query": "from a_index | eval count(stringField)",
+ "query": "from a_index | eval 1 milliseconds",
"error": [
- "EVAL does not support function count"
+ "EVAL does not support [date_period] in expression [1 milliseconds]"
],
"warning": []
},
{
- "query": "from a_index | eval count(stringField) > 0",
- "error": [
- "EVAL does not support function count"
- ],
+ "query": "from a_index | eval var = now() - 1 milliseconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = count_distinct(stringField, numberField)",
- "error": [
- "EVAL does not support function count_distinct"
- ],
+ "query": "from a_index | eval var = dateField - 1 milliseconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = count_distinct(stringField, numberField) > 0",
- "error": [
- "EVAL does not support function count_distinct"
- ],
+ "query": "from a_index | eval var = dateField - 1 MILLISECONDS",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval count_distinct(stringField, numberField)",
- "error": [
- "EVAL does not support function count_distinct"
- ],
+ "query": "from a_index | eval var = dateField - 1 Milliseconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval count_distinct(stringField, numberField) > 0",
- "error": [
- "EVAL does not support function count_distinct"
- ],
+ "query": "from a_index | eval var = dateField + 1 milliseconds",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_centroid_agg(cartesianPointField)",
+ "query": "from a_index | eval 1 milliseconds + 1 year",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "Argument of [+] must be [date], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_centroid_agg(cartesianPointField) > 0",
+ "query": "from a_index | eval var = now() * 1 milliseconds",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "Argument of [*] must be [number], found value [now()] type [date]",
+ "Argument of [*] must be [number], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval st_centroid_agg(cartesianPointField)",
+ "query": "from a_index | eval var = now() / 1 milliseconds",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "Argument of [/] must be [number], found value [now()] type [date]",
+ "Argument of [/] must be [number], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval st_centroid_agg(cartesianPointField) > 0",
+ "query": "from a_index | eval var = now() % 1 milliseconds",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "Argument of [%] must be [number], found value [now()] type [date]",
+ "Argument of [%] must be [number], found value [1 milliseconds] type [duration]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_centroid_agg(geoPointField)",
+ "query": "from a_index | stats ",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "At least one aggregation or grouping expression required in [STATS]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_centroid_agg(geoPointField) > 0",
- "error": [
- "EVAL does not support function st_centroid_agg"
- ],
+ "query": "from a_index | stats by stringField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_centroid_agg(geoPointField)",
+ "query": "from a_index | stats by ",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | eval st_centroid_agg(geoPointField) > 0",
+ "query": "from a_index | stats numberField ",
"error": [
- "EVAL does not support function st_centroid_agg"
+ "Expected an aggregate function or group but got [numberField] of type [FieldAttribute]"
],
"warning": []
},
{
- "query": "from a_index | eval var = values(stringField)",
+ "query": "from a_index | stats numberField=",
"error": [
- "EVAL does not support function values"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | eval var = values(stringField) > 0",
+ "query": "from a_index | stats numberField=5 by ",
"error": [
- "EVAL does not support function values"
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | eval values(stringField)",
+ "query": "from a_index | stats avg(numberField) by wrongField",
"error": [
- "EVAL does not support function values"
+ "Unknown column [wrongField]"
],
"warning": []
},
{
- "query": "from a_index | eval values(stringField) > 0",
+ "query": "from a_index | stats avg(numberField) by wrongField + 1",
"error": [
- "EVAL does not support function values"
+ "Unknown column [wrongField]"
],
"warning": []
},
{
- "query": "from a_index | eval var = abs(numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval abs(numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval var = abs(to_integer(stringField))",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval abs(stringField)",
+ "query": "from a_index | stats avg(numberField) by var0 = wrongField + 1",
"error": [
- "Argument of [abs] must be [number], found value [stringField] type [string]"
+ "Unknown column [wrongField]"
],
"warning": []
},
{
- "query": "from a_index | eval abs(numberField, extraArg)",
- "error": [
- "Error: [abs] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | stats avg(numberField) by 1",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = abs(*)",
+ "query": "from a_index | stats avg(numberField) by percentile(numberField)",
"error": [
- "Using wildcards (*) in abs is not allowed"
+ "STATS BY does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | eval var = acos(numberField)",
+ "query": "from a_index | stats count(`numberField`)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval acos(numberField)",
+ "query": "from a_index | stats count(stringField == \"a\" or null)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = acos(to_integer(stringField))",
+ "query": "from a_index | stats count(`numberField`) | keep `count(``numberField``)` ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval acos(stringField)",
- "error": [
- "Argument of [acos] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | stats count(`numberField`) | drop `count(``numberField``)` ",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval acos(numberField, extraArg)",
- "error": [
- "Error: [acos] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | stats count(`numberField`) | eval `count(``numberField``)` ",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = acos(*)",
+ "query": "from a_index | stats avg(numberField) by stringField, percentile(numberField) by ipField",
"error": [
- "Using wildcards (*) in acos is not allowed"
+ "SyntaxError: mismatched input 'by' expecting ",
+ "STATS BY does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | eval var = asin(numberField)",
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 50) by ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval asin(numberField)",
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 50) BY ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = asin(to_integer(stringField))",
+ "query": "from a_index | stats avg(numberField) + percentile(numberField, 50) BY ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval asin(stringField)",
- "error": [
- "Argument of [asin] must be [number], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval asin(numberField, extraArg)",
- "error": [
- "Error: [asin] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | stats avg(numberField) - percentile(numberField, 50) BY ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = asin(*)",
- "error": [
- "Using wildcards (*) in asin is not allowed"
- ],
+ "query": "from a_index | stats avg(numberField) * percentile(numberField, 50) BY ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = atan(numberField)",
+ "query": "from a_index | stats avg(numberField) / percentile(numberField, 50) BY ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval atan(numberField)",
+ "query": "from a_index | stats avg(numberField) % percentile(numberField, 50) BY ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = atan(to_integer(stringField))",
- "error": [],
+ "query": "from a_index | stats count(* + 1) BY ipField",
+ "error": [
+ "SyntaxError: no viable alternative at input 'count(* +'"
+ ],
"warning": []
},
{
- "query": "from a_index | eval atan(stringField)",
+ "query": "from a_index | stats count(* + round(numberField)) BY ipField",
"error": [
- "Argument of [atan] must be [number], found value [stringField] type [string]"
+ "SyntaxError: no viable alternative at input 'count(* +'"
],
"warning": []
},
{
- "query": "from a_index | eval atan(numberField, extraArg)",
+ "query": "from a_index | stats count(round(*)) BY ipField",
"error": [
- "Error: [atan] function expects exactly one argument, got 2."
+ "Using wildcards (*) in round is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = atan(*)",
+ "query": "from a_index | stats count(count(*)) BY ipField",
"error": [
- "Using wildcards (*) in atan is not allowed"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [count(*)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = atan2(numberField, numberField)",
- "error": [],
+ "query": "from a_index | stats numberField + 1",
+ "error": [
+ "At least one aggregation function required in [STATS], found [numberField+1]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval atan2(numberField, numberField)",
+ "query": "from a_index | stats 5 + avg(numberField) +1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = atan2(to_integer(stringField), to_integer(stringField))",
+ "query": "from a_index | stats 5 +1 + avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval atan2(stringField, stringField)",
+ "query": "from a_index | stats 5 +1 + numberField",
"error": [
- "Argument of [atan2] must be [number], found value [stringField] type [string]",
- "Argument of [atan2] must be [number], found value [stringField] type [string]"
+ "At least one aggregation function required in [STATS], found [5+1+numberField]"
],
"warning": []
},
{
- "query": "from a_index | eval atan2(numberField, numberField, extraArg)",
+ "query": "from a_index | stats 5 + numberField +1",
"error": [
- "Error: [atan2] function expects exactly 2 arguments, got 3."
+ "At least one aggregation function required in [STATS], found [5+numberField+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = case(booleanField, stringField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval case(booleanField, stringField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval var = ceil(numberField)",
- "error": [],
+ "query": "from a_index | stats 5 + numberField +1, var0 = sum(numberField)",
+ "error": [
+ "At least one aggregation function required in [STATS], found [5+numberField+1]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ceil(numberField)",
+ "query": "from a_index | stats round( sum(numberField) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = ceil(to_integer(stringField))",
+ "query": "from a_index | stats round( sum(numberField) ) + round( sum(numberField) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ceil(stringField)",
+ "query": "from a_index | stats round( numberField + sum(numberField) )",
"error": [
- "Argument of [ceil] must be [number], found value [stringField] type [string]"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
],
"warning": []
},
{
- "query": "from a_index | eval ceil(numberField, extraArg)",
+ "query": "from a_index | stats round( numberField + sum(numberField) ), var0 = sum(numberField)",
"error": [
- "Error: [ceil] function expects exactly one argument, got 2."
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = ceil(*)",
+ "query": "from a_index | stats var0 = round( numberField + sum(numberField) ), var1 = sum(numberField)",
"error": [
- "Using wildcards (*) in ceil is not allowed"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = cidr_match(ipField, stringField)",
+ "query": "from a_index | stats round( sum(numberField + numberField) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cidr_match(ipField, stringField)",
+ "query": "from a_index | stats round( sum(numberField + round(numberField)) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = cidr_match(to_ip(stringField), to_string(stringField))",
+ "query": "from a_index | stats round( sum(numberField + round(numberField)) ) + round( sum(numberField + round(numberField)) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cidr_match(stringField, numberField)",
- "error": [
- "Argument of [cidr_match] must be [ip], found value [stringField] type [string]",
- "Argument of [cidr_match] must be [string], found value [numberField] type [number]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = coalesce(stringField)",
+ "query": "from a_index | stats sum(round( numberField ) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval coalesce(stringField)",
+ "query": "from a_index | stats sum(round( numberField ) ) + sum(round( numberField ) )",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = concat(stringField, stringField)",
+ "query": "from a_index | stats 5 + avg(numberField) +1+1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval concat(stringField, stringField)",
+ "query": "from a_index | stats 5 +1+1 + avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = concat(to_string(stringField), to_string(stringField))",
- "error": [],
+ "query": "from a_index | stats 5 +1+1 + numberField",
+ "error": [
+ "At least one aggregation function required in [STATS], found [5+1+1+numberField]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval concat(numberField, numberField)",
+ "query": "from a_index | stats 5 + numberField +1+1",
"error": [
- "Argument of [concat] must be [string], found value [numberField] type [number]"
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = cos(numberField)",
- "error": [],
+ "query": "from a_index | stats 5 + numberField +1+1, var0 = sum(numberField)",
+ "error": [
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval cos(numberField)",
+ "query": "from a_index | stats round(round( sum(numberField) ))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = cos(to_integer(stringField))",
+ "query": "from a_index | stats round(round( sum(numberField) )) + round(round( sum(numberField) ))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cos(stringField)",
+ "query": "from a_index | stats round(round( numberField + sum(numberField) ))",
"error": [
- "Argument of [cos] must be [number], found value [stringField] type [string]"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
],
"warning": []
},
{
- "query": "from a_index | eval cos(numberField, extraArg)",
+ "query": "from a_index | stats round(round( numberField + sum(numberField) )), var0 = sum(numberField)",
"error": [
- "Error: [cos] function expects exactly one argument, got 2."
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = cos(*)",
+ "query": "from a_index | stats var0 = round(round( numberField + sum(numberField) )), var1 = sum(numberField)",
"error": [
- "Using wildcards (*) in cos is not allowed"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = cosh(numberField)",
+ "query": "from a_index | stats round(round( sum(numberField + numberField) ))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cosh(numberField)",
+ "query": "from a_index | stats round(round( sum(numberField + round(numberField)) ))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = cosh(to_integer(stringField))",
+ "query": "from a_index | stats round(round( sum(numberField + round(numberField)) )) + round(round( sum(numberField + round(numberField)) ))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval cosh(stringField)",
+ "query": "from a_index | stats sum(round(round( numberField )) )",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats sum(round(round( numberField )) ) + sum(round(round( numberField )) )",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats 5 + avg(numberField) +1+1+1",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats 5 +1+1+1 + avg(numberField)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats 5 +1+1+1 + numberField",
"error": [
- "Argument of [cosh] must be [number], found value [stringField] type [string]"
+ "At least one aggregation function required in [STATS], found [5+1+1+1+numberField]"
],
"warning": []
},
{
- "query": "from a_index | eval cosh(numberField, extraArg)",
+ "query": "from a_index | stats 5 + numberField +1+1+1",
"error": [
- "Error: [cosh] function expects exactly one argument, got 2."
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = cosh(*)",
+ "query": "from a_index | stats 5 + numberField +1+1+1, var0 = sum(numberField)",
"error": [
- "Using wildcards (*) in cosh is not allowed"
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = date_diff(\"year\", dateField, dateField)",
+ "query": "from a_index | stats round(round(round( sum(numberField) )))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"year\", dateField, dateField)",
+ "query": "from a_index | stats round(round(round( sum(numberField) ))) + round(round(round( sum(numberField) )))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_diff(\"year\", to_datetime(stringField), to_datetime(stringField))",
- "error": [],
+ "query": "from a_index | stats round(round(round( numberField + sum(numberField) )))",
+ "error": [
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval date_diff(numberField, stringField, stringField)",
+ "query": "from a_index | stats round(round(round( numberField + sum(numberField) ))), var0 = sum(numberField)",
"error": [
- "Argument of [date_diff] must be [string], found value [numberField] type [number]",
- "Argument of [date_diff] must be [date], found value [stringField] type [string]",
- "Argument of [date_diff] must be [date], found value [stringField] type [string]"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"year\", dateField, dateField, extraArg)",
+ "query": "from a_index | stats var0 = round(round(round( numberField + sum(numberField) ))), var1 = sum(numberField)",
"error": [
- "Error: [date_diff] function expects exactly 3 arguments, got 4."
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
+ "query": "from a_index | stats round(round(round( sum(numberField + numberField) )))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
+ "query": "from a_index | stats round(round(round( sum(numberField + round(numberField)) )))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", to_datetime(stringField))",
+ "query": "from a_index | stats round(round(round( sum(numberField + round(numberField)) ))) + round(round(round( sum(numberField + round(numberField)) )))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_extract(stringField, stringField)",
- "error": [
- "Argument of [date_extract] must be [chrono_literal], found value [stringField] type [string]",
- "Argument of [date_extract] must be [date], found value [stringField] type [string]"
- ],
+ "query": "from a_index | stats sum(round(round(round( numberField ))) )",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField, extraArg)",
- "error": [
- "Error: [date_extract] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | stats sum(round(round(round( numberField ))) ) + sum(round(round(round( numberField ))) )",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_format(dateField, stringField)",
+ "query": "from a_index | stats 5 + avg(numberField) +1+1+1+1",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_format(dateField, stringField)",
+ "query": "from a_index | stats 5 +1+1+1+1 + avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_format(to_datetime(stringField), to_string(stringField))",
- "error": [],
+ "query": "from a_index | stats 5 +1+1+1+1 + numberField",
+ "error": [
+ "At least one aggregation function required in [STATS], found [5+1+1+1+1+numberField]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval date_format(stringField, numberField)",
+ "query": "from a_index | stats 5 + numberField +1+1+1+1",
"error": [
- "Argument of [date_format] must be [date], found value [stringField] type [string]",
- "Argument of [date_format] must be [string], found value [numberField] type [number]"
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1+1+1]"
],
"warning": []
},
{
- "query": "from a_index | eval date_format(dateField, stringField, extraArg)",
+ "query": "from a_index | stats 5 + numberField +1+1+1+1, var0 = sum(numberField)",
"error": [
- "Error: [date_format] function expects no more than 2 arguments, got 3."
+ "At least one aggregation function required in [STATS], found [5+numberField+1+1+1+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = date_parse(stringField, stringField)",
+ "query": "from a_index | stats round(round(round(round( sum(numberField) ))))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_parse(stringField, stringField)",
+ "query": "from a_index | stats round(round(round(round( sum(numberField) )))) + round(round(round(round( sum(numberField) ))))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_parse(to_string(stringField), to_string(stringField))",
- "error": [],
+ "query": "from a_index | stats round(round(round(round( numberField + sum(numberField) ))))",
+ "error": [
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval date_parse(numberField, numberField)",
+ "query": "from a_index | stats round(round(round(round( numberField + sum(numberField) )))), var0 = sum(numberField)",
"error": [
- "Argument of [date_parse] must be [string], found value [numberField] type [number]",
- "Argument of [date_parse] must be [string], found value [numberField] type [number]"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
],
"warning": []
},
{
- "query": "from a_index | eval date_parse(stringField, stringField, extraArg)",
+ "query": "from a_index | stats var0 = round(round(round(round( numberField + sum(numberField) )))), var1 = sum(numberField)",
"error": [
- "Error: [date_parse] function expects exactly 2 arguments, got 3."
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = date_trunc(1 year, dateField)",
+ "query": "from a_index | stats round(round(round(round( sum(numberField + numberField) ))))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_trunc(1 year, dateField)",
+ "query": "from a_index | stats round(round(round(round( sum(numberField + round(numberField)) ))))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = date_trunc(1 year, to_datetime(stringField))",
+ "query": "from a_index | stats round(round(round(round( sum(numberField + round(numberField)) )))) + round(round(round(round( sum(numberField + round(numberField)) ))))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_trunc(stringField, stringField)",
- "error": [
- "Argument of [date_trunc] must be [time_literal], found value [stringField] type [string]",
- "Argument of [date_trunc] must be [date], found value [stringField] type [string]"
- ],
+ "query": "from a_index | stats sum(round(round(round(round( numberField )))) )",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval date_trunc(1 year, dateField, extraArg)",
+ "query": "from a_index | stats sum(round(round(round(round( numberField )))) ) + sum(round(round(round(round( numberField )))) )",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats 5 + numberField + 1",
"error": [
- "Error: [date_trunc] function expects exactly 2 arguments, got 3."
+ "At least one aggregation function required in [STATS], found [5+numberField+1]"
],
"warning": []
},
{
- "query": "from a_index | eval var = e()",
- "error": [],
+ "query": "from a_index | stats numberField + 1 by ipField",
+ "error": [
+ "At least one aggregation function required in [STATS], found [numberField+1]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval e()",
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 50) + 1 by ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = e()",
+ "query": "from a_index | stats count(*)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval e()",
+ "query": "from a_index | stats count()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval e(extraArg)",
- "error": [
- "Error: [e] function expects exactly 0 arguments, got 1."
- ],
+ "query": "from a_index | stats var0 = count(*)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = ends_with(stringField, stringField)",
+ "query": "from a_index | stats var0 = count()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ends_with(stringField, stringField)",
+ "query": "from a_index | stats var0 = avg(numberField), count(*)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = ends_with(to_string(stringField), to_string(stringField))",
- "error": [],
+ "query": "from a_index | stats var0 = avg(fn(number)), count(*)",
+ "error": [
+ "Unknown function [fn]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ends_with(numberField, numberField)",
+ "query": "from a_index | STATS sum( numberField ) + abs( numberField ) ",
"error": [
- "Argument of [ends_with] must be [string], found value [numberField] type [number]",
- "Argument of [ends_with] must be [string], found value [numberField] type [number]"
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [sum(numberField)+abs(numberField)]"
],
"warning": []
},
{
- "query": "from a_index | eval ends_with(stringField, stringField, extraArg)",
+ "query": "from a_index | STATS abs( numberField + sum( numberField )) ",
"error": [
- "Error: [ends_with] function expects exactly 2 arguments, got 3."
+ "Cannot combine aggregation and non-aggregation values in [STATS], found [abs(numberField+sum(numberField))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = floor(numberField)",
+ "query": "FROM index\n | EVAL numberField * 3.281\n | STATS avg_numberField = AVG(`numberField * 3.281`)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval floor(numberField)",
+ "query": "FROM index | STATS AVG(numberField) by round(numberField) + 1 | EVAL `round(numberField) + 1` / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = floor(to_integer(stringField))",
+ "query": "from a_index | stats sum(case(false, 0, 1))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval floor(stringField)",
- "error": [
- "Argument of [floor] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | stats var0 = sum( case(false, 0, 1))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval floor(numberField, extraArg)",
+ "query": "from index | stats by bucket(dateField, abs(numberField), \"\", \"\")",
"error": [
- "Error: [floor] function expects exactly one argument, got 2."
+ "Argument of [bucket] must be a constant, received [abs(numberField)]"
],
"warning": []
},
{
- "query": "from a_index | eval var = floor(*)",
+ "query": "from index | stats by bucket(dateField, abs(length(numberField)), \"\", \"\")",
"error": [
- "Using wildcards (*) in floor is not allowed"
+ "Argument of [bucket] must be a constant, received [abs(length(numberField))]"
],
"warning": []
},
{
- "query": "from a_index | eval var = greatest(stringField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval greatest(stringField)",
+ "query": "from index | stats by bucket(dateField, pi(), \"\", \"\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = least(stringField)",
+ "query": "from index | stats by bucket(dateField, 1 + 30 / 10, \"\", \"\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval least(stringField)",
+ "query": "from index | stats by bucket(dateField, 1 + 30 / 10, concat(\"\", \"\"), \"\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = left(stringField, numberField)",
- "error": [],
+ "query": "from index | stats by bucket(dateField, numberField, stringField, stringField)",
+ "error": [
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [stringField]",
+ "Argument of [bucket] must be a constant, received [stringField]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval left(stringField, numberField)",
- "error": [],
+ "query": "from a_index | sort ",
+ "error": [
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = left(to_string(stringField), to_integer(stringField))",
+ "query": "from a_index | sort \"field\" ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval left(numberField, stringField)",
+ "query": "from a_index | sort wrongField ",
"error": [
- "Argument of [left] must be [string], found value [numberField] type [number]",
- "Argument of [left] must be [number], found value [stringField] type [string]"
+ "Unknown column [wrongField]"
],
"warning": []
},
{
- "query": "from a_index | eval left(stringField, numberField, extraArg)",
+ "query": "from a_index | sort numberField, ",
"error": [
- "Error: [left] function expects exactly 2 arguments, got 3."
+ "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
],
"warning": []
},
{
- "query": "from a_index | eval var = length(stringField)",
+ "query": "from a_index | sort numberField, stringField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval length(stringField)",
+ "query": "from a_index | sort \"field\" desc ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = length(to_string(stringField))",
+ "query": "from a_index | sort numberField desc ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval length(numberField)",
+ "query": "from a_index | sort numberField desc nulls ",
"error": [
- "Argument of [length] must be [string], found value [numberField] type [number]"
+ "SyntaxError: missing {'first', 'last'} at ''"
],
"warning": []
},
{
- "query": "from a_index | eval length(stringField, extraArg)",
- "error": [
- "Error: [length] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | sort numberField desc nulls first",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = length(*)",
+ "query": "from a_index | sort numberField desc first",
"error": [
- "Using wildcards (*) in length is not allowed"
+ "SyntaxError: extraneous input 'first' expecting "
],
"warning": []
},
{
- "query": "from a_index | eval var = log(numberField, numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval log(numberField, numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval var = log(to_integer(stringField), to_integer(stringField))",
+ "query": "from a_index | sort numberField desc nulls last",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval log(stringField, stringField)",
+ "query": "from a_index | sort numberField desc last",
"error": [
- "Argument of [log] must be [number], found value [stringField] type [string]",
- "Argument of [log] must be [number], found value [stringField] type [string]"
+ "SyntaxError: extraneous input 'last' expecting "
],
"warning": []
},
{
- "query": "from a_index | eval log(numberField, numberField, extraArg)",
- "error": [
- "Error: [log] function expects no more than 2 arguments, got 3."
- ],
+ "query": "from a_index | sort \"field\" asc ",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = log10(numberField)",
+ "query": "from a_index | sort numberField asc ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval log10(numberField)",
- "error": [],
+ "query": "from a_index | sort numberField asc nulls ",
+ "error": [
+ "SyntaxError: missing {'first', 'last'} at ''"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = log10(to_integer(stringField))",
+ "query": "from a_index | sort numberField asc nulls first",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval log10(stringField)",
+ "query": "from a_index | sort numberField asc first",
"error": [
- "Argument of [log10] must be [number], found value [stringField] type [string]"
+ "SyntaxError: extraneous input 'first' expecting "
],
"warning": []
},
{
- "query": "from a_index | eval log10(numberField, extraArg)",
- "error": [
- "Error: [log10] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | sort numberField asc nulls last",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = log10(*)",
+ "query": "from a_index | sort numberField asc last",
"error": [
- "Using wildcards (*) in log10 is not allowed"
+ "SyntaxError: extraneous input 'last' expecting "
],
"warning": []
},
{
- "query": "from a_index | eval var = ltrim(stringField)",
+ "query": "from a_index | sort numberField nulls first",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ltrim(stringField)",
- "error": [],
+ "query": "from a_index | sort numberField first",
+ "error": [
+ "SyntaxError: extraneous input 'first' expecting "
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = ltrim(to_string(stringField))",
+ "query": "from a_index | sort numberField nulls last",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ltrim(numberField)",
+ "query": "from a_index | sort numberField last",
"error": [
- "Argument of [ltrim] must be [string], found value [numberField] type [number]"
+ "SyntaxError: extraneous input 'last' expecting "
],
"warning": []
},
{
- "query": "from a_index | eval ltrim(stringField, extraArg)",
- "error": [
- "Error: [ltrim] function expects exactly one argument, got 2."
- ],
+ "query": "row a = 1 | stats COUNT(*) | sort `COUNT(*)`",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = ltrim(*)",
- "error": [
- "Using wildcards (*) in ltrim is not allowed"
- ],
+ "query": "ROW a = 1 | STATS couNt(*) | SORT `couNt(*)`",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_avg(numberField)",
+ "query": "from a_index | sort abs(numberField) - to_long(stringField) desc nulls first",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_avg(numberField)",
- "error": [],
+ "query": "from a_index | sort sin(stringField)",
+ "error": [
+ "Argument of [sin] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_avg(to_integer(stringField))",
- "error": [],
+ "query": "from a_index | sort numberField + stringField",
+ "error": [
+ "Argument of [+] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_avg(stringField)",
+ "query": "from a_index | enrich",
"error": [
- "Argument of [mv_avg] must be [number], found value [stringField] type [string]"
+ "SyntaxError: missing ENRICH_POLICY_NAME at ''"
],
"warning": []
},
{
- "query": "from a_index | eval mv_avg(numberField, extraArg)",
+ "query": "from a_index | enrich _",
"error": [
- "Error: [mv_avg] function expects exactly one argument, got 2."
+ "Unknown policy [_]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_avg(*)",
+ "query": "from a_index | enrich _:",
"error": [
- "Using wildcards (*) in mv_avg is not allowed"
+ "SyntaxError: token recognition error at: ':'",
+ "Unknown policy [_]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_concat(stringField, stringField)",
- "error": [],
+ "query": "from a_index | enrich _:policy",
+ "error": [
+ "Unrecognized value [_] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_concat(stringField, stringField)",
- "error": [],
+ "query": "from a_index | enrich :policy",
+ "error": [
+ "SyntaxError: token recognition error at: ':'"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_concat(to_string(stringField), to_string(stringField))",
- "error": [],
+ "query": "from a_index | enrich any:",
+ "error": [
+ "SyntaxError: token recognition error at: ':'",
+ "Unknown policy [any]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_concat(numberField, numberField)",
+ "query": "from a_index | enrich _any:",
"error": [
- "Argument of [mv_concat] must be [string], found value [numberField] type [number]",
- "Argument of [mv_concat] must be [string], found value [numberField] type [number]"
+ "SyntaxError: token recognition error at: ':'",
+ "Unknown policy [_any]"
],
"warning": []
},
{
- "query": "from a_index | eval mv_concat(stringField, stringField, extraArg)",
+ "query": "from a_index | enrich any:policy",
"error": [
- "Error: [mv_concat] function expects exactly 2 arguments, got 3."
+ "Unrecognized value [any] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_count(stringField)",
+ "query": "from a_index | enrich policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_count(stringField)",
- "error": [],
+ "query": "from a_index | enrich `this``is fine`",
+ "error": [
+ "SyntaxError: mismatched input '`this``is fine`' expecting ENRICH_POLICY_NAME"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_count(*)",
+ "query": "from a_index | enrich this is fine",
"error": [
- "Using wildcards (*) in mv_count is not allowed"
+ "SyntaxError: mismatched input 'is' expecting ",
+ "Unknown policy [this]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_dedupe(stringField)",
+ "query": "from a_index | enrich _any:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_dedupe(stringField)",
- "error": [],
+ "query": "from a_index | enrich _any : policy ",
+ "error": [
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_any]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_dedupe(*)",
+ "query": "from a_index | enrich _any: policy ",
"error": [
- "Using wildcards (*) in mv_dedupe is not allowed"
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_any]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_first(stringField)",
+ "query": "from a_index | enrich _any:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_first(stringField)",
+ "query": "from a_index | enrich _ANY:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_first(*)",
+ "query": "from a_index | enrich _coordinator:policy ",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | enrich _coordinator : policy ",
"error": [
- "Using wildcards (*) in mv_first is not allowed"
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_coordinator]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_last(stringField)",
- "error": [],
+ "query": "from a_index | enrich _coordinator: policy ",
+ "error": [
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_coordinator]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_last(stringField)",
+ "query": "from a_index | enrich _coordinator:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_last(*)",
- "error": [
- "Using wildcards (*) in mv_last is not allowed"
- ],
+ "query": "from a_index | enrich _COORDINATOR:policy ",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_max(stringField)",
+ "query": "from a_index | enrich _remote:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_max(stringField)",
- "error": [],
+ "query": "from a_index | enrich _remote : policy ",
+ "error": [
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_remote]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_max(*)",
+ "query": "from a_index | enrich _remote: policy ",
"error": [
- "Using wildcards (*) in mv_max is not allowed"
+ "SyntaxError: token recognition error at: ':'",
+ "SyntaxError: extraneous input 'policy' expecting ",
+ "Unknown policy [_remote]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_median(numberField)",
+ "query": "from a_index | enrich _remote:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_median(numberField)",
+ "query": "from a_index | enrich _REMOTE:policy ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_median(to_integer(stringField))",
- "error": [],
+ "query": "from a_index | enrich _unknown:policy",
+ "error": [
+ "Unrecognized value [_unknown] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_median(stringField)",
+ "query": "from a_index |enrich missing-policy ",
"error": [
- "Argument of [mv_median] must be [number], found value [stringField] type [string]"
+ "Unknown policy [missing-policy]"
],
"warning": []
},
{
- "query": "from a_index | eval mv_median(numberField, extraArg)",
+ "query": "from a_index |enrich policy on ",
"error": [
- "Error: [mv_median] function expects exactly one argument, got 2."
+ "SyntaxError: missing ID_PATTERN at ''"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_median(*)",
+ "query": "from a_index | enrich policy on b ",
"error": [
- "Using wildcards (*) in mv_median is not allowed"
+ "Unknown column [b]"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_min(stringField)",
- "error": [],
+ "query": "from a_index | enrich policy on `this``is fine`",
+ "error": [
+ "Unknown column [this`is fine]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_min(stringField)",
- "error": [],
+ "query": "from a_index | enrich policy on this is fine",
+ "error": [
+ "SyntaxError: mismatched input 'is' expecting ",
+ "Unknown column [this]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_min(*)",
+ "query": "from a_index | enrich policy on stringField with ",
"error": [
- "Using wildcards (*) in mv_min is not allowed"
+ "SyntaxError: mismatched input '' expecting ID_PATTERN"
],
"warning": []
},
{
- "query": "from a_index | eval var = mv_slice(stringField, numberField, numberField)",
- "error": [],
+ "query": "from a_index | enrich policy on stringField with var0 ",
+ "error": [
+ "Unknown column [var0]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_slice(stringField, numberField, numberField)",
- "error": [],
+ "query": "from a_index |enrich policy on numberField with var0 = ",
+ "error": [
+ "SyntaxError: missing ID_PATTERN at ''",
+ "Unknown column [var0]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_sort(stringField, \"asc\")",
- "error": [],
+ "query": "from a_index | enrich policy on stringField with var0 = c ",
+ "error": [
+ "Unknown column [var0]",
+ "Unknown column [c]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_sort(stringField, \"asc\")",
- "error": [],
+ "query": "from a_index |enrich policy on numberField with var0 = , ",
+ "error": [
+ "SyntaxError: missing ID_PATTERN at ','",
+ "SyntaxError: mismatched input '' expecting ID_PATTERN",
+ "Unknown column [var0]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = mv_sum(numberField)",
- "error": [],
+ "query": "from a_index | enrich policy on stringField with var0 = otherField, var1 ",
+ "error": [
+ "Unknown column [var1]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_sum(numberField)",
+ "query": "from a_index | enrich policy on stringField with var0 = otherField ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_sum(to_integer(stringField))",
+ "query": "from a_index | enrich policy on stringField with var0 = otherField, yetAnotherField ",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_sum(stringField)",
+ "query": "from a_index |enrich policy on numberField with var0 = otherField, var1 = ",
"error": [
- "Argument of [mv_sum] must be [number], found value [stringField] type [string]"
+ "SyntaxError: missing ID_PATTERN at ''",
+ "Unknown column [var1]"
],
"warning": []
},
{
- "query": "from a_index | eval mv_sum(numberField, extraArg)",
- "error": [
- "Error: [mv_sum] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | enrich policy on stringField with var0 = otherField, var1 = yetAnotherField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_sum(*)",
- "error": [
- "Using wildcards (*) in mv_sum is not allowed"
- ],
+ "query": "from a_index | enrich policy on stringField with var0 = otherField, `this``is fine` = yetAnotherField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_zip(stringField, stringField, stringField)",
- "error": [],
+ "query": "from a_index | enrich policy with ",
+ "error": [
+ "SyntaxError: mismatched input '' expecting ID_PATTERN"
+ ],
"warning": []
},
{
- "query": "from a_index | eval mv_zip(stringField, stringField, stringField)",
+ "query": "from a_index | enrich policy with otherField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = mv_zip(to_string(stringField), to_string(stringField), to_string(stringField))",
+ "query": "from a_index | enrich policy | eval otherField",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_zip(numberField, numberField, numberField)",
- "error": [
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
- "Argument of [mv_zip] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | enrich policy with var0 = otherField | eval var0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_zip(stringField, stringField, stringField, extraArg)",
+ "query": "from a_index | enrich my-pol*",
"error": [
- "Error: [mv_zip] function expects exactly 3 arguments, got 4."
+ "Using wildcards (*) in ENRICH is not allowed [my-pol*]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now()",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval now()",
+ "query": "from a_index | eval stringField = 5",
"error": [],
- "warning": []
+ "warning": [
+ "Column [stringField] of type string has been overwritten as new type: number"
+ ]
},
{
- "query": "from a_index | eval var = now()",
+ "query": "from a_index | eval numberField = \"5\"",
"error": [],
- "warning": []
+ "warning": [
+ "Column [numberField] of type number has been overwritten as new type: string"
+ ]
},
{
- "query": "from a_index | eval now()",
+ "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | keep ```round(numberField) + 1`` + 1`",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now(extraArg)",
- "error": [
- "Error: [now] function expects exactly 0 arguments, got 1."
- ],
+ "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | keep ```````round(numberField) + 1```` + 1`` + 1`",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = pi()",
+ "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | eval ```````round(numberField) + 1```` + 1`` + 1` + 1 | keep ```````````````round(numberField) + 1```````` + 1```` + 1`` + 1`",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval pi()",
+ "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | eval ```````round(numberField) + 1```` + 1`` + 1` + 1 | eval ```````````````round(numberField) + 1```````` + 1```` + 1`` + 1` + 1 | keep ```````````````````````````````round(numberField) + 1```````````````` + 1```````` + 1```` + 1`` + 1`",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = pi()",
+ "query": "row var = date_diff(\"month\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval pi()",
+ "query": "row var = date_diff(\"mm\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval pi(extraArg)",
- "error": [
- "Error: [pi] function expects exactly 0 arguments, got 1."
- ],
- "warning": []
+ "query": "row var = date_diff(\"bogus\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
+ "error": [],
+ "warning": [
+ "Invalid option [\"bogus\"] for date_diff. Supported options: [\"year\", \"years\", \"yy\", \"yyyy\", \"quarter\", \"quarters\", \"qq\", \"q\", \"month\", \"months\", \"mm\", \"m\", \"dayofyear\", \"dy\", \"y\", \"day\", \"days\", \"dd\", \"d\", \"week\", \"weeks\", \"wk\", \"ww\", \"weekday\", \"weekdays\", \"dw\", \"hour\", \"hours\", \"hh\", \"minute\", \"minutes\", \"mi\", \"n\", \"second\", \"seconds\", \"ss\", \"s\", \"millisecond\", \"milliseconds\", \"ms\", \"microsecond\", \"microseconds\", \"mcs\", \"nanosecond\", \"nanoseconds\", \"ns\"]."
+ ]
},
{
- "query": "from a_index | eval var = pow(numberField, numberField)",
+ "query": "from a_index | eval date_diff(stringField, \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval pow(numberField, numberField)",
+ "query": "from a_index | eval date_diff(\"month\", dateField, \"2023-12-02T11:00:00.000Z\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = pow(to_integer(stringField), to_integer(stringField))",
+ "query": "from a_index | eval date_diff(\"month\", \"2023-12-02T11:00:00.000Z\", dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval pow(stringField, stringField)",
+ "query": "from a_index | eval date_diff(\"month\", stringField, dateField)",
"error": [
- "Argument of [pow] must be [number], found value [stringField] type [string]",
- "Argument of [pow] must be [number], found value [stringField] type [string]"
+ "Argument of [date_diff] must be [date], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval pow(numberField, numberField, extraArg)",
+ "query": "from a_index | eval date_diff(\"month\", dateField, stringField)",
"error": [
- "Error: [pow] function expects exactly 2 arguments, got 3."
+ "Argument of [date_diff] must be [date], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = replace(stringField, stringField, stringField)",
+ "query": "row var = abs(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval replace(stringField, stringField, stringField)",
+ "query": "row abs(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = replace(to_string(stringField), to_string(stringField), to_string(stringField))",
+ "query": "row var = abs(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval replace(numberField, numberField, numberField)",
+ "query": "row var = abs(\"a\")",
"error": [
- "Argument of [replace] must be [string], found value [numberField] type [number]",
- "Argument of [replace] must be [string], found value [numberField] type [number]",
- "Argument of [replace] must be [string], found value [numberField] type [number]"
+ "Argument of [abs] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval replace(stringField, stringField, stringField, extraArg)",
+ "query": "from a_index | where abs(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where abs(stringField) > 0",
"error": [
- "Error: [replace] function expects exactly 3 arguments, got 4."
+ "Argument of [abs] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = right(stringField, numberField)",
+ "query": "from a_index | eval var = abs(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval right(stringField, numberField)",
+ "query": "from a_index | eval abs(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = right(to_string(stringField), to_integer(stringField))",
+ "query": "from a_index | eval var = abs(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval right(numberField, stringField)",
+ "query": "from a_index | eval abs(stringField)",
"error": [
- "Argument of [right] must be [string], found value [numberField] type [number]",
- "Argument of [right] must be [number], found value [stringField] type [string]"
+ "Argument of [abs] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval right(stringField, numberField, extraArg)",
+ "query": "from a_index | eval abs(numberField, extraArg)",
"error": [
- "Error: [right] function expects exactly 2 arguments, got 3."
+ "Error: [abs] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = round(numberField, numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval round(numberField, numberField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval var = round(to_integer(stringField), to_integer(stringField))",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval round(stringField, stringField)",
+ "query": "from a_index | eval var = abs(*)",
"error": [
- "Argument of [round] must be [number], found value [stringField] type [string]",
- "Argument of [round] must be [number], found value [stringField] type [string]"
+ "Using wildcards (*) in abs is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval round(numberField, numberField, extraArg)",
- "error": [
- "Error: [round] function expects no more than 2 arguments, got 3."
- ],
+ "query": "from a_index | sort abs(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = rtrim(stringField)",
+ "query": "row var = acos(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval rtrim(stringField)",
+ "query": "row acos(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = rtrim(to_string(stringField))",
+ "query": "row var = acos(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval rtrim(numberField)",
+ "query": "row var = acos(\"a\")",
"error": [
- "Argument of [rtrim] must be [string], found value [numberField] type [number]"
+ "Argument of [acos] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval rtrim(stringField, extraArg)",
- "error": [
- "Error: [rtrim] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | where acos(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = rtrim(*)",
+ "query": "from a_index | where acos(stringField) > 0",
"error": [
- "Using wildcards (*) in rtrim is not allowed"
+ "Argument of [acos] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = signum(numberField)",
+ "query": "from a_index | eval var = acos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval signum(numberField)",
+ "query": "from a_index | eval acos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = signum(to_integer(stringField))",
+ "query": "from a_index | eval var = acos(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval signum(stringField)",
+ "query": "from a_index | eval acos(stringField)",
"error": [
- "Argument of [signum] must be [number], found value [stringField] type [string]"
+ "Argument of [acos] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval signum(numberField, extraArg)",
+ "query": "from a_index | eval acos(numberField, extraArg)",
"error": [
- "Error: [signum] function expects exactly one argument, got 2."
+ "Error: [acos] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = signum(*)",
+ "query": "from a_index | eval var = acos(*)",
"error": [
- "Using wildcards (*) in signum is not allowed"
+ "Using wildcards (*) in acos is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = sin(numberField)",
+ "query": "from a_index | sort acos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sin(numberField)",
+ "query": "row var = asin(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = sin(to_integer(stringField))",
+ "query": "row asin(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sin(stringField)",
- "error": [
- "Argument of [sin] must be [number], found value [stringField] type [string]"
- ],
+ "query": "row var = asin(to_integer(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval sin(numberField, extraArg)",
+ "query": "row var = asin(\"a\")",
"error": [
- "Error: [sin] function expects exactly one argument, got 2."
+ "Argument of [asin] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = sin(*)",
+ "query": "from a_index | where asin(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where asin(stringField) > 0",
"error": [
- "Using wildcards (*) in sin is not allowed"
+ "Argument of [asin] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = sinh(numberField)",
+ "query": "from a_index | eval var = asin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sinh(numberField)",
+ "query": "from a_index | eval asin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = sinh(to_integer(stringField))",
+ "query": "from a_index | eval var = asin(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sinh(stringField)",
+ "query": "from a_index | eval asin(stringField)",
"error": [
- "Argument of [sinh] must be [number], found value [stringField] type [string]"
+ "Argument of [asin] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval sinh(numberField, extraArg)",
+ "query": "from a_index | eval asin(numberField, extraArg)",
"error": [
- "Error: [sinh] function expects exactly one argument, got 2."
+ "Error: [asin] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = sinh(*)",
+ "query": "from a_index | eval var = asin(*)",
"error": [
- "Using wildcards (*) in sinh is not allowed"
+ "Using wildcards (*) in asin is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = split(stringField, stringField)",
+ "query": "from a_index | sort asin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval split(stringField, stringField)",
+ "query": "row var = atan(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = split(to_string(stringField), to_string(stringField))",
+ "query": "row atan(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval split(numberField, numberField)",
+ "query": "row var = atan(to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = atan(\"a\")",
"error": [
- "Argument of [split] must be [string], found value [numberField] type [number]",
- "Argument of [split] must be [string], found value [numberField] type [number]"
+ "Argument of [atan] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval split(stringField, stringField, extraArg)",
+ "query": "from a_index | where atan(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where atan(stringField) > 0",
"error": [
- "Error: [split] function expects exactly 2 arguments, got 3."
+ "Argument of [atan] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = sqrt(numberField)",
+ "query": "from a_index | eval var = atan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sqrt(numberField)",
+ "query": "from a_index | eval atan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = sqrt(to_integer(stringField))",
+ "query": "from a_index | eval var = atan(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval sqrt(stringField)",
+ "query": "from a_index | eval atan(stringField)",
"error": [
- "Argument of [sqrt] must be [number], found value [stringField] type [string]"
+ "Argument of [atan] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval sqrt(numberField, extraArg)",
+ "query": "from a_index | eval atan(numberField, extraArg)",
"error": [
- "Error: [sqrt] function expects exactly one argument, got 2."
+ "Error: [atan] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = sqrt(*)",
+ "query": "from a_index | eval var = atan(*)",
"error": [
- "Using wildcards (*) in sqrt is not allowed"
+ "Using wildcards (*) in atan is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoPointField, geoPointField)",
+ "query": "from a_index | sort atan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoPointField, geoPointField)",
+ "query": "row var = atan2(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(to_geopoint(stringField), to_geopoint(stringField))",
+ "query": "row atan2(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
+ "query": "row var = atan2(to_integer(\"a\"), to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = atan2(\"a\", \"a\")",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [atan2] must be [number], found value [\"a\"] type [string]",
+ "Argument of [atan2] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoPointField, geoPointField, extraArg)",
+ "query": "from a_index | where atan2(numberField, numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where atan2(stringField, stringField) > 0",
"error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ "Argument of [atan2] must be [number], found value [stringField] type [string]",
+ "Argument of [atan2] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoPointField, geoShapeField)",
+ "query": "from a_index | eval var = atan2(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoPointField, geoShapeField)",
+ "query": "from a_index | eval atan2(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(to_geopoint(stringField), geoShapeField)",
+ "query": "from a_index | eval var = atan2(to_integer(stringField), to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
+ "query": "from a_index | eval atan2(stringField, stringField)",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [atan2] must be [number], found value [stringField] type [string]",
+ "Argument of [atan2] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoPointField, geoShapeField, extraArg)",
+ "query": "from a_index | eval atan2(numberField, numberField, extraArg)",
"error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ "Error: [atan2] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoShapeField, geoPointField)",
+ "query": "from a_index | sort atan2(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoShapeField, geoPointField)",
+ "query": "row var = case(true, \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoShapeField, to_geopoint(stringField))",
+ "query": "row case(true, \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = case(booleanField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoShapeField, geoPointField, extraArg)",
- "error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | eval case(booleanField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoShapeField, geoShapeField)",
+ "query": "from a_index | sort case(booleanField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoShapeField, geoShapeField)",
+ "query": "row var = ceil(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(geoShapeField, geoShapeField)",
+ "query": "row ceil(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
+ "query": "row var = ceil(to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = ceil(\"a\")",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [ceil] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_contains(geoShapeField, geoShapeField, extraArg)",
+ "query": "from a_index | where ceil(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where ceil(stringField) > 0",
"error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ "Argument of [ceil] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval var = ceil(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval ceil(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = ceil(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
+ "query": "from a_index | eval ceil(stringField)",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [ceil] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField, extraArg)",
+ "query": "from a_index | eval ceil(numberField, extraArg)",
"error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ "Error: [ceil] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianShapeField)",
+ "query": "from a_index | eval var = ceil(*)",
+ "error": [
+ "Using wildcards (*) in ceil is not allowed"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort ceil(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianPointField, cartesianShapeField)",
+ "query": "row var = cidr_match(to_ip(\"127.0.0.1\"), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(to_cartesianpoint(stringField), cartesianShapeField)",
+ "query": "row cidr_match(to_ip(\"127.0.0.1\"), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "row var = cidr_match(to_ip(\"a\"), to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianPointField, cartesianShapeField, extraArg)",
+ "query": "row var = cidr_match(\"a\", 5)",
"error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ "Argument of [cidr_match] must be [ip], found value [\"a\"] type [string]",
+ "Argument of [cidr_match] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | eval var = cidr_match(ipField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | eval cidr_match(ipField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianShapeField, to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = cidr_match(to_ip(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
+ "query": "from a_index | eval cidr_match(stringField, numberField)",
"error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [cidr_match] must be [ip], found value [stringField] type [string]",
+ "Argument of [cidr_match] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianShapeField, cartesianPointField, extraArg)",
- "error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | sort cidr_match(ipField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianShapeField)",
+ "query": "row var = coalesce(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianShapeField, cartesianShapeField)",
+ "query": "row coalesce(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | eval var = coalesce(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(stringField, stringField)",
- "error": [
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval coalesce(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_contains(cartesianShapeField, cartesianShapeField, extraArg)",
- "error": [
- "Error: [st_contains] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | sort coalesce(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoPointField, geoPointField)",
+ "query": "row var = concat(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoPointField, geoPointField)",
+ "query": "row concat(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(to_geopoint(stringField), to_geopoint(stringField))",
+ "query": "row var = concat(to_string(\"a\"), to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "row var = concat(5, 5)",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [concat] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoPointField, geoPointField, extraArg)",
+ "query": "from a_index | where length(concat(stringField, stringField)) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(concat(numberField, numberField)) > 0",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Argument of [concat] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoPointField, geoShapeField)",
+ "query": "from a_index | eval var = concat(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoPointField, geoShapeField)",
+ "query": "from a_index | eval concat(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(to_geopoint(stringField), geoShapeField)",
+ "query": "from a_index | eval var = concat(to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "from a_index | eval concat(numberField, numberField)",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [concat] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoPointField, geoShapeField, extraArg)",
- "error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | sort concat(stringField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoShapeField, geoPointField)",
+ "query": "row var = cos(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoShapeField, geoPointField)",
+ "query": "row cos(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoShapeField, to_geopoint(stringField))",
+ "query": "row var = cos(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "row var = cos(\"a\")",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [cos] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoShapeField, geoPointField, extraArg)",
+ "query": "from a_index | where cos(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where cos(stringField) > 0",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Argument of [cos] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval var = cos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval cos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval var = cos(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "from a_index | eval cos(stringField)",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [cos] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(geoShapeField, geoShapeField, extraArg)",
+ "query": "from a_index | eval cos(numberField, extraArg)",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Error: [cos] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval var = cos(*)",
+ "error": [
+ "Using wildcards (*) in cos is not allowed"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort cos(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField)",
+ "query": "row var = cosh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
+ "query": "row cosh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "row var = cosh(to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = cosh(\"a\")",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [cosh] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField, extraArg)",
+ "query": "from a_index | where cosh(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where cosh(stringField) > 0",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Argument of [cosh] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianShapeField)",
+ "query": "from a_index | eval var = cosh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField)",
+ "query": "from a_index | eval cosh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), cartesianShapeField)",
+ "query": "from a_index | eval var = cosh(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
+ "query": "from a_index | eval cosh(stringField)",
"error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [cosh] must be [number], found value [stringField] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval cosh(numberField, extraArg)",
+ "error": [
+ "Error: [cosh] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField, extraArg)",
+ "query": "from a_index | eval var = cosh(*)",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Using wildcards (*) in cosh is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | sort cosh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | eval var = date_diff(\"year\", dateField, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianShapeField, to_cartesianpoint(stringField))",
+ "query": "from a_index | eval date_diff(\"year\", dateField, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
- "error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = date_diff(\"year\", to_datetime(stringField), to_datetime(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField, extraArg)",
+ "query": "from a_index | eval date_diff(numberField, stringField, stringField)",
"error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ "Argument of [date_diff] must be [string], found value [numberField] type [number]",
+ "Argument of [date_diff] must be [date], found value [stringField] type [string]",
+ "Argument of [date_diff] must be [date], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianShapeField)",
- "error": [],
+ "query": "from a_index | eval date_diff(\"year\", dateField, dateField, extraArg)",
+ "error": [
+ "Error: [date_diff] function expects exactly 3 arguments, got 4."
+ ],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | sort date_diff(\"year\", dateField, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianShapeField)",
+ "query": "row var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", now())",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_disjoint(stringField, stringField)",
- "error": [
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField, extraArg)",
- "error": [
- "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
- ],
+ "query": "row date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", now())",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(geoPointField, geoPointField)",
+ "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoPointField, geoPointField)",
+ "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(to_geopoint(stringField), to_geopoint(stringField))",
+ "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", to_datetime(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
+ "query": "from a_index | eval date_extract(stringField, stringField)",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [date_extract] must be [chrono_literal], found value [stringField] type [string]",
+ "Argument of [date_extract] must be [date], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoPointField, geoPointField, extraArg)",
+ "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField, extraArg)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Error: [date_extract] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(geoPointField, geoShapeField)",
+ "query": "from a_index | sort date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoPointField, geoShapeField)",
+ "query": "row var = date_format(now(), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(to_geopoint(stringField), geoShapeField)",
+ "query": "row date_format(now(), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
- "error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval st_intersects(geoPointField, geoShapeField, extraArg)",
- "error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = st_intersects(geoShapeField, geoPointField)",
+ "query": "from a_index | eval var = date_format(dateField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoShapeField, geoPointField)",
+ "query": "from a_index | eval date_format(dateField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(geoShapeField, to_geopoint(stringField))",
+ "query": "from a_index | eval var = date_format(to_datetime(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
+ "query": "from a_index | eval date_format(stringField, numberField)",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [date_format] must be [date], found value [stringField] type [string]",
+ "Argument of [date_format] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoShapeField, geoPointField, extraArg)",
+ "query": "from a_index | eval date_format(dateField, stringField, extraArg)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Error: [date_format] function expects no more than 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(geoShapeField, geoShapeField)",
+ "query": "from a_index | sort date_format(dateField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoShapeField, geoShapeField)",
+ "query": "row var = date_parse(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(geoShapeField, geoShapeField)",
+ "query": "row date_parse(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
- "error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "row var = date_parse(to_string(\"a\"), to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(geoShapeField, geoShapeField, extraArg)",
+ "query": "row var = date_parse(5, 5)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Argument of [date_parse] must be [string], found value [5] type [number]",
+ "Argument of [date_parse] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval var = date_parse(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval date_parse(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = date_parse(to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
+ "query": "from a_index | eval date_parse(numberField, numberField)",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [date_parse] must be [string], found value [numberField] type [number]",
+ "Argument of [date_parse] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField, extraArg)",
+ "query": "from a_index | eval date_parse(stringField, stringField, extraArg)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Error: [date_parse] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianShapeField)",
+ "query": "from a_index | sort date_parse(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianPointField, cartesianShapeField)",
+ "query": "row var = date_trunc(1 year, now())",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(to_cartesianpoint(stringField), cartesianShapeField)",
+ "query": "row date_trunc(1 year, now())",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
- "error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval st_intersects(cartesianPointField, cartesianShapeField, extraArg)",
- "error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | eval var = date_trunc(1 year, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | eval date_trunc(1 year, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(cartesianShapeField, to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = date_trunc(1 year, to_datetime(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
+ "query": "from a_index | eval date_trunc(stringField, stringField)",
"error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [date_trunc] must be [time_literal], found value [stringField] type [string]",
+ "Argument of [date_trunc] must be [date], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianPointField, extraArg)",
+ "query": "from a_index | eval date_trunc(1 year, dateField, extraArg)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Error: [date_trunc] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | sort date_trunc(1 year, dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField)",
+ "query": "row var = e()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianShapeField)",
+ "query": "row e()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(stringField, stringField)",
- "error": [
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | where e() > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField, extraArg)",
+ "query": "from a_index | eval var = e()",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval e()",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval e(extraArg)",
"error": [
- "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ "Error: [e] function expects exactly 0 arguments, got 1."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoPointField, geoPointField)",
+ "query": "from a_index | sort e()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoPointField, geoPointField)",
+ "query": "row var = ends_with(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(to_geopoint(stringField), to_geopoint(stringField))",
+ "query": "row ends_with(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "row var = ends_with(to_string(\"a\"), to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoPointField, geoPointField, extraArg)",
+ "query": "row var = ends_with(5, 5)",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Argument of [ends_with] must be [string], found value [5] type [number]",
+ "Argument of [ends_with] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoPointField, geoShapeField)",
+ "query": "from a_index | eval var = ends_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoPointField, geoShapeField)",
+ "query": "from a_index | eval ends_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(to_geopoint(stringField), geoShapeField)",
+ "query": "from a_index | eval var = ends_with(to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
+ "query": "from a_index | eval ends_with(numberField, numberField)",
"error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [ends_with] must be [string], found value [numberField] type [number]",
+ "Argument of [ends_with] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoPointField, geoShapeField, extraArg)",
+ "query": "from a_index | eval ends_with(stringField, stringField, extraArg)",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Error: [ends_with] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoShapeField, geoPointField)",
+ "query": "from a_index | sort ends_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoShapeField, geoPointField)",
+ "query": "row var = floor(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoShapeField, to_geopoint(stringField))",
+ "query": "row floor(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
+ "query": "row var = floor(to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = floor(\"a\")",
"error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [floor] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoShapeField, geoPointField, extraArg)",
+ "query": "from a_index | where floor(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where floor(stringField) > 0",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Argument of [floor] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval var = floor(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval floor(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(geoShapeField, geoShapeField)",
+ "query": "from a_index | eval var = floor(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
+ "query": "from a_index | eval floor(stringField)",
"error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [floor] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_within(geoShapeField, geoShapeField, extraArg)",
+ "query": "from a_index | eval floor(numberField, extraArg)",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Error: [floor] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianPointField, cartesianPointField)",
+ "query": "from a_index | eval var = floor(*)",
+ "error": [
+ "Using wildcards (*) in floor is not allowed"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort floor(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField)",
+ "query": "row var = greatest(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
+ "query": "row greatest(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = greatest(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField, extraArg)",
- "error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | eval greatest(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianPointField, cartesianShapeField)",
+ "query": "from a_index | sort greatest(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianPointField, cartesianShapeField)",
+ "query": "row var = least(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(to_cartesianpoint(stringField), cartesianShapeField)",
+ "query": "row least(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
- "error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = least(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianPointField, cartesianShapeField, extraArg)",
- "error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
- ],
+ "query": "from a_index | eval least(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianPointField)",
+ "query": "from a_index | sort least(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianShapeField, cartesianPointField)",
+ "query": "row var = left(\"a\", 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianShapeField, to_cartesianpoint(stringField))",
+ "query": "row left(\"a\", 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
+ "query": "row var = left(to_string(\"a\"), to_integer(\"a\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = left(5, \"a\")",
"error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [left] must be [string], found value [5] type [number]",
+ "Argument of [left] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianShapeField, cartesianPointField, extraArg)",
+ "query": "from a_index | where length(left(stringField, numberField)) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(left(numberField, stringField)) > 0",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Argument of [left] must be [string], found value [numberField] type [number]",
+ "Argument of [left] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | eval var = left(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | eval left(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianShapeField)",
+ "query": "from a_index | eval var = left(to_string(stringField), to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_within(stringField, stringField)",
+ "query": "from a_index | eval left(numberField, stringField)",
"error": [
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
- "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [left] must be [string], found value [numberField] type [number]",
+ "Argument of [left] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_within(cartesianShapeField, cartesianShapeField, extraArg)",
+ "query": "from a_index | eval left(stringField, numberField, extraArg)",
"error": [
- "Error: [st_within] function expects exactly 2 arguments, got 3."
+ "Error: [left] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(geoPointField)",
+ "query": "from a_index | sort left(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_x(geoPointField)",
+ "query": "row var = length(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(to_geopoint(stringField))",
+ "query": "row length(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_x(stringField)",
- "error": [
- "Argument of [st_x] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "row var = length(to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_x(geoPointField, extraArg)",
+ "query": "row var = length(5)",
"error": [
- "Error: [st_x] function expects exactly one argument, got 2."
+ "Argument of [length] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(*)",
+ "query": "from a_index | where length(stringField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(numberField) > 0",
"error": [
- "Using wildcards (*) in st_x is not allowed"
+ "Argument of [length] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(cartesianPointField)",
+ "query": "from a_index | eval var = length(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_x(cartesianPointField)",
+ "query": "from a_index | eval length(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = length(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_x(stringField)",
+ "query": "from a_index | eval length(numberField)",
"error": [
- "Argument of [st_x] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [length] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval st_x(cartesianPointField, extraArg)",
+ "query": "from a_index | eval length(stringField, extraArg)",
"error": [
- "Error: [st_x] function expects exactly one argument, got 2."
+ "Error: [length] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_x(*)",
+ "query": "from a_index | eval var = length(*)",
"error": [
- "Using wildcards (*) in st_x is not allowed"
+ "Using wildcards (*) in length is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(geoPointField)",
+ "query": "from a_index | sort length(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_y(geoPointField)",
+ "query": "row var = log(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(to_geopoint(stringField))",
+ "query": "row log(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_y(stringField)",
- "error": [
- "Argument of [st_y] must be [geo_point], found value [stringField] type [string]"
- ],
+ "query": "row var = log(to_integer(\"a\"), to_integer(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval st_y(geoPointField, extraArg)",
+ "query": "row var = log(\"a\", \"a\")",
"error": [
- "Error: [st_y] function expects exactly one argument, got 2."
+ "Argument of [log] must be [number], found value [\"a\"] type [string]",
+ "Argument of [log] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(*)",
+ "query": "from a_index | where log(numberField, numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where log(stringField, stringField) > 0",
"error": [
- "Using wildcards (*) in st_y is not allowed"
+ "Argument of [log] must be [number], found value [stringField] type [string]",
+ "Argument of [log] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(cartesianPointField)",
+ "query": "from a_index | eval var = log(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_y(cartesianPointField)",
+ "query": "from a_index | eval log(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(to_cartesianpoint(stringField))",
+ "query": "from a_index | eval var = log(to_integer(stringField), to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval st_y(stringField)",
+ "query": "from a_index | eval log(stringField, stringField)",
"error": [
- "Argument of [st_y] must be [geo_point], found value [stringField] type [string]"
+ "Argument of [log] must be [number], found value [stringField] type [string]",
+ "Argument of [log] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval st_y(cartesianPointField, extraArg)",
+ "query": "from a_index | eval log(numberField, numberField, extraArg)",
"error": [
- "Error: [st_y] function expects exactly one argument, got 2."
+ "Error: [log] function expects no more than 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = st_y(*)",
- "error": [
- "Using wildcards (*) in st_y is not allowed"
- ],
+ "query": "from a_index | sort log(numberField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = starts_with(stringField, stringField)",
+ "query": "row var = log10(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval starts_with(stringField, stringField)",
+ "query": "row log10(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = starts_with(to_string(stringField), to_string(stringField))",
+ "query": "row var = log10(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval starts_with(numberField, numberField)",
+ "query": "row var = log10(\"a\")",
"error": [
- "Argument of [starts_with] must be [string], found value [numberField] type [number]",
- "Argument of [starts_with] must be [string], found value [numberField] type [number]"
+ "Argument of [log10] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval starts_with(stringField, stringField, extraArg)",
+ "query": "from a_index | where log10(numberField) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where log10(stringField) > 0",
"error": [
- "Error: [starts_with] function expects exactly 2 arguments, got 3."
+ "Argument of [log10] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = substring(stringField, numberField, numberField)",
+ "query": "from a_index | eval var = log10(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval substring(stringField, numberField, numberField)",
+ "query": "from a_index | eval log10(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = substring(to_string(stringField), to_integer(stringField), to_integer(stringField))",
+ "query": "from a_index | eval var = log10(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval substring(numberField, stringField, stringField)",
+ "query": "from a_index | eval log10(stringField)",
"error": [
- "Argument of [substring] must be [string], found value [numberField] type [number]",
- "Argument of [substring] must be [number], found value [stringField] type [string]",
- "Argument of [substring] must be [number], found value [stringField] type [string]"
+ "Argument of [log10] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval substring(stringField, numberField, numberField, extraArg)",
+ "query": "from a_index | eval log10(numberField, extraArg)",
"error": [
- "Error: [substring] function expects exactly 3 arguments, got 4."
+ "Error: [log10] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = tan(numberField)",
+ "query": "from a_index | eval var = log10(*)",
+ "error": [
+ "Using wildcards (*) in log10 is not allowed"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort log10(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tan(numberField)",
+ "query": "row var = ltrim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = tan(to_integer(stringField))",
+ "query": "row ltrim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tan(stringField)",
- "error": [
- "Argument of [tan] must be [number], found value [stringField] type [string]"
- ],
+ "query": "row var = ltrim(to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval tan(numberField, extraArg)",
+ "query": "row var = ltrim(5)",
"error": [
- "Error: [tan] function expects exactly one argument, got 2."
+ "Argument of [ltrim] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = tan(*)",
+ "query": "from a_index | where length(ltrim(stringField)) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(ltrim(numberField)) > 0",
"error": [
- "Using wildcards (*) in tan is not allowed"
+ "Argument of [ltrim] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = tanh(numberField)",
+ "query": "from a_index | eval var = ltrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tanh(numberField)",
+ "query": "from a_index | eval ltrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = tanh(to_integer(stringField))",
+ "query": "from a_index | eval var = ltrim(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tanh(stringField)",
+ "query": "from a_index | eval ltrim(numberField)",
"error": [
- "Argument of [tanh] must be [number], found value [stringField] type [string]"
+ "Argument of [ltrim] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval tanh(numberField, extraArg)",
+ "query": "from a_index | eval ltrim(stringField, extraArg)",
"error": [
- "Error: [tanh] function expects exactly one argument, got 2."
+ "Error: [ltrim] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = tanh(*)",
+ "query": "from a_index | eval var = ltrim(*)",
"error": [
- "Using wildcards (*) in tanh is not allowed"
+ "Using wildcards (*) in ltrim is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = tau()",
+ "query": "from a_index | sort ltrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tau()",
+ "query": "row var = mv_avg(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = tau()",
+ "query": "row mv_avg(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tau()",
+ "query": "row var = mv_avg(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval tau(extraArg)",
+ "query": "row var = mv_avg(\"a\")",
"error": [
- "Error: [tau] function expects exactly 0 arguments, got 1."
+ "Argument of [mv_avg] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_boolean(stringField)",
+ "query": "from a_index | where mv_avg(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_boolean(stringField)",
- "error": [],
+ "query": "from a_index | where mv_avg(stringField) > 0",
+ "error": [
+ "Argument of [mv_avg] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = to_bool(stringField)",
+ "query": "from a_index | eval var = mv_avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_boolean(*)",
- "error": [
- "Using wildcards (*) in to_boolean is not allowed"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = to_cartesianpoint(stringField)",
+ "query": "from a_index | eval mv_avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_cartesianpoint(stringField)",
+ "query": "from a_index | eval var = mv_avg(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_cartesianpoint(*)",
+ "query": "from a_index | eval mv_avg(stringField)",
"error": [
- "Using wildcards (*) in to_cartesianpoint is not allowed"
+ "Argument of [mv_avg] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_cartesianshape(stringField)",
- "error": [],
+ "query": "from a_index | eval mv_avg(numberField, extraArg)",
+ "error": [
+ "Error: [mv_avg] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | eval to_cartesianshape(stringField)",
- "error": [],
+ "query": "from a_index | eval var = mv_avg(*)",
+ "error": [
+ "Using wildcards (*) in mv_avg is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = to_cartesianshape(*)",
- "error": [
- "Using wildcards (*) in to_cartesianshape is not allowed"
- ],
+ "query": "from a_index | sort mv_avg(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_datetime(stringField)",
+ "query": "row var = mv_concat(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_datetime(stringField)",
+ "query": "row mv_concat(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_dt(stringField)",
+ "query": "row var = mv_concat(to_string(\"a\"), to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_datetime(*)",
+ "query": "row var = mv_concat(5, 5)",
"error": [
- "Using wildcards (*) in to_datetime is not allowed"
+ "Argument of [mv_concat] must be [string], found value [5] type [number]",
+ "Argument of [mv_concat] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_degrees(numberField)",
+ "query": "from a_index | where length(mv_concat(stringField, stringField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_degrees(numberField)",
+ "query": "from a_index | where length(mv_concat(numberField, numberField)) > 0",
+ "error": [
+ "Argument of [mv_concat] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_concat] must be [string], found value [numberField] type [number]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = mv_concat(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_degrees(to_integer(stringField))",
+ "query": "from a_index | eval mv_concat(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_degrees(stringField)",
- "error": [
- "Argument of [to_degrees] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = mv_concat(to_string(stringField), to_string(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval to_degrees(numberField, extraArg)",
+ "query": "from a_index | eval mv_concat(numberField, numberField)",
"error": [
- "Error: [to_degrees] function expects exactly one argument, got 2."
+ "Argument of [mv_concat] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_concat] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_degrees(*)",
+ "query": "from a_index | eval mv_concat(stringField, stringField, extraArg)",
"error": [
- "Using wildcards (*) in to_degrees is not allowed"
+ "Error: [mv_concat] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = to_double(stringField)",
+ "query": "from a_index | sort mv_concat(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_double(stringField)",
+ "query": "row var = mv_count(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_dbl(stringField)",
+ "query": "row mv_count(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_double(*)",
- "error": [
- "Using wildcards (*) in to_double is not allowed"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = to_geopoint(stringField)",
+ "query": "from a_index | eval var = mv_count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_geopoint(stringField)",
+ "query": "from a_index | eval mv_count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_geopoint(*)",
+ "query": "from a_index | eval var = mv_count(*)",
"error": [
- "Using wildcards (*) in to_geopoint is not allowed"
+ "Using wildcards (*) in mv_count is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_geoshape(stringField)",
+ "query": "from a_index | sort mv_count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_geoshape(stringField)",
+ "query": "row var = mv_dedupe(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_geoshape(*)",
- "error": [
- "Using wildcards (*) in to_geoshape is not allowed"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = to_integer(stringField)",
+ "query": "row mv_dedupe(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_integer(stringField)",
+ "query": "from a_index | eval var = mv_dedupe(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_int(stringField)",
+ "query": "from a_index | eval mv_dedupe(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_integer(*)",
+ "query": "from a_index | eval var = mv_dedupe(*)",
"error": [
- "Using wildcards (*) in to_integer is not allowed"
+ "Using wildcards (*) in mv_dedupe is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_ip(stringField)",
+ "query": "from a_index | sort mv_dedupe(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_ip(stringField)",
+ "query": "row var = mv_first(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_ip(*)",
- "error": [
- "Using wildcards (*) in to_ip is not allowed"
- ],
+ "query": "row mv_first(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_long(stringField)",
+ "query": "from a_index | eval var = mv_first(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_long(stringField)",
+ "query": "from a_index | eval mv_first(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_long(*)",
+ "query": "from a_index | eval var = mv_first(*)",
"error": [
- "Using wildcards (*) in to_long is not allowed"
+ "Using wildcards (*) in mv_first is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_lower(stringField)",
+ "query": "from a_index | sort mv_first(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_lower(stringField)",
+ "query": "row var = mv_last(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_lower(to_string(stringField))",
+ "query": "row mv_last(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_lower(numberField)",
- "error": [
- "Argument of [to_lower] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval var = mv_last(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval to_lower(stringField, extraArg)",
- "error": [
- "Error: [to_lower] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | eval mv_last(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_lower(*)",
+ "query": "from a_index | eval var = mv_last(*)",
"error": [
- "Using wildcards (*) in to_lower is not allowed"
+ "Using wildcards (*) in mv_last is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_radians(numberField)",
+ "query": "from a_index | sort mv_last(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_radians(numberField)",
+ "query": "row var = mv_max(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_radians(to_integer(stringField))",
+ "query": "row mv_max(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_radians(stringField)",
- "error": [
- "Argument of [to_radians] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = mv_max(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval to_radians(numberField, extraArg)",
- "error": [
- "Error: [to_radians] function expects exactly one argument, got 2."
- ],
+ "query": "from a_index | eval mv_max(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_radians(*)",
+ "query": "from a_index | eval var = mv_max(*)",
"error": [
- "Using wildcards (*) in to_radians is not allowed"
+ "Using wildcards (*) in mv_max is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_string(stringField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval to_string(stringField)",
+ "query": "from a_index | sort mv_max(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_str(stringField)",
+ "query": "row var = mv_median(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_string(*)",
- "error": [
- "Using wildcards (*) in to_string is not allowed"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = to_unsigned_long(stringField)",
+ "query": "row mv_median(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_unsigned_long(stringField)",
+ "query": "row var = mv_median(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_ul(stringField)",
- "error": [],
+ "query": "row var = mv_median(\"a\")",
+ "error": [
+ "Argument of [mv_median] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = to_ulong(stringField)",
+ "query": "from a_index | where mv_median(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_unsigned_long(*)",
+ "query": "from a_index | where mv_median(stringField) > 0",
"error": [
- "Using wildcards (*) in to_unsigned_long is not allowed"
+ "Argument of [mv_median] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_upper(stringField)",
+ "query": "from a_index | eval var = mv_median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_upper(stringField)",
+ "query": "from a_index | eval mv_median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_upper(to_string(stringField))",
+ "query": "from a_index | eval var = mv_median(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval to_upper(numberField)",
+ "query": "from a_index | eval mv_median(stringField)",
"error": [
- "Argument of [to_upper] must be [string], found value [numberField] type [number]"
+ "Argument of [mv_median] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval to_upper(stringField, extraArg)",
+ "query": "from a_index | eval mv_median(numberField, extraArg)",
"error": [
- "Error: [to_upper] function expects exactly one argument, got 2."
+ "Error: [mv_median] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = to_upper(*)",
+ "query": "from a_index | eval var = mv_median(*)",
"error": [
- "Using wildcards (*) in to_upper is not allowed"
+ "Using wildcards (*) in mv_median is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = to_version(stringField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval to_version(stringField)",
+ "query": "from a_index | sort mv_median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_ver(stringField)",
+ "query": "row var = mv_min(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = to_version(*)",
- "error": [
- "Using wildcards (*) in to_version is not allowed"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval var = trim(stringField)",
+ "query": "row mv_min(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval trim(stringField)",
+ "query": "from a_index | eval var = mv_min(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = trim(to_string(stringField))",
+ "query": "from a_index | eval mv_min(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval trim(numberField)",
- "error": [
- "Argument of [trim] must be [string], found value [numberField] type [number]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval trim(stringField, extraArg)",
+ "query": "from a_index | eval var = mv_min(*)",
"error": [
- "Error: [trim] function expects exactly one argument, got 2."
+ "Using wildcards (*) in mv_min is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval var = trim(*)",
- "error": [
- "Using wildcards (*) in trim is not allowed"
- ],
+ "query": "from a_index | sort mv_min(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval log10(-1)",
+ "query": "row var = mv_slice(\"a\", 5, 5)",
"error": [],
- "warning": [
- "Log of a negative number results in null: -1"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval log(-1)",
+ "query": "row mv_slice(\"a\", 5, 5)",
"error": [],
- "warning": [
- "Log of a negative number results in null: -1"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval log(-1, 20)",
+ "query": "from a_index | eval var = mv_slice(stringField, numberField, numberField)",
"error": [],
- "warning": [
- "Log of a negative number results in null: -1"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval log(-1, -20)",
+ "query": "from a_index | eval mv_slice(stringField, numberField, numberField)",
"error": [],
- "warning": [
- "Log of a negative number results in null: -1",
- "Log of a negative number results in null: -20"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval var0 = log(-1, -20)",
+ "query": "from a_index | sort mv_slice(stringField, numberField, numberField)",
"error": [],
- "warning": [
- "Log of a negative number results in null: -1",
- "Log of a negative number results in null: -20"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval numberField > 0",
+ "query": "row var = mv_sort(\"a\", \"asc\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField > 0",
+ "query": "row mv_sort(\"a\", \"asc\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField > 0)",
+ "query": "from a_index | eval var = mv_sort(stringField, \"asc\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField > 0))",
+ "query": "from a_index | eval mv_sort(stringField, \"asc\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 > 0",
+ "query": "from a_index | sort mv_sort(stringField, \"asc\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField > stringField",
+ "query": "row var = mv_sum(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField > numberField",
+ "query": "row mv_sum(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField > dateField",
+ "query": "row var = mv_sum(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField > booleanField",
+ "query": "row var = mv_sum(\"a\")",
"error": [
- "Argument of [>] must be [number], found value [booleanField] type [boolean]",
- "Argument of [>] must be [number], found value [booleanField] type [boolean]"
+ "Argument of [mv_sum] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval ipField > ipField",
+ "query": "from a_index | where mv_sum(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField > stringField",
+ "query": "from a_index | where mv_sum(stringField) > 0",
"error": [
- "Argument of [>] must be [number], found value [stringField] type [string]"
+ "Argument of [mv_sum] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField > numberField",
- "error": [
- "Argument of [>] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = mv_sum(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField > \"2022\"",
- "error": [
- "Argument of [>] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "from a_index | eval mv_sum(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField > stringField",
- "error": [
- "Argument of [>] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = mv_sum(to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField > dateField",
+ "query": "from a_index | eval mv_sum(stringField)",
"error": [
- "Argument of [>] must be [string], found value [dateField] type [date]"
+ "Argument of [mv_sum] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField > 0",
+ "query": "from a_index | eval mv_sum(numberField, extraArg)",
"error": [
- "Argument of [>] must be [number], found value [stringField] type [string]"
+ "Error: [mv_sum] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval stringField > now()",
+ "query": "from a_index | eval var = mv_sum(*)",
"error": [
- "Argument of [>] must be [string], found value [now()] type [date]"
+ "Using wildcards (*) in mv_sum is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval dateField > \"2022\"",
+ "query": "from a_index | sort mv_sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" > dateField",
+ "query": "row var = mv_zip(\"a\", \"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField > \"1.2.3\"",
+ "query": "row mv_zip(\"a\", \"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" > versionField",
+ "query": "row var = mv_zip(to_string(\"a\"), to_string(\"a\"), to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField > \"true\"",
+ "query": "row var = mv_zip(5, 5, 5)",
"error": [
- "Argument of [>] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [mv_zip] must be [string], found value [5] type [number]",
+ "Argument of [mv_zip] must be [string], found value [5] type [number]",
+ "Argument of [mv_zip] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval \"true\" > booleanField",
+ "query": "from a_index | where length(mv_zip(stringField, stringField, stringField)) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(mv_zip(numberField, numberField, numberField)) > 0",
"error": [
- "Argument of [>] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval ipField > \"136.36.3.205\"",
+ "query": "from a_index | eval var = mv_zip(stringField, stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" > ipField",
+ "query": "from a_index | eval mv_zip(stringField, stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField >= 0",
+ "query": "from a_index | eval var = mv_zip(to_string(stringField), to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField >= 0",
- "error": [],
+ "query": "from a_index | eval mv_zip(numberField, numberField, numberField)",
+ "error": [
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]",
+ "Argument of [mv_zip] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval (numberField >= 0)",
- "error": [],
+ "query": "from a_index | eval mv_zip(stringField, stringField, stringField, extraArg)",
+ "error": [
+ "Error: [mv_zip] function expects exactly 3 arguments, got 4."
+ ],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField >= 0))",
+ "query": "from a_index | sort mv_zip(stringField, stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 >= 0",
+ "query": "row var = now()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField >= stringField",
+ "query": "row now()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField >= numberField",
+ "query": "from a_index | eval var = now()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField >= dateField",
+ "query": "from a_index | eval now()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField >= booleanField",
+ "query": "from a_index | eval now(extraArg)",
"error": [
- "Argument of [>=] must be [number], found value [booleanField] type [boolean]",
- "Argument of [>=] must be [number], found value [booleanField] type [boolean]"
+ "Error: [now] function expects exactly 0 arguments, got 1."
],
"warning": []
},
{
- "query": "from a_index | eval ipField >= ipField",
+ "query": "from a_index | sort now()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField >= stringField",
- "error": [
- "Argument of [>=] must be [number], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval stringField >= numberField",
- "error": [
- "Argument of [>=] must be [number], found value [stringField] type [string]"
- ],
+ "query": "row var = pi()",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField >= \"2022\"",
- "error": [
- "Argument of [>=] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "row pi()",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField >= stringField",
- "error": [
- "Argument of [>=] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | where pi() > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField >= dateField",
- "error": [
- "Argument of [>=] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = pi()",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField >= 0",
- "error": [
- "Argument of [>=] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval pi()",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField >= now()",
+ "query": "from a_index | eval pi(extraArg)",
"error": [
- "Argument of [>=] must be [string], found value [now()] type [date]"
+ "Error: [pi] function expects exactly 0 arguments, got 1."
],
"warning": []
},
{
- "query": "from a_index | eval dateField >= \"2022\"",
+ "query": "from a_index | sort pi()",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" >= dateField",
+ "query": "row var = pow(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField >= \"1.2.3\"",
+ "query": "row pow(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" >= versionField",
+ "query": "row var = pow(to_integer(\"a\"), to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField >= \"true\"",
+ "query": "row var = pow(\"a\", \"a\")",
"error": [
- "Argument of [>=] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [pow] must be [number], found value [\"a\"] type [string]",
+ "Argument of [pow] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval \"true\" >= booleanField",
- "error": [
- "Argument of [>=] must be [string], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | where pow(numberField, numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField >= \"136.36.3.205\"",
- "error": [],
+ "query": "from a_index | where pow(stringField, stringField) > 0",
+ "error": [
+ "Argument of [pow] must be [number], found value [stringField] type [string]",
+ "Argument of [pow] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" >= ipField",
+ "query": "from a_index | eval var = pow(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField < 0",
+ "query": "from a_index | eval pow(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField < 0",
+ "query": "from a_index | eval var = pow(to_integer(stringField), to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField < 0)",
- "error": [],
+ "query": "from a_index | eval pow(stringField, stringField)",
+ "error": [
+ "Argument of [pow] must be [number], found value [stringField] type [string]",
+ "Argument of [pow] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField < 0))",
- "error": [],
+ "query": "from a_index | eval pow(numberField, numberField, extraArg)",
+ "error": [
+ "Error: [pow] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 < 0",
+ "query": "from a_index | sort pow(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField < stringField",
+ "query": "row var = replace(\"a\", \"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField < numberField",
+ "query": "row replace(\"a\", \"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField < dateField",
+ "query": "row var = replace(to_string(\"a\"), to_string(\"a\"), to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField < booleanField",
+ "query": "row var = replace(5, 5, 5)",
"error": [
- "Argument of [<] must be [number], found value [booleanField] type [boolean]",
- "Argument of [<] must be [number], found value [booleanField] type [boolean]"
+ "Argument of [replace] must be [string], found value [5] type [number]",
+ "Argument of [replace] must be [string], found value [5] type [number]",
+ "Argument of [replace] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval ipField < ipField",
+ "query": "from a_index | where length(replace(stringField, stringField, stringField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField < stringField",
- "error": [
- "Argument of [<] must be [number], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval stringField < numberField",
+ "query": "from a_index | where length(replace(numberField, numberField, numberField)) > 0",
"error": [
- "Argument of [<] must be [number], found value [stringField] type [string]"
+ "Argument of [replace] must be [string], found value [numberField] type [number]",
+ "Argument of [replace] must be [string], found value [numberField] type [number]",
+ "Argument of [replace] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval numberField < \"2022\"",
- "error": [
- "Argument of [<] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "from a_index | eval var = replace(stringField, stringField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField < stringField",
- "error": [
- "Argument of [<] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval replace(stringField, stringField, stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField < dateField",
- "error": [
- "Argument of [<] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = replace(to_string(stringField), to_string(stringField), to_string(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField < 0",
+ "query": "from a_index | eval replace(numberField, numberField, numberField)",
"error": [
- "Argument of [<] must be [number], found value [stringField] type [string]"
+ "Argument of [replace] must be [string], found value [numberField] type [number]",
+ "Argument of [replace] must be [string], found value [numberField] type [number]",
+ "Argument of [replace] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField < now()",
+ "query": "from a_index | eval replace(stringField, stringField, stringField, extraArg)",
"error": [
- "Argument of [<] must be [string], found value [now()] type [date]"
+ "Error: [replace] function expects exactly 3 arguments, got 4."
],
"warning": []
},
{
- "query": "from a_index | eval dateField < \"2022\"",
+ "query": "from a_index | sort replace(stringField, stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" < dateField",
+ "query": "row var = right(\"a\", 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField < \"1.2.3\"",
+ "query": "row right(\"a\", 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" < versionField",
+ "query": "row var = right(to_string(\"a\"), to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField < \"true\"",
+ "query": "row var = right(5, \"a\")",
"error": [
- "Argument of [<] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [right] must be [string], found value [5] type [number]",
+ "Argument of [right] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval \"true\" < booleanField",
- "error": [
- "Argument of [<] must be [string], found value [booleanField] type [boolean]"
- ],
+ "query": "from a_index | where length(right(stringField, numberField)) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField < \"136.36.3.205\"",
- "error": [],
+ "query": "from a_index | where length(right(numberField, stringField)) > 0",
+ "error": [
+ "Argument of [right] must be [string], found value [numberField] type [number]",
+ "Argument of [right] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" < ipField",
+ "query": "from a_index | eval var = right(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField <= 0",
+ "query": "from a_index | eval right(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField <= 0",
+ "query": "from a_index | eval var = right(to_string(stringField), to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField <= 0)",
- "error": [],
+ "query": "from a_index | eval right(numberField, stringField)",
+ "error": [
+ "Argument of [right] must be [string], found value [numberField] type [number]",
+ "Argument of [right] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField <= 0))",
- "error": [],
+ "query": "from a_index | eval right(stringField, numberField, extraArg)",
+ "error": [
+ "Error: [right] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 <= 0",
+ "query": "from a_index | sort right(stringField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField <= stringField",
+ "query": "row var = round(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField <= numberField",
+ "query": "row round(5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField <= dateField",
+ "query": "row var = round(to_integer(\"a\"), to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField <= booleanField",
+ "query": "row var = round(\"a\", \"a\")",
"error": [
- "Argument of [<=] must be [number], found value [booleanField] type [boolean]",
- "Argument of [<=] must be [number], found value [booleanField] type [boolean]"
+ "Argument of [round] must be [number], found value [\"a\"] type [string]",
+ "Argument of [round] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval ipField <= ipField",
+ "query": "from a_index | where round(numberField, numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField <= stringField",
- "error": [
- "Argument of [<=] must be [number], found value [stringField] type [string]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval stringField <= numberField",
+ "query": "from a_index | where round(stringField, stringField) > 0",
"error": [
- "Argument of [<=] must be [number], found value [stringField] type [string]"
+ "Argument of [round] must be [number], found value [stringField] type [string]",
+ "Argument of [round] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval numberField <= \"2022\"",
- "error": [
- "Argument of [<=] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "from a_index | eval var = round(numberField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField <= stringField",
- "error": [
- "Argument of [<=] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval round(numberField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField <= dateField",
- "error": [
- "Argument of [<=] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = round(to_integer(stringField), to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField <= 0",
+ "query": "from a_index | eval round(stringField, stringField)",
"error": [
- "Argument of [<=] must be [number], found value [stringField] type [string]"
+ "Argument of [round] must be [number], found value [stringField] type [string]",
+ "Argument of [round] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField <= now()",
+ "query": "from a_index | eval round(numberField, numberField, extraArg)",
"error": [
- "Argument of [<=] must be [string], found value [now()] type [date]"
+ "Error: [round] function expects no more than 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval dateField <= \"2022\"",
+ "query": "from a_index | sort round(numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" <= dateField",
+ "query": "row var = rtrim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField <= \"1.2.3\"",
+ "query": "row rtrim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" <= versionField",
+ "query": "row var = rtrim(to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField <= \"true\"",
+ "query": "row var = rtrim(5)",
"error": [
- "Argument of [<=] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [rtrim] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval \"true\" <= booleanField",
+ "query": "from a_index | where length(rtrim(stringField)) > 0",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where length(rtrim(numberField)) > 0",
"error": [
- "Argument of [<=] must be [string], found value [booleanField] type [boolean]"
+ "Argument of [rtrim] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | eval ipField <= \"136.36.3.205\"",
+ "query": "from a_index | eval var = rtrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" <= ipField",
+ "query": "from a_index | eval rtrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField == 0",
+ "query": "from a_index | eval var = rtrim(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField == 0",
- "error": [],
+ "query": "from a_index | eval rtrim(numberField)",
+ "error": [
+ "Argument of [rtrim] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval (numberField == 0)",
- "error": [],
+ "query": "from a_index | eval rtrim(stringField, extraArg)",
+ "error": [
+ "Error: [rtrim] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField == 0))",
- "error": [],
+ "query": "from a_index | eval var = rtrim(*)",
+ "error": [
+ "Using wildcards (*) in rtrim is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 == 0",
+ "query": "from a_index | sort rtrim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField == stringField",
+ "query": "row var = signum(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField == numberField",
+ "query": "row signum(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField == dateField",
+ "query": "row var = signum(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField == booleanField",
- "error": [],
+ "query": "row var = signum(\"a\")",
+ "error": [
+ "Argument of [signum] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ipField == ipField",
+ "query": "from a_index | where signum(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField == stringField",
+ "query": "from a_index | where signum(stringField) > 0",
"error": [
- "Argument of [==] must be [number], found value [stringField] type [string]"
+ "Argument of [signum] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField == numberField",
- "error": [
- "Argument of [==] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = signum(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField == \"2022\"",
- "error": [
- "Argument of [==] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "from a_index | eval signum(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField == stringField",
- "error": [
- "Argument of [==] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = signum(to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField == dateField",
+ "query": "from a_index | eval signum(stringField)",
"error": [
- "Argument of [==] must be [string], found value [dateField] type [date]"
+ "Argument of [signum] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField == 0",
+ "query": "from a_index | eval signum(numberField, extraArg)",
"error": [
- "Argument of [==] must be [number], found value [stringField] type [string]"
+ "Error: [signum] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval stringField == now()",
+ "query": "from a_index | eval var = signum(*)",
"error": [
- "Argument of [==] must be [string], found value [now()] type [date]"
+ "Using wildcards (*) in signum is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval dateField == \"2022\"",
+ "query": "from a_index | sort signum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" == dateField",
+ "query": "row var = sin(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField == \"1.2.3\"",
+ "query": "row sin(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" == versionField",
+ "query": "row var = sin(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField == \"true\"",
- "error": [],
+ "query": "row var = sin(\"a\")",
+ "error": [
+ "Argument of [sin] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"true\" == booleanField",
+ "query": "from a_index | where sin(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField == \"136.36.3.205\"",
- "error": [],
+ "query": "from a_index | where sin(stringField) > 0",
+ "error": [
+ "Argument of [sin] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" == ipField",
+ "query": "from a_index | eval var = sin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField != 0",
+ "query": "from a_index | eval sin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField != 0",
+ "query": "from a_index | eval var = sin(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField != 0)",
- "error": [],
+ "query": "from a_index | eval sin(stringField)",
+ "error": [
+ "Argument of [sin] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval (NOT (numberField != 0))",
- "error": [],
+ "query": "from a_index | eval sin(numberField, extraArg)",
+ "error": [
+ "Error: [sin] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 != 0",
- "error": [],
+ "query": "from a_index | eval var = sin(*)",
+ "error": [
+ "Using wildcards (*) in sin is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField != stringField",
+ "query": "from a_index | sort sin(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField != numberField",
+ "query": "row var = sinh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField != dateField",
+ "query": "row sinh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField != booleanField",
+ "query": "row var = sinh(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField != ipField",
+ "query": "row var = sinh(\"a\")",
+ "error": [
+ "Argument of [sinh] must be [number], found value [\"a\"] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where sinh(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField != stringField",
+ "query": "from a_index | where sinh(stringField) > 0",
"error": [
- "Argument of [!=] must be [number], found value [stringField] type [string]"
+ "Argument of [sinh] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField != numberField",
- "error": [
- "Argument of [!=] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = sinh(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField != \"2022\"",
- "error": [
- "Argument of [!=] must be [number], found value [\"2022\"] type [string]"
- ],
+ "query": "from a_index | eval sinh(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField != stringField",
- "error": [
- "Argument of [!=] must be [string], found value [dateField] type [date]"
- ],
+ "query": "from a_index | eval var = sinh(to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField != dateField",
+ "query": "from a_index | eval sinh(stringField)",
"error": [
- "Argument of [!=] must be [string], found value [dateField] type [date]"
+ "Argument of [sinh] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField != 0",
+ "query": "from a_index | eval sinh(numberField, extraArg)",
"error": [
- "Argument of [!=] must be [number], found value [stringField] type [string]"
+ "Error: [sinh] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval stringField != now()",
+ "query": "from a_index | eval var = sinh(*)",
"error": [
- "Argument of [!=] must be [string], found value [now()] type [date]"
+ "Using wildcards (*) in sinh is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval dateField != \"2022\"",
+ "query": "from a_index | sort sinh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"2022\" != dateField",
+ "query": "row var = split(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField != \"1.2.3\"",
+ "query": "row split(\"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1.2.3\" != versionField",
+ "query": "row var = split(to_string(\"a\"), to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField != \"true\"",
- "error": [],
+ "query": "row var = split(5, 5)",
+ "error": [
+ "Argument of [split] must be [string], found value [5] type [number]",
+ "Argument of [split] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"true\" != booleanField",
+ "query": "from a_index | where length(split(stringField, stringField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval ipField != \"136.36.3.205\"",
- "error": [],
+ "query": "from a_index | where length(split(numberField, numberField)) > 0",
+ "error": [
+ "Argument of [split] must be [string], found value [numberField] type [number]",
+ "Argument of [split] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval \"136.36.3.205\" != ipField",
+ "query": "from a_index | eval var = split(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval versionField in (\"1.2.3\", \"4.5.6\", to_version(\"2.3.2\"))",
+ "query": "from a_index | eval split(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval dateField in (\"2023-12-12\", \"2024-12-12\", date_parse(\"yyyy-MM-dd\", \"2025-12-12\"))",
+ "query": "from a_index | eval var = split(to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval booleanField in (\"true\", \"false\", false)",
- "error": [],
+ "query": "from a_index | eval split(numberField, numberField)",
+ "error": [
+ "Argument of [split] must be [string], found value [numberField] type [number]",
+ "Argument of [split] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval ipField in (\"136.36.3.205\", \"136.36.3.206\", to_ip(\"136.36.3.207\"))",
+ "query": "from a_index | eval split(stringField, stringField, extraArg)",
+ "error": [
+ "Error: [split] function expects exactly 2 arguments, got 3."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort split(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField + 1",
+ "query": "row var = sqrt(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField + 1)",
+ "query": "row sqrt(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 + 1",
+ "query": "row var = sqrt(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now() + now()",
+ "query": "row var = sqrt(\"a\")",
"error": [
- "Argument of [+] must be [time_literal], found value [now()] type [date]"
+ "Argument of [sqrt] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval 1 + \"1\"",
- "error": [
- "Argument of [+] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "from a_index | where sqrt(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1\" + 1",
+ "query": "from a_index | where sqrt(stringField) > 0",
"error": [
- "Argument of [+] must be [number], found value [\"1\"] type [string]"
+ "Argument of [sqrt] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval numberField - 1",
+ "query": "from a_index | eval var = sqrt(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField - 1)",
+ "query": "from a_index | eval sqrt(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 - 1",
+ "query": "from a_index | eval var = sqrt(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now() - now()",
+ "query": "from a_index | eval sqrt(stringField)",
"error": [
- "Argument of [-] must be [time_literal], found value [now()] type [date]"
+ "Argument of [sqrt] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval 1 - \"1\"",
+ "query": "from a_index | eval sqrt(numberField, extraArg)",
"error": [
- "Argument of [-] must be [number], found value [\"1\"] type [string]"
+ "Error: [sqrt] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval \"1\" - 1",
+ "query": "from a_index | eval var = sqrt(*)",
"error": [
- "Argument of [-] must be [number], found value [\"1\"] type [string]"
+ "Using wildcards (*) in sqrt is not allowed"
],
"warning": []
},
{
- "query": "from a_index | eval numberField * 1",
+ "query": "from a_index | sort sqrt(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField * 1)",
+ "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 * 1",
+ "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now() * now()",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [now()] type [date]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | eval 1 * \"1\"",
- "error": [
- "Argument of [*] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "row var = st_contains(to_geopoint(\"a\"), to_geopoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1\" * 1",
+ "query": "row var = st_contains(\"a\", \"a\")",
"error": [
- "Argument of [*] must be [number], found value [\"1\"] type [string]"
+ "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]",
+ "Argument of [st_contains] must be [geo_point], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval numberField / 1",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | eval (numberField / 1)",
+ "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 / 1",
+ "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now() / now()",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [now()] type [date]"
- ],
+ "query": "row var = st_contains(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 / \"1\"",
- "error": [
- "Argument of [/] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1\" / 1",
- "error": [
- "Argument of [/] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField % 1",
+ "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval (numberField % 1)",
+ "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 % 1",
+ "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval now() % now()",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [now()] type [date]"
- ],
+ "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 % \"1\"",
- "error": [
- "Argument of [%] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval \"1\" % 1",
- "error": [
- "Argument of [%] must be [number], found value [\"1\"] type [string]"
- ],
+ "query": "row var = st_contains(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1/0",
+ "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Cannot divide by zero: 1/0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval var = 1/0",
+ "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Cannot divide by zero: 1/0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval 1 + 1/0",
+ "query": "row var = st_contains(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Cannot divide by zero: 1/0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval 1%0",
+ "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Module by zero can return null value: 1%0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval var = 1%0",
+ "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Module by zero can return null value: 1%0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval 1 + 1%0",
+ "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
"error": [],
- "warning": [
- "Module by zero can return null value: 1%0"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval stringField like \"?a\"",
+ "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField NOT like \"?a\"",
+ "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT stringField like \"?a\"",
+ "query": "from a_index | eval var = st_contains(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT stringField NOT like \"?a\"",
+ "query": "from a_index | eval st_contains(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField like \"?a\"",
- "error": [
- "Argument of [like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval var = st_contains(to_geopoint(stringField), to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField NOT like \"?a\"",
+ "query": "from a_index | eval st_contains(stringField, stringField)",
"error": [
- "Argument of [not_like] must be [string], found value [numberField] type [number]"
+ "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]",
+ "Argument of [st_contains] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField like \"?a\"",
+ "query": "from a_index | eval st_contains(geoPointField, geoPointField, extraArg)",
"error": [
- "Argument of [like] must be [string], found value [numberField] type [number]"
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField NOT like \"?a\"",
- "error": [
- "Argument of [not_like] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval var = st_contains(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField rlike \"?a\"",
+ "query": "from a_index | eval st_contains(geoPointField, geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField NOT rlike \"?a\"",
+ "query": "from a_index | eval var = st_contains(to_geopoint(stringField), geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT stringField rlike \"?a\"",
+ "query": "from a_index | eval st_contains(geoPointField, geoShapeField, extraArg)",
+ "error": [
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = st_contains(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT stringField NOT rlike \"?a\"",
+ "query": "from a_index | eval st_contains(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField rlike \"?a\"",
- "error": [
- "Argument of [rlike] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval var = st_contains(geoShapeField, to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField NOT rlike \"?a\"",
+ "query": "from a_index | eval st_contains(geoShapeField, geoPointField, extraArg)",
"error": [
- "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField rlike \"?a\"",
- "error": [
- "Argument of [rlike] must be [string], found value [numberField] type [number]"
- ],
+ "query": "from a_index | eval var = st_contains(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval NOT numberField NOT rlike \"?a\"",
+ "query": "from a_index | eval st_contains(geoShapeField, geoShapeField)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval st_contains(geoShapeField, geoShapeField, extraArg)",
"error": [
- "Argument of [not_rlike] must be [string], found value [numberField] type [number]"
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 in (1, 2, 3)",
+ "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField in (1, 2, 3)",
+ "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField not in (1, 2, 3)",
+ "query": "from a_index | eval var = st_contains(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField not in (1, 2, 3, numberField)",
- "error": [],
+ "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField, extraArg)",
+ "error": [
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval 1 in (1, 2, 3, round(numberField))",
+ "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval \"a\" in (\"a\", \"b\", \"c\")",
+ "query": "from a_index | eval st_contains(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField in (\"a\", \"b\", \"c\")",
+ "query": "from a_index | eval var = st_contains(to_cartesianpoint(stringField), cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField not in (\"a\", \"b\", \"c\")",
- "error": [],
+ "query": "from a_index | eval st_contains(cartesianPointField, cartesianShapeField, extraArg)",
+ "error": [
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval stringField not in (\"a\", \"b\", \"c\", stringField)",
+ "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 in (\"a\", \"b\", \"c\")",
+ "query": "from a_index | eval st_contains(cartesianShapeField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField in (\"a\", \"b\", \"c\")",
+ "query": "from a_index | eval var = st_contains(cartesianShapeField, to_cartesianpoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField not in (\"a\", \"b\", \"c\")",
+ "query": "from a_index | eval st_contains(cartesianShapeField, cartesianPointField, extraArg)",
+ "error": [
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval numberField not in (1, 2, 3, stringField)",
+ "query": "from a_index | eval st_contains(cartesianShapeField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval avg(numberField)",
+ "query": "from a_index | eval st_contains(cartesianShapeField, cartesianShapeField, extraArg)",
"error": [
- "EVAL does not support function avg"
+ "Error: [st_contains] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) | eval `avg(numberField)` + 1",
+ "query": "from a_index | sort st_contains(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval not",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}",
- "Error: [not] function expects exactly one argument, got 0."
- ],
+ "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval in",
- "error": [
- "SyntaxError: mismatched input 'in' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField in stringField",
- "error": [
- "SyntaxError: missing '(' at 'stringField'",
- "SyntaxError: mismatched input '' expecting {',', ')'}"
- ],
+ "query": "row var = st_disjoint(to_geopoint(\"a\"), to_geopoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval stringField in stringField)",
+ "query": "row var = st_disjoint(\"a\", \"a\")",
"error": [
- "SyntaxError: missing '(' at 'stringField'",
- "Error: [in] function expects exactly 2 arguments, got 1."
+ "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]",
+ "Argument of [st_disjoint] must be [geo_point], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField not in stringField",
- "error": [
- "SyntaxError: missing '(' at 'stringField'",
- "SyntaxError: mismatched input '' expecting {',', ')'}"
- ],
+ "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"bogus\")",
+ "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
- "warning": [
- "Invalid option [\"bogus\"] for mv_sort. Supported options: [\"asc\", \"desc\"]."
- ]
+ "warning": []
},
{
- "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"ASC\")",
+ "query": "row var = st_disjoint(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval mv_sort([\"a\", \"b\"], \"DESC\")",
+ "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval result = case(false, 0, 1), round(result)",
+ "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval result = case(false, 0, 1) | stats sum(result)",
+ "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval result = case(false, 0, 1) | stats var0 = sum(result)",
+ "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval round(case(false, 0, 1))",
+ "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 anno",
- "error": [
- "EVAL does not support [date_period] in expression [1 anno]"
- ],
+ "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = 1 anno",
- "error": [
- "Unexpected time interval qualifier: 'anno'"
- ],
+ "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row var = st_disjoint(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval now() + 1 anno",
- "error": [
- "Unexpected time interval qualifier: 'anno'"
- ],
+ "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 year",
- "error": [
- "EVAL does not support [date_period] in expression [1 year]"
- ],
+ "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 year",
- "error": [
- "EVAL does not support [date_period] in expression [1 year]"
- ],
+ "query": "row var = st_disjoint(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 year",
+ "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 year",
+ "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 YEAR",
+ "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Year",
+ "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 year",
+ "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 year + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(geoPointField, geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 year",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | eval st_disjoint(geoPointField, geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 year",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 year] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(to_geopoint(stringField), to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 year",
+ "query": "from a_index | eval st_disjoint(stringField, stringField)",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 year] type [duration]"
+ "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]",
+ "Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval 1 years",
+ "query": "from a_index | eval st_disjoint(geoPointField, geoPointField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 years]"
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 years",
- "error": [
- "EVAL does not support [date_period] in expression [1 years]"
- ],
+ "query": "from a_index | eval var = st_disjoint(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 years",
+ "query": "from a_index | eval st_disjoint(geoPointField, geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 years",
+ "query": "from a_index | eval var = st_disjoint(to_geopoint(stringField), geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 YEARS",
- "error": [],
+ "query": "from a_index | eval st_disjoint(geoPointField, geoShapeField, extraArg)",
+ "error": [
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Years",
+ "query": "from a_index | eval var = st_disjoint(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 years",
+ "query": "from a_index | eval st_disjoint(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 years + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(geoShapeField, to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 years",
+ "query": "from a_index | eval st_disjoint(geoShapeField, geoPointField, extraArg)",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 years] type [duration]"
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 years",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 years",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 years] type [duration]"
- ],
+ "query": "from a_index | eval st_disjoint(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 month",
+ "query": "from a_index | eval st_disjoint(geoShapeField, geoShapeField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 month]"
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 month",
- "error": [
- "EVAL does not support [date_period] in expression [1 month]"
- ],
+ "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 month",
+ "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 month",
+ "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MONTH",
- "error": [],
+ "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField, extraArg)",
+ "error": [
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Month",
+ "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 month",
+ "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 month + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), cartesianShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 month",
+ "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField, extraArg)",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 month] type [duration]"
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 month",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 month",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 month] type [duration]"
- ],
+ "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 months",
- "error": [
- "EVAL does not support [date_period] in expression [1 months]"
- ],
+ "query": "from a_index | eval var = st_disjoint(cartesianShapeField, to_cartesianpoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 months",
+ "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 months]"
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 months",
+ "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 months",
+ "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MONTHS",
+ "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField, extraArg)",
+ "error": [
+ "Error: [st_disjoint] function expects exactly 2 arguments, got 3."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort st_disjoint(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Months",
+ "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 months",
+ "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 months + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 months] type [duration]"
- ],
+ "query": "row var = st_intersects(to_geopoint(\"a\"), to_geopoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 months",
+ "query": "row var = st_intersects(\"a\", \"a\")",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 months] type [duration]"
+ "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]",
+ "Argument of [st_intersects] must be [geo_point], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 months",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 months] type [duration]"
- ],
+ "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 months",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 months] type [duration]"
- ],
+ "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 week",
- "error": [
- "EVAL does not support [date_period] in expression [1 week]"
- ],
+ "query": "row var = st_intersects(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 week",
- "error": [
- "EVAL does not support [date_period] in expression [1 week]"
- ],
+ "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 week",
+ "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 week",
+ "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 WEEK",
+ "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Week",
+ "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 week",
+ "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 week + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 week] type [duration]"
- ],
+ "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 week",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 week] type [duration]"
- ],
+ "query": "row var = st_intersects(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 week",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 week] type [duration]"
- ],
+ "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 week",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 week] type [duration]"
- ],
+ "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 weeks",
- "error": [
- "EVAL does not support [date_period] in expression [1 weeks]"
- ],
+ "query": "row var = st_intersects(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 weeks",
- "error": [
- "EVAL does not support [date_period] in expression [1 weeks]"
- ],
+ "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 weeks",
+ "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 weeks",
+ "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 WEEKS",
+ "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Weeks",
+ "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 weeks",
+ "query": "from a_index | eval var = st_intersects(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 weeks + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 weeks] type [duration]"
- ],
+ "query": "from a_index | eval st_intersects(geoPointField, geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 weeks",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 weeks] type [duration]"
- ],
+ "query": "from a_index | eval var = st_intersects(to_geopoint(stringField), to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 weeks",
+ "query": "from a_index | eval st_intersects(stringField, stringField)",
"error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 weeks] type [duration]"
+ "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]",
+ "Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 weeks",
+ "query": "from a_index | eval st_intersects(geoPointField, geoPointField, extraArg)",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 weeks] type [duration]"
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 day",
- "error": [
- "EVAL does not support [date_period] in expression [1 day]"
- ],
+ "query": "from a_index | eval var = st_intersects(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 day",
- "error": [
- "EVAL does not support [date_period] in expression [1 day]"
- ],
+ "query": "from a_index | eval st_intersects(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 day",
+ "query": "from a_index | eval var = st_intersects(to_geopoint(stringField), geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 day",
- "error": [],
+ "query": "from a_index | eval st_intersects(geoPointField, geoShapeField, extraArg)",
+ "error": [
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 DAY",
+ "query": "from a_index | eval var = st_intersects(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Day",
+ "query": "from a_index | eval st_intersects(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 day",
+ "query": "from a_index | eval var = st_intersects(geoShapeField, to_geopoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 day + 1 year",
+ "query": "from a_index | eval st_intersects(geoShapeField, geoPointField, extraArg)",
"error": [
- "Argument of [+] must be [date], found value [1 day] type [duration]"
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 day",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | eval var = st_intersects(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 day",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 day] type [duration]"
- ],
+ "query": "from a_index | eval st_intersects(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 day",
+ "query": "from a_index | eval st_intersects(geoShapeField, geoShapeField, extraArg)",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 day] type [duration]"
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 days",
- "error": [
- "EVAL does not support [date_period] in expression [1 days]"
- ],
+ "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 days",
- "error": [
- "EVAL does not support [date_period] in expression [1 days]"
- ],
+ "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 days",
+ "query": "from a_index | eval var = st_intersects(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 days",
- "error": [],
+ "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField, extraArg)",
+ "error": [
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 DAYS",
+ "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Days",
+ "query": "from a_index | eval st_intersects(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 days",
+ "query": "from a_index | eval var = st_intersects(to_cartesianpoint(stringField), cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 days + 1 year",
+ "query": "from a_index | eval st_intersects(cartesianPointField, cartesianShapeField, extraArg)",
"error": [
- "Argument of [+] must be [date], found value [1 days] type [duration]"
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 days",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 days",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 days",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 days] type [duration]"
- ],
+ "query": "from a_index | eval var = st_intersects(cartesianShapeField, to_cartesianpoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 hour",
+ "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianPointField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 hour]"
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval 1 hour",
- "error": [
- "EVAL does not support [date_period] in expression [1 hour]"
- ],
+ "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 hour",
+ "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 hour",
+ "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField, extraArg)",
+ "error": [
+ "Error: [st_intersects] function expects exactly 2 arguments, got 3."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort st_intersects(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 HOUR",
+ "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Hour",
+ "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 hour",
+ "query": "row var = st_within(to_geopoint(\"a\"), to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 hour + 1 year",
+ "query": "row var = st_within(\"a\", \"a\")",
"error": [
- "Argument of [+] must be [date], found value [1 hour] type [duration]"
+ "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]",
+ "Argument of [st_within] must be [geo_point], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 hour",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 hour",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 hour",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 hour] type [duration]"
- ],
+ "query": "row var = st_within(to_geopoint(\"a\"), to_geoshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 hours",
- "error": [
- "EVAL does not support [date_period] in expression [1 hours]"
- ],
+ "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 hours",
- "error": [
- "EVAL does not support [date_period] in expression [1 hours]"
- ],
+ "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 hours",
+ "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 hours",
+ "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 HOURS",
+ "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Hours",
+ "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 hours",
+ "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 hours + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 hours] type [duration]"
- ],
+ "query": "row var = st_within(to_cartesianpoint(\"a\"), to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 hours",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 hours",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 hours",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 hours] type [duration]"
- ],
+ "query": "row var = st_within(to_cartesianpoint(\"a\"), to_cartesianshape(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minute",
- "error": [
- "EVAL does not support [date_period] in expression [1 minute]"
- ],
+ "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minute",
- "error": [
- "EVAL does not support [date_period] in expression [1 minute]"
- ],
+ "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 minute",
+ "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 minute",
+ "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MINUTE",
+ "query": "from a_index | eval var = st_within(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Minute",
+ "query": "from a_index | eval st_within(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 minute",
+ "query": "from a_index | eval var = st_within(to_geopoint(stringField), to_geopoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minute + 1 year",
+ "query": "from a_index | eval st_within(stringField, stringField)",
"error": [
- "Argument of [+] must be [date], found value [1 minute] type [duration]"
+ "Argument of [st_within] must be [geo_point], found value [stringField] type [string]",
+ "Argument of [st_within] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 minute",
+ "query": "from a_index | eval st_within(geoPointField, geoPointField, extraArg)",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 minute] type [duration]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 minute",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | eval var = st_within(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 minute",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 minute] type [duration]"
- ],
+ "query": "from a_index | eval st_within(geoPointField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minutes",
- "error": [
- "EVAL does not support [date_period] in expression [1 minutes]"
- ],
+ "query": "from a_index | eval var = st_within(to_geopoint(stringField), geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minutes",
+ "query": "from a_index | eval st_within(geoPointField, geoShapeField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 minutes]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 minutes",
+ "query": "from a_index | eval var = st_within(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 minutes",
+ "query": "from a_index | eval st_within(geoShapeField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MINUTES",
+ "query": "from a_index | eval var = st_within(geoShapeField, to_geopoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Minutes",
- "error": [],
+ "query": "from a_index | eval st_within(geoShapeField, geoPointField, extraArg)",
+ "error": [
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 minutes",
+ "query": "from a_index | eval var = st_within(geoShapeField, geoShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 minutes + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | eval st_within(geoShapeField, geoShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 minutes",
+ "query": "from a_index | eval st_within(geoShapeField, geoShapeField, extraArg)",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 minutes] type [duration]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 minutes",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | eval var = st_within(cartesianPointField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 minutes",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 minutes] type [duration]"
- ],
+ "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 second",
- "error": [
- "EVAL does not support [date_period] in expression [1 second]"
- ],
+ "query": "from a_index | eval var = st_within(to_cartesianpoint(stringField), to_cartesianpoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 second",
+ "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 second]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 second",
+ "query": "from a_index | eval var = st_within(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 second",
+ "query": "from a_index | eval st_within(cartesianPointField, cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 SECOND",
+ "query": "from a_index | eval var = st_within(to_cartesianpoint(stringField), cartesianShapeField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Second",
- "error": [],
+ "query": "from a_index | eval st_within(cartesianPointField, cartesianShapeField, extraArg)",
+ "error": [
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 second",
+ "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 second + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | eval st_within(cartesianShapeField, cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 second",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | eval var = st_within(cartesianShapeField, to_cartesianpoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 second",
+ "query": "from a_index | eval st_within(cartesianShapeField, cartesianPointField, extraArg)",
"error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 second] type [duration]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 second",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 second] type [duration]"
- ],
+ "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 seconds",
- "error": [
- "EVAL does not support [date_period] in expression [1 seconds]"
- ],
+ "query": "from a_index | eval st_within(cartesianShapeField, cartesianShapeField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 seconds",
+ "query": "from a_index | eval st_within(cartesianShapeField, cartesianShapeField, extraArg)",
"error": [
- "EVAL does not support [date_period] in expression [1 seconds]"
+ "Error: [st_within] function expects exactly 2 arguments, got 3."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 seconds",
+ "query": "from a_index | sort st_within(geoPointField, geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 seconds",
+ "query": "row var = st_x(to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 SECONDS",
+ "query": "row st_x(to_geopoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Seconds",
+ "query": "row var = st_x(to_geopoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 seconds",
+ "query": "row var = st_x(\"a\")",
+ "error": [
+ "Argument of [st_x] must be [geo_point], found value [\"a\"] type [string]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "row var = st_x(to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 seconds + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 seconds] type [duration]"
- ],
+ "query": "row st_x(to_cartesianpoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 seconds",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "row var = st_x(to_cartesianpoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 seconds",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | eval var = st_x(geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 seconds",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 seconds] type [duration]"
- ],
+ "query": "from a_index | eval st_x(geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 millisecond",
- "error": [
- "EVAL does not support [date_period] in expression [1 millisecond]"
- ],
+ "query": "from a_index | eval var = st_x(to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 millisecond",
+ "query": "from a_index | eval st_x(stringField)",
"error": [
- "EVAL does not support [date_period] in expression [1 millisecond]"
+ "Argument of [st_x] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 millisecond",
- "error": [],
+ "query": "from a_index | eval st_x(geoPointField, extraArg)",
+ "error": [
+ "Error: [st_x] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 millisecond",
- "error": [],
+ "query": "from a_index | eval var = st_x(*)",
+ "error": [
+ "Using wildcards (*) in st_x is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MILLISECOND",
+ "query": "from a_index | eval var = st_x(cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Millisecond",
+ "query": "from a_index | eval st_x(cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 millisecond",
+ "query": "from a_index | eval var = st_x(to_cartesianpoint(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 millisecond + 1 year",
+ "query": "from a_index | eval st_x(cartesianPointField, extraArg)",
"error": [
- "Argument of [+] must be [date], found value [1 millisecond] type [duration]"
+ "Error: [st_x] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 millisecond",
- "error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 millisecond] type [duration]"
- ],
+ "query": "from a_index | sort st_x(geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 millisecond",
- "error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 millisecond] type [duration]"
- ],
+ "query": "row var = st_y(to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 millisecond",
- "error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 millisecond] type [duration]"
- ],
+ "query": "row st_y(to_geopoint(\"POINT (30 10)\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 milliseconds",
- "error": [
- "EVAL does not support [date_period] in expression [1 milliseconds]"
- ],
+ "query": "row var = st_y(to_geopoint(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 milliseconds",
+ "query": "row var = st_y(\"a\")",
"error": [
- "EVAL does not support [date_period] in expression [1 milliseconds]"
+ "Argument of [st_y] must be [geo_point], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() - 1 milliseconds",
+ "query": "row var = st_y(to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 milliseconds",
+ "query": "row st_y(to_cartesianpoint(\"POINT (30 10)\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 MILLISECONDS",
+ "query": "row var = st_y(to_cartesianpoint(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField - 1 Milliseconds",
+ "query": "from a_index | eval var = st_y(geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval var = dateField + 1 milliseconds",
+ "query": "from a_index | eval st_y(geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval 1 milliseconds + 1 year",
- "error": [
- "Argument of [+] must be [date], found value [1 milliseconds] type [duration]"
- ],
+ "query": "from a_index | eval var = st_y(to_geopoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | eval var = now() * 1 milliseconds",
+ "query": "from a_index | eval st_y(stringField)",
"error": [
- "Argument of [*] must be [number], found value [now()] type [date]",
- "Argument of [*] must be [number], found value [1 milliseconds] type [duration]"
+ "Argument of [st_y] must be [geo_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | eval var = now() / 1 milliseconds",
+ "query": "from a_index | eval st_y(geoPointField, extraArg)",
"error": [
- "Argument of [/] must be [number], found value [now()] type [date]",
- "Argument of [/] must be [number], found value [1 milliseconds] type [duration]"
+ "Error: [st_y] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | eval var = now() % 1 milliseconds",
+ "query": "from a_index | eval var = st_y(*)",
"error": [
- "Argument of [%] must be [number], found value [now()] type [date]",
- "Argument of [%] must be [number], found value [1 milliseconds] type [duration]"
+ "Using wildcards (*) in st_y is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats ",
- "error": [
- "At least one aggregation or grouping expression required in [STATS]"
- ],
+ "query": "from a_index | eval var = st_y(cartesianPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats by stringField",
+ "query": "from a_index | eval st_y(cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by ",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | eval var = st_y(to_cartesianpoint(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats numberField ",
+ "query": "from a_index | eval st_y(cartesianPointField, extraArg)",
"error": [
- "Expected an aggregate function or group but got [numberField] of type [FieldAttribute]"
+ "Error: [st_y] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | stats numberField=",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "from a_index | sort st_y(geoPointField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats numberField=5 by ",
- "error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
- ],
+ "query": "row var = starts_with(\"a\", \"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by wrongField",
- "error": [
- "Unknown column [wrongField]"
- ],
+ "query": "row starts_with(\"a\", \"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by wrongField + 1",
- "error": [
- "Unknown column [wrongField]"
- ],
+ "query": "row var = starts_with(to_string(\"a\"), to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by var0 = wrongField + 1",
+ "query": "row var = starts_with(5, 5)",
"error": [
- "Unknown column [wrongField]"
+ "Argument of [starts_with] must be [string], found value [5] type [number]",
+ "Argument of [starts_with] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by 1",
+ "query": "from a_index | eval var = starts_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by percentile(numberField)",
- "error": [
- "STATS BY does not support function percentile"
- ],
- "warning": []
- },
- {
- "query": "from a_index | stats count(`numberField`)",
+ "query": "from a_index | eval starts_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count(stringField == \"a\" or null)",
+ "query": "from a_index | eval var = starts_with(to_string(stringField), to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count(`numberField`) | keep `count(``numberField``)` ",
- "error": [],
+ "query": "from a_index | eval starts_with(numberField, numberField)",
+ "error": [
+ "Argument of [starts_with] must be [string], found value [numberField] type [number]",
+ "Argument of [starts_with] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats count(`numberField`) | drop `count(``numberField``)` ",
- "error": [],
+ "query": "from a_index | eval starts_with(stringField, stringField, extraArg)",
+ "error": [
+ "Error: [starts_with] function expects exactly 2 arguments, got 3."
+ ],
"warning": []
},
{
- "query": "from a_index | stats count(`numberField`) | eval `count(``numberField``)` ",
+ "query": "from a_index | sort starts_with(stringField, stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by stringField, percentile(numberField) by ipField",
- "error": [
- "SyntaxError: mismatched input 'by' expecting ",
- "STATS BY does not support function percentile"
- ],
+ "query": "row var = substring(\"a\", 5, 5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 50) by ipField",
+ "query": "row substring(\"a\", 5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 50) BY ipField",
+ "query": "row var = substring(to_string(\"a\"), to_integer(\"a\"), to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) + percentile(numberField, 50) BY ipField",
- "error": [],
+ "query": "row var = substring(5, \"a\", \"a\")",
+ "error": [
+ "Argument of [substring] must be [string], found value [5] type [number]",
+ "Argument of [substring] must be [number], found value [\"a\"] type [string]",
+ "Argument of [substring] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) - percentile(numberField, 50) BY ipField",
+ "query": "from a_index | where length(substring(stringField, numberField, numberField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) * percentile(numberField, 50) BY ipField",
- "error": [],
+ "query": "from a_index | where length(substring(numberField, stringField, stringField)) > 0",
+ "error": [
+ "Argument of [substring] must be [string], found value [numberField] type [number]",
+ "Argument of [substring] must be [number], found value [stringField] type [string]",
+ "Argument of [substring] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) / percentile(numberField, 50) BY ipField",
+ "query": "from a_index | eval var = substring(stringField, numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) % percentile(numberField, 50) BY ipField",
+ "query": "from a_index | eval substring(stringField, numberField, numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count(* + 1) BY ipField",
- "error": [
- "SyntaxError: no viable alternative at input 'count(* +'"
- ],
+ "query": "from a_index | eval var = substring(to_string(stringField), to_integer(stringField), to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats count(* + round(numberField)) BY ipField",
+ "query": "from a_index | eval substring(numberField, stringField, stringField)",
"error": [
- "SyntaxError: no viable alternative at input 'count(* +'"
+ "Argument of [substring] must be [string], found value [numberField] type [number]",
+ "Argument of [substring] must be [number], found value [stringField] type [string]",
+ "Argument of [substring] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats count(round(*)) BY ipField",
+ "query": "from a_index | eval substring(stringField, numberField, numberField, extraArg)",
"error": [
- "Using wildcards (*) in round is not allowed"
+ "Error: [substring] function expects exactly 3 arguments, got 4."
],
"warning": []
},
{
- "query": "from a_index | stats count(count(*)) BY ipField",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [count(*)] of type [number]"
- ],
+ "query": "from a_index | sort substring(stringField, numberField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats numberField + 1",
- "error": [
- "At least one aggregation function required in [STATS], found [numberField+1]"
- ],
+ "query": "row var = tan(5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + avg(numberField) +1",
+ "query": "row tan(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1 + avg(numberField)",
+ "query": "row var = tan(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1 + numberField",
+ "query": "row var = tan(\"a\")",
"error": [
- "At least one aggregation function required in [STATS], found [5+1+numberField]"
+ "Argument of [tan] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1]"
- ],
+ "query": "from a_index | where tan(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1, var0 = sum(numberField)",
+ "query": "from a_index | where tan(stringField) > 0",
"error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1]"
+ "Argument of [tan] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats round( sum(numberField) )",
+ "query": "from a_index | eval var = tan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round( sum(numberField) ) + round( sum(numberField) )",
+ "query": "from a_index | eval tan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round( numberField + sum(numberField) )",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
- ],
+ "query": "from a_index | eval var = tan(to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round( numberField + sum(numberField) ), var0 = sum(numberField)",
+ "query": "from a_index | eval tan(stringField)",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
+ "Argument of [tan] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats var0 = round( numberField + sum(numberField) ), var1 = sum(numberField)",
+ "query": "from a_index | eval tan(numberField, extraArg)",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(numberField+sum(numberField))]"
+ "Error: [tan] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | stats round( sum(numberField + numberField) )",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats round( sum(numberField + round(numberField)) )",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats round( sum(numberField + round(numberField)) ) + round( sum(numberField + round(numberField)) )",
- "error": [],
+ "query": "from a_index | eval var = tan(*)",
+ "error": [
+ "Using wildcards (*) in tan is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats sum(round( numberField ) )",
+ "query": "from a_index | sort tan(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round( numberField ) ) + sum(round( numberField ) )",
+ "query": "row var = tanh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + avg(numberField) +1+1",
+ "query": "row tanh(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1 + avg(numberField)",
+ "query": "row var = tanh(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1 + numberField",
+ "query": "row var = tanh(\"a\")",
"error": [
- "At least one aggregation function required in [STATS], found [5+1+1+numberField]"
+ "Argument of [tanh] must be [number], found value [\"a\"] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1+1",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1]"
- ],
+ "query": "from a_index | where tanh(numberField) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1+1, var0 = sum(numberField)",
+ "query": "from a_index | where tanh(stringField) > 0",
"error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1]"
+ "Argument of [tanh] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats round(round( sum(numberField) ))",
+ "query": "from a_index | eval var = tanh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round( sum(numberField) )) + round(round( sum(numberField) ))",
+ "query": "from a_index | eval tanh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round( numberField + sum(numberField) ))",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
- ],
+ "query": "from a_index | eval var = tanh(to_integer(stringField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round( numberField + sum(numberField) )), var0 = sum(numberField)",
+ "query": "from a_index | eval tanh(stringField)",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
+ "Argument of [tanh] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats var0 = round(round( numberField + sum(numberField) )), var1 = sum(numberField)",
+ "query": "from a_index | eval tanh(numberField, extraArg)",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(numberField+sum(numberField)))]"
+ "Error: [tanh] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | stats round(round( sum(numberField + numberField) ))",
- "error": [],
+ "query": "from a_index | eval var = tanh(*)",
+ "error": [
+ "Using wildcards (*) in tanh is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(round( sum(numberField + round(numberField)) ))",
+ "query": "from a_index | sort tanh(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round( sum(numberField + round(numberField)) )) + round(round( sum(numberField + round(numberField)) ))",
+ "query": "row var = tau()",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round( numberField )) )",
+ "query": "row tau()",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round( numberField )) ) + sum(round(round( numberField )) )",
+ "query": "from a_index | where tau() > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + avg(numberField) +1+1+1",
+ "query": "from a_index | eval var = tau()",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1+1 + avg(numberField)",
+ "query": "from a_index | eval tau()",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1+1 + numberField",
- "error": [
- "At least one aggregation function required in [STATS], found [5+1+1+1+numberField]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | stats 5 + numberField +1+1+1",
+ "query": "from a_index | eval tau(extraArg)",
"error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1+1]"
+ "Error: [tau] function expects exactly 0 arguments, got 1."
],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1+1+1, var0 = sum(numberField)",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1+1]"
- ],
+ "query": "from a_index | sort tau()",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( sum(numberField) )))",
+ "query": "row var = to_boolean(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( sum(numberField) ))) + round(round(round( sum(numberField) )))",
+ "query": "row to_boolean(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( numberField + sum(numberField) )))",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
- ],
+ "query": "row var = to_bool(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( numberField + sum(numberField) ))), var0 = sum(numberField)",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
- ],
+ "query": "from a_index | eval var = to_boolean(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = round(round(round( numberField + sum(numberField) ))), var1 = sum(numberField)",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(numberField+sum(numberField))))]"
- ],
+ "query": "from a_index | eval to_boolean(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( sum(numberField + numberField) )))",
+ "query": "from a_index | eval var = to_bool(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( sum(numberField + round(numberField)) )))",
- "error": [],
+ "query": "from a_index | eval var = to_boolean(*)",
+ "error": [
+ "Using wildcards (*) in to_boolean is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(round(round( sum(numberField + round(numberField)) ))) + round(round(round( sum(numberField + round(numberField)) )))",
+ "query": "from a_index | sort to_boolean(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round(round( numberField ))) )",
+ "query": "row var = to_cartesianpoint(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round(round( numberField ))) ) + sum(round(round(round( numberField ))) )",
+ "query": "row to_cartesianpoint(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + avg(numberField) +1+1+1+1",
+ "query": "from a_index | eval var = to_cartesianpoint(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1+1+1 + avg(numberField)",
+ "query": "from a_index | eval to_cartesianpoint(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 +1+1+1+1 + numberField",
+ "query": "from a_index | eval var = to_cartesianpoint(*)",
"error": [
- "At least one aggregation function required in [STATS], found [5+1+1+1+1+numberField]"
+ "Using wildcards (*) in to_cartesianpoint is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1+1+1+1",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1+1+1]"
- ],
+ "query": "from a_index | sort to_cartesianpoint(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField +1+1+1+1, var0 = sum(numberField)",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1+1+1+1]"
- ],
+ "query": "row var = to_cartesianshape(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( sum(numberField) ))))",
+ "query": "row to_cartesianshape(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( sum(numberField) )))) + round(round(round(round( sum(numberField) ))))",
+ "query": "from a_index | eval var = to_cartesianshape(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( numberField + sum(numberField) ))))",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
- ],
+ "query": "from a_index | eval to_cartesianshape(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( numberField + sum(numberField) )))), var0 = sum(numberField)",
+ "query": "from a_index | eval var = to_cartesianshape(*)",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
+ "Using wildcards (*) in to_cartesianshape is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var0 = round(round(round(round( numberField + sum(numberField) )))), var1 = sum(numberField)",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [round(round(round(round(numberField+sum(numberField)))))]"
- ],
+ "query": "from a_index | sort to_cartesianshape(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( sum(numberField + numberField) ))))",
+ "query": "row var = to_datetime(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( sum(numberField + round(numberField)) ))))",
+ "query": "row to_datetime(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(round(round(round( sum(numberField + round(numberField)) )))) + round(round(round(round( sum(numberField + round(numberField)) ))))",
+ "query": "row var = to_dt(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round(round(round( numberField )))) )",
+ "query": "from a_index | eval var = to_datetime(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(round(round(round(round( numberField )))) ) + sum(round(round(round(round( numberField )))) )",
+ "query": "from a_index | eval to_datetime(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats 5 + numberField + 1",
- "error": [
- "At least one aggregation function required in [STATS], found [5+numberField+1]"
- ],
+ "query": "from a_index | eval var = to_dt(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats numberField + 1 by ipField",
+ "query": "from a_index | eval var = to_datetime(*)",
"error": [
- "At least one aggregation function required in [STATS], found [numberField+1]"
+ "Using wildcards (*) in to_datetime is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 50) + 1 by ipField",
+ "query": "from a_index | sort to_datetime(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count(*)",
+ "query": "row var = to_degrees(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count()",
+ "query": "row to_degrees(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = count(*)",
+ "query": "row var = to_degrees(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = count()",
- "error": [],
+ "query": "row var = to_degrees(\"a\")",
+ "error": [
+ "Argument of [to_degrees] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var0 = avg(numberField), count(*)",
+ "query": "from a_index | where to_degrees(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = avg(fn(number)), count(*)",
- "error": [
- "Unknown function [fn]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | STATS sum( numberField ) + abs( numberField ) ",
+ "query": "from a_index | where to_degrees(stringField) > 0",
"error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [sum(numberField)+abs(numberField)]"
+ "Argument of [to_degrees] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | STATS abs( numberField + sum( numberField )) ",
- "error": [
- "Cannot combine aggregation and non-aggregation values in [STATS], found [abs(numberField+sum(numberField))]"
- ],
+ "query": "from a_index | eval var = to_degrees(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = avg(numberField)",
+ "query": "from a_index | eval to_degrees(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField)",
+ "query": "from a_index | eval var = to_degrees(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(avg(numberField))",
- "error": [],
+ "query": "from a_index | eval to_degrees(stringField)",
+ "error": [
+ "Argument of [to_degrees] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(avg(numberField))",
- "error": [],
+ "query": "from a_index | eval to_degrees(numberField, extraArg)",
+ "error": [
+ "Error: [to_degrees] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = round(avg(numberField)) + avg(numberField)",
- "error": [],
+ "query": "from a_index | eval var = to_degrees(*)",
+ "error": [
+ "Using wildcards (*) in to_degrees is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(avg(numberField)) + avg(numberField)",
+ "query": "from a_index | sort to_degrees(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField / 2)",
+ "query": "row var = to_double(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = avg(numberField / 2)",
+ "query": "row to_double(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), avg(numberField / 2)",
+ "query": "row var = to_dbl(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = avg(numberField / 2)",
+ "query": "from a_index | eval var = to_double(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField)",
+ "query": "from a_index | eval to_double(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = avg(numberField)",
+ "query": "from a_index | eval var = to_dbl(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), avg(numberField)",
- "error": [],
+ "query": "from a_index | eval var = to_double(*)",
+ "error": [
+ "Using wildcards (*) in to_double is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = avg(numberField)",
+ "query": "from a_index | sort to_double(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField) by round(numberField / 2)",
+ "query": "row var = to_geopoint(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = avg(numberField) by var1 = round(numberField / 2)",
+ "query": "row to_geopoint(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), ipField",
+ "query": "from a_index | eval var = to_geopoint(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | eval to_geopoint(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), numberField / 2",
- "error": [],
+ "query": "from a_index | eval var = to_geopoint(*)",
+ "error": [
+ "Using wildcards (*) in to_geopoint is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | sort to_geopoint(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = avg(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
+ "query": "row var = to_geoshape(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
+ "query": "row to_geoshape(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(stringField)",
- "error": [
- "Argument of [avg] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | eval var = to_geoshape(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = avg(*)",
- "error": [
- "Using wildcards (*) in avg is not allowed"
- ],
+ "query": "from a_index | eval to_geoshape(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = sum(numberField)",
- "error": [],
+ "query": "from a_index | eval var = to_geoshape(*)",
+ "error": [
+ "Using wildcards (*) in to_geoshape is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats sum(numberField)",
+ "query": "from a_index | sort to_geoshape(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(sum(numberField))",
+ "query": "row var = to_integer(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(sum(numberField))",
+ "query": "row to_integer(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(sum(numberField)) + sum(numberField)",
+ "query": "row var = to_int(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(sum(numberField)) + sum(numberField)",
+ "query": "from a_index | eval var = to_integer(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(numberField / 2)",
+ "query": "from a_index | eval to_integer(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = sum(numberField / 2)",
+ "query": "from a_index | eval var = to_int(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), sum(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval var = to_integer(*)",
+ "error": [
+ "Using wildcards (*) in to_integer is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = sum(numberField / 2)",
+ "query": "from a_index | sort to_integer(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(numberField)",
+ "query": "row var = to_ip(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = sum(numberField)",
+ "query": "row to_ip(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), sum(numberField)",
+ "query": "from a_index | eval var = to_ip(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = sum(numberField)",
+ "query": "from a_index | eval to_ip(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(numberField) by round(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval var = to_ip(*)",
+ "error": [
+ "Using wildcards (*) in to_ip is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var0 = sum(numberField) by var1 = round(numberField / 2)",
+ "query": "from a_index | sort to_ip(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), ipField",
+ "query": "row var = to_long(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "row to_long(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval var = to_long(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval to_long(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = sum(avg(numberField))",
+ "query": "from a_index | eval var = to_long(*)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Using wildcards (*) in to_long is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats sum(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
+ "query": "from a_index | sort to_long(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(stringField)",
- "error": [
- "Argument of [sum] must be [number], found value [stringField] type [string]"
- ],
+ "query": "row var = to_lower(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = sum(*)",
- "error": [
- "Using wildcards (*) in sum is not allowed"
- ],
+ "query": "row to_lower(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = median(numberField)",
+ "query": "row var = to_lower(to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median(numberField)",
- "error": [],
+ "query": "row var = to_lower(5)",
+ "error": [
+ "Argument of [to_lower] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = round(median(numberField))",
+ "query": "from a_index | where length(to_lower(stringField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(median(numberField))",
- "error": [],
+ "query": "from a_index | where length(to_lower(numberField)) > 0",
+ "error": [
+ "Argument of [to_lower] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = round(median(numberField)) + median(numberField)",
+ "query": "from a_index | eval var = to_lower(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(median(numberField)) + median(numberField)",
+ "query": "from a_index | eval to_lower(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median(numberField / 2)",
+ "query": "from a_index | eval var = to_lower(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = median(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval to_lower(numberField)",
+ "error": [
+ "Argument of [to_lower] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval to_lower(stringField, extraArg)",
+ "error": [
+ "Error: [to_lower] function expects exactly one argument, got 2."
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval var = to_lower(*)",
+ "error": [
+ "Using wildcards (*) in to_lower is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats median(numberField)",
+ "query": "from a_index | sort to_lower(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = median(numberField)",
+ "query": "row var = to_radians(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median(numberField)",
+ "query": "row to_radians(5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median(numberField)",
+ "query": "row var = to_radians(to_integer(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median(numberField) by round(numberField / 2)",
- "error": [],
+ "query": "row var = to_radians(\"a\")",
+ "error": [
+ "Argument of [to_radians] must be [number], found value [\"a\"] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var0 = median(numberField) by var1 = round(numberField / 2)",
+ "query": "from a_index | where to_radians(numberField) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), ipField",
- "error": [],
+ "query": "from a_index | where to_radians(stringField) > 0",
+ "error": [
+ "Argument of [to_radians] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | eval var = to_radians(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval to_radians(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval var = to_radians(to_integer(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = median(avg(numberField))",
+ "query": "from a_index | eval to_radians(stringField)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Argument of [to_radians] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats median(avg(numberField))",
+ "query": "from a_index | eval to_radians(numberField, extraArg)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Error: [to_radians] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | stats median(stringField)",
+ "query": "from a_index | eval var = to_radians(*)",
"error": [
- "Argument of [median] must be [number], found value [stringField] type [string]"
+ "Using wildcards (*) in to_radians is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var = median(*)",
- "error": [
- "Using wildcards (*) in median is not allowed"
- ],
+ "query": "from a_index | sort to_radians(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = median_absolute_deviation(numberField)",
+ "query": "row var = to_string(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(numberField)",
+ "query": "row to_string(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(median_absolute_deviation(numberField))",
+ "query": "row var = to_str(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(median_absolute_deviation(numberField))",
+ "query": "from a_index | eval var = to_string(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)",
+ "query": "from a_index | eval to_string(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)",
+ "query": "from a_index | eval var = to_str(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(numberField / 2)",
- "error": [],
+ "query": "from a_index | eval var = to_string(*)",
+ "error": [
+ "Using wildcards (*) in to_string is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var0 = median_absolute_deviation(numberField / 2)",
+ "query": "from a_index | sort to_string(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField / 2)",
+ "query": "row var = to_unsigned_long(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField / 2)",
+ "query": "row to_unsigned_long(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(numberField)",
+ "query": "row var = to_ul(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = median_absolute_deviation(numberField)",
+ "query": "row var = to_ulong(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField)",
+ "query": "from a_index | eval var = to_unsigned_long(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField)",
+ "query": "from a_index | eval to_unsigned_long(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(numberField) by round(numberField / 2)",
+ "query": "from a_index | eval var = to_ul(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2)",
+ "query": "from a_index | eval var = to_ulong(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), ipField",
- "error": [],
+ "query": "from a_index | eval var = to_unsigned_long(*)",
+ "error": [
+ "Using wildcards (*) in to_unsigned_long is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | sort to_unsigned_long(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), numberField / 2",
+ "query": "row var = to_upper(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "row to_upper(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = median_absolute_deviation(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
+ "query": "row var = to_upper(to_string(\"a\"))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(avg(numberField))",
+ "query": "row var = to_upper(5)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Argument of [to_upper] must be [string], found value [5] type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats median_absolute_deviation(stringField)",
- "error": [
- "Argument of [median_absolute_deviation] must be [number], found value [stringField] type [string]"
- ],
+ "query": "from a_index | where length(to_upper(stringField)) > 0",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = median_absolute_deviation(*)",
+ "query": "from a_index | where length(to_upper(numberField)) > 0",
"error": [
- "Using wildcards (*) in median_absolute_deviation is not allowed"
+ "Argument of [to_upper] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats var = percentile(numberField, 5)",
+ "query": "from a_index | eval var = to_upper(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats percentile(numberField, 5)",
+ "query": "from a_index | eval to_upper(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(percentile(numberField, 5))",
+ "query": "from a_index | eval var = to_upper(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(percentile(numberField, 5))",
+ "query": "from a_index | eval to_upper(numberField)",
+ "error": [
+ "Argument of [to_upper] must be [string], found value [numberField] type [number]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval to_upper(stringField, extraArg)",
+ "error": [
+ "Error: [to_upper] function expects exactly one argument, got 2."
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = to_upper(*)",
+ "error": [
+ "Using wildcards (*) in to_upper is not allowed"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort to_upper(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(percentile(numberField, 5)) + percentile(numberField, 5)",
+ "query": "row var = to_version(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(percentile(numberField, 5)) + percentile(numberField, 5)",
+ "query": "row to_version(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats percentile(numberField, numberField)",
- "error": [
- "Argument of [percentile] must be a constant, received [numberField]"
- ],
+ "query": "row var = to_ver(\"a\")",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats percentile(numberField / 2, 5)",
+ "query": "from a_index | eval var = to_version(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = percentile(numberField / 2, 5)",
+ "query": "from a_index | eval to_version(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField / 2, 5)",
+ "query": "from a_index | eval var = to_ver(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = percentile(numberField / 2, 5)",
- "error": [],
+ "query": "from a_index | eval var = to_version(*)",
+ "error": [
+ "Using wildcards (*) in to_version is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | stats percentile(numberField, 5)",
+ "query": "from a_index | sort to_version(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = percentile(numberField, 5)",
+ "query": "row var = trim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 5)",
+ "query": "row trim(\"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5)",
+ "query": "row var = trim(to_string(\"a\"))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats percentile(numberField, 5) by round(numberField / 2)",
- "error": [],
+ "query": "row var = trim(5)",
+ "error": [
+ "Argument of [trim] must be [string], found value [5] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var0 = percentile(numberField, 5) by var1 = round(numberField / 2)",
+ "query": "from a_index | where length(trim(stringField)) > 0",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), ipField",
- "error": [],
+ "query": "from a_index | where length(trim(numberField)) > 0",
+ "error": [
+ "Argument of [trim] must be [string], found value [numberField] type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | eval var = trim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval trim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | eval var = trim(to_string(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = percentile(avg(numberField), 5)",
+ "query": "from a_index | eval trim(numberField)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Argument of [trim] must be [string], found value [numberField] type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats percentile(avg(numberField), 5)",
+ "query": "from a_index | eval trim(stringField, extraArg)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "Error: [trim] function expects exactly one argument, got 2."
],
"warning": []
},
{
- "query": "from a_index | stats percentile(stringField, 5)",
+ "query": "from a_index | eval var = trim(*)",
"error": [
- "Argument of [percentile] must be [number], found value [stringField] type [string]"
+ "Using wildcards (*) in trim is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var = max(numberField)",
+ "query": "from a_index | sort trim(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats max(numberField)",
+ "query": "from a_index | stats var = avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(max(numberField))",
+ "query": "from a_index | stats avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(max(numberField))",
+ "query": "from a_index | stats var = round(avg(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(max(numberField)) + max(numberField)",
+ "query": "from a_index | stats round(avg(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(max(numberField)) + max(numberField)",
+ "query": "from a_index | stats var = round(avg(numberField)) + avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats max(numberField / 2)",
+ "query": "from a_index | stats round(avg(numberField)) + avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = max(numberField / 2)",
+ "query": "from a_index | stats avg(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), max(numberField / 2)",
+ "query": "from a_index | stats var0 = avg(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = max(numberField / 2)",
+ "query": "from a_index | stats avg(numberField), avg(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats max(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = avg(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = max(numberField)",
+ "query": "from a_index | stats var0 = avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), max(numberField)",
+ "query": "from a_index | stats avg(numberField), avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = max(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = avg(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats max(numberField) by round(numberField / 2)",
+ "query": "from a_index | stats avg(numberField) by round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = max(numberField) by var1 = round(numberField / 2)",
+ "query": "from a_index | stats var0 = avg(numberField) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), ipField",
+ "query": "from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), numberField / 2",
+ "query": "from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = max(avg(numberField))",
+ "query": "from a_index | stats var = avg(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats max(avg(numberField))",
+ "query": "from a_index | stats avg(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats max(stringField)",
+ "query": "from a_index | stats avg(stringField)",
"error": [
- "Argument of [max] must be [number], found value [stringField] type [string]"
+ "Argument of [avg] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats var = max(*)",
+ "query": "from a_index | stats var = avg(*)",
"error": [
- "Using wildcards (*) in max is not allowed"
+ "Using wildcards (*) in avg is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var = max(dateField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats max(dateField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats var = round(max(dateField))",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats round(max(dateField))",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats var = round(max(dateField)) + max(dateField)",
- "error": [],
+ "query": "from a_index | sort avg(numberField)",
+ "error": [
+ "SORT does not support function avg"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(max(dateField)) + max(dateField)",
- "error": [],
+ "query": "from a_index | where avg(numberField)",
+ "error": [
+ "WHERE does not support function avg"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = max(avg(numberField))",
+ "query": "from a_index | where avg(numberField) > 0",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "WHERE does not support function avg"
],
"warning": []
},
{
- "query": "from a_index | stats max(avg(numberField))",
+ "query": "from a_index | eval var = avg(numberField)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "EVAL does not support function avg"
],
"warning": []
},
{
- "query": "from a_index | stats max(stringField)",
+ "query": "from a_index | eval var = avg(numberField) > 0",
"error": [
- "Argument of [max] must be [number], found value [stringField] type [string]"
+ "EVAL does not support function avg"
],
"warning": []
},
{
- "query": "from a_index | stats var = max(*)",
+ "query": "from a_index | eval avg(numberField)",
"error": [
- "Using wildcards (*) in max is not allowed"
+ "EVAL does not support function avg"
],
"warning": []
},
{
- "query": "from a_index | stats var = min(numberField)",
- "error": [],
+ "query": "from a_index | eval avg(numberField) > 0",
+ "error": [
+ "EVAL does not support function avg"
+ ],
"warning": []
},
{
- "query": "from a_index | stats min(numberField)",
+ "query": "from a_index | stats var = sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(min(numberField))",
+ "query": "from a_index | stats sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(min(numberField))",
+ "query": "from a_index | stats var = round(sum(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(min(numberField)) + min(numberField)",
+ "query": "from a_index | stats round(sum(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(min(numberField)) + min(numberField)",
+ "query": "from a_index | stats var = round(sum(numberField)) + sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats min(numberField / 2)",
+ "query": "from a_index | stats round(sum(numberField)) + sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = min(numberField / 2)",
+ "query": "from a_index | stats sum(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), min(numberField / 2)",
+ "query": "from a_index | stats var0 = sum(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = min(numberField / 2)",
+ "query": "from a_index | stats avg(numberField), sum(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats min(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = sum(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = min(numberField)",
+ "query": "from a_index | stats var0 = sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), min(numberField)",
+ "query": "from a_index | stats avg(numberField), sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = min(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = sum(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats min(numberField) by round(numberField / 2)",
+ "query": "from a_index | stats sum(numberField) by round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = min(numberField) by var1 = round(numberField / 2)",
+ "query": "from a_index | stats var0 = sum(numberField) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), ipField",
+ "query": "from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), ipField",
+ "query": "from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), numberField / 2",
+ "query": "from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), numberField / 2",
+ "query": "from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = min(avg(numberField))",
+ "query": "from a_index | stats var = sum(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats min(avg(numberField))",
+ "query": "from a_index | stats sum(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats min(stringField)",
+ "query": "from a_index | stats sum(stringField)",
"error": [
- "Argument of [min] must be [number], found value [stringField] type [string]"
+ "Argument of [sum] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats var = min(*)",
+ "query": "from a_index | stats var = sum(*)",
"error": [
- "Using wildcards (*) in min is not allowed"
+ "Using wildcards (*) in sum is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var = min(dateField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats min(dateField)",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats var = round(min(dateField))",
- "error": [],
- "warning": []
- },
- {
- "query": "from a_index | stats round(min(dateField))",
- "error": [],
+ "query": "from a_index | sort sum(numberField)",
+ "error": [
+ "SORT does not support function sum"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = round(min(dateField)) + min(dateField)",
- "error": [],
+ "query": "from a_index | where sum(numberField)",
+ "error": [
+ "WHERE does not support function sum"
+ ],
"warning": []
},
{
- "query": "from a_index | stats round(min(dateField)) + min(dateField)",
- "error": [],
+ "query": "from a_index | where sum(numberField) > 0",
+ "error": [
+ "WHERE does not support function sum"
+ ],
"warning": []
},
{
- "query": "from a_index | stats var = min(avg(numberField))",
+ "query": "from a_index | eval var = sum(numberField)",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "EVAL does not support function sum"
],
"warning": []
},
{
- "query": "from a_index | stats min(avg(numberField))",
+ "query": "from a_index | eval var = sum(numberField) > 0",
"error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ "EVAL does not support function sum"
],
"warning": []
},
{
- "query": "from a_index | stats min(stringField)",
+ "query": "from a_index | eval sum(numberField)",
"error": [
- "Argument of [min] must be [number], found value [stringField] type [string]"
+ "EVAL does not support function sum"
],
"warning": []
},
{
- "query": "from a_index | stats var = min(*)",
+ "query": "from a_index | eval sum(numberField) > 0",
"error": [
- "Using wildcards (*) in min is not allowed"
+ "EVAL does not support function sum"
],
"warning": []
},
{
- "query": "from a_index | stats var = count(stringField)",
+ "query": "from a_index | stats var = median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count(stringField)",
+ "query": "from a_index | stats median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(count(stringField))",
+ "query": "from a_index | stats var = round(median(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(count(stringField))",
+ "query": "from a_index | stats round(median(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(count(stringField)) + count(stringField)",
+ "query": "from a_index | stats var = round(median(numberField)) + median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(count(stringField)) + count(stringField)",
+ "query": "from a_index | stats round(median(numberField)) + median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = count_distinct(stringField, numberField)",
+ "query": "from a_index | stats median(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats count_distinct(stringField, numberField)",
+ "query": "from a_index | stats var0 = median(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(count_distinct(stringField, numberField))",
+ "query": "from a_index | stats avg(numberField), median(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(count_distinct(stringField, numberField))",
+ "query": "from a_index | stats avg(numberField), var0 = median(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)",
+ "query": "from a_index | stats var0 = median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)",
+ "query": "from a_index | stats avg(numberField), median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(cartesianPointField)",
+ "query": "from a_index | stats avg(numberField), var0 = median(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats st_centroid_agg(cartesianPointField)",
+ "query": "from a_index | stats median(numberField) by round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | stats st_centroid_agg(avg(numberField))",
- "error": [
- "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
- ],
+ "query": "from a_index | stats var0 = median(numberField) by var1 = round(numberField / 2)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats st_centroid_agg(stringField)",
- "error": [
- "Argument of [st_centroid_agg] must be [cartesian_point], found value [stringField] type [string]"
- ],
+ "query": "from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(*)",
- "error": [
- "Using wildcards (*) in st_centroid_agg is not allowed"
- ],
+ "query": "from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), ipField",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(geoPointField)",
+ "query": "from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats st_centroid_agg(geoPointField)",
+ "query": "from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(avg(numberField))",
+ "query": "from a_index | stats var = median(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats st_centroid_agg(avg(numberField))",
+ "query": "from a_index | stats median(avg(numberField))",
"error": [
"Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | stats st_centroid_agg(stringField)",
+ "query": "from a_index | stats median(stringField)",
"error": [
- "Argument of [st_centroid_agg] must be [cartesian_point], found value [stringField] type [string]"
+ "Argument of [median] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | stats var = st_centroid_agg(*)",
+ "query": "from a_index | stats var = median(*)",
"error": [
- "Using wildcards (*) in st_centroid_agg is not allowed"
+ "Using wildcards (*) in median is not allowed"
],
"warning": []
},
{
- "query": "from a_index | stats var = values(stringField)",
- "error": [],
+ "query": "from a_index | sort median(numberField)",
+ "error": [
+ "SORT does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats values(stringField)",
- "error": [],
+ "query": "from a_index | where median(numberField)",
+ "error": [
+ "WHERE does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 1 year)",
- "error": [],
+ "query": "from a_index | where median(numberField) > 0",
+ "error": [
+ "WHERE does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 1 year)",
- "error": [],
+ "query": "from a_index | eval var = median(numberField)",
+ "error": [
+ "EVAL does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats by bin(dateField, 1 year)",
- "error": [],
+ "query": "from a_index | eval var = median(numberField) > 0",
+ "error": [
+ "EVAL does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats by bucket(numberField, 5)",
- "error": [],
+ "query": "from a_index | eval median(numberField)",
+ "error": [
+ "EVAL does not support function median"
+ ],
"warning": []
},
{
- "query": "from a_index | stats by bucket(numberField, numberField)",
+ "query": "from a_index | eval median(numberField) > 0",
"error": [
- "Argument of [bucket] must be a constant, received [numberField]"
+ "EVAL does not support function median"
],
"warning": []
},
{
- "query": "from a_index | stats by bin(numberField, 5)",
+ "query": "from a_index | stats var = median_absolute_deviation(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 5, \"a\", \"a\")",
+ "query": "from a_index | stats median_absolute_deviation(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, numberField, stringField, stringField)",
- "error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [stringField]",
- "Argument of [bucket] must be a constant, received [stringField]"
- ],
- "warning": []
- },
- {
- "query": "from a_index | stats by bin(dateField, 5, \"a\", \"a\")",
+ "query": "from a_index | stats var = round(median_absolute_deviation(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 5, now(), now())",
+ "query": "from a_index | stats round(median_absolute_deviation(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, numberField, dateField, dateField)",
- "error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [dateField]",
- "Argument of [bucket] must be a constant, received [dateField]"
- ],
+ "query": "from a_index | stats var = round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats by bin(dateField, 5, now(), now())",
+ "query": "from a_index | stats round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 5, \"a\", now())",
+ "query": "from a_index | stats median_absolute_deviation(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, numberField, stringField, dateField)",
- "error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [stringField]",
- "Argument of [bucket] must be a constant, received [dateField]"
- ],
+ "query": "from a_index | stats var0 = median_absolute_deviation(numberField / 2)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats by bin(dateField, 5, \"a\", now())",
+ "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, 5, now(), \"a\")",
+ "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(dateField, numberField, dateField, stringField)",
- "error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [dateField]",
- "Argument of [bucket] must be a constant, received [stringField]"
- ],
+ "query": "from a_index | stats var0 = median_absolute_deviation(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats by bin(dateField, 5, now(), \"a\")",
+ "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(numberField, 5, 5, 5)",
+ "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats by bucket(numberField, numberField, numberField, numberField)",
- "error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [numberField]"
- ],
+ "query": "from a_index | stats median_absolute_deviation(numberField) by round(numberField / 2)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | stats by bin(numberField, 5, 5, 5)",
+ "query": "from a_index | stats var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "FROM index\n | EVAL numberField * 3.281\n | STATS avg_numberField = AVG(`numberField * 3.281`)",
+ "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "FROM index | STATS AVG(numberField) by round(numberField) + 1 | EVAL `round(numberField) + 1` / 2",
+ "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats sum(case(false, 0, 1))",
+ "query": "from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | stats var0 = sum( case(false, 0, 1))",
+ "query": "from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from index | stats by bucket(dateField, abs(numberField), \"\", \"\")",
+ "query": "from a_index | stats var = median_absolute_deviation(avg(numberField))",
"error": [
- "Argument of [bucket] must be a constant, received [abs(numberField)]"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from index | stats by bucket(dateField, abs(length(numberField)), \"\", \"\")",
+ "query": "from a_index | stats median_absolute_deviation(avg(numberField))",
"error": [
- "Argument of [bucket] must be a constant, received [abs(length(numberField))]"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from index | stats by bucket(dateField, pi(), \"\", \"\")",
- "error": [],
- "warning": []
- },
- {
- "query": "from index | stats by bucket(dateField, 1 + 30 / 10, \"\", \"\")",
- "error": [],
- "warning": []
- },
- {
- "query": "from index | stats by bucket(dateField, 1 + 30 / 10, concat(\"\", \"\"), \"\")",
- "error": [],
- "warning": []
- },
- {
- "query": "from index | stats by bucket(dateField, numberField, stringField, stringField)",
+ "query": "from a_index | stats median_absolute_deviation(stringField)",
"error": [
- "Argument of [bucket] must be a constant, received [numberField]",
- "Argument of [bucket] must be a constant, received [stringField]",
- "Argument of [bucket] must be a constant, received [stringField]"
+ "Argument of [median_absolute_deviation] must be [number], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | sort ",
+ "query": "from a_index | stats var = median_absolute_deviation(*)",
"error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "Using wildcards (*) in median_absolute_deviation is not allowed"
],
"warning": []
},
{
- "query": "from a_index | sort \"field\" ",
- "error": [],
+ "query": "from a_index | sort median_absolute_deviation(numberField)",
+ "error": [
+ "SORT does not support function median_absolute_deviation"
+ ],
"warning": []
},
{
- "query": "from a_index | sort wrongField ",
+ "query": "from a_index | where median_absolute_deviation(numberField)",
"error": [
- "Unknown column [wrongField]"
+ "WHERE does not support function median_absolute_deviation"
],
"warning": []
},
{
- "query": "from a_index | sort numberField, ",
+ "query": "from a_index | where median_absolute_deviation(numberField) > 0",
"error": [
- "SyntaxError: mismatched input '' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}"
+ "WHERE does not support function median_absolute_deviation"
],
"warning": []
},
{
- "query": "from a_index | sort numberField, stringField",
- "error": [],
+ "query": "from a_index | eval var = median_absolute_deviation(numberField)",
+ "error": [
+ "EVAL does not support function median_absolute_deviation"
+ ],
"warning": []
},
{
- "query": "from a_index | sort \"field\" desc ",
- "error": [],
+ "query": "from a_index | eval var = median_absolute_deviation(numberField) > 0",
+ "error": [
+ "EVAL does not support function median_absolute_deviation"
+ ],
"warning": []
},
{
- "query": "from a_index | sort numberField desc ",
- "error": [],
+ "query": "from a_index | eval median_absolute_deviation(numberField)",
+ "error": [
+ "EVAL does not support function median_absolute_deviation"
+ ],
"warning": []
},
{
- "query": "from a_index | sort numberField desc nulls ",
+ "query": "from a_index | eval median_absolute_deviation(numberField) > 0",
"error": [
- "SyntaxError: missing {'first', 'last'} at ''"
+ "EVAL does not support function median_absolute_deviation"
],
"warning": []
},
{
- "query": "from a_index | sort numberField desc nulls first",
+ "query": "from a_index | stats var = percentile(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField desc first",
- "error": [
- "SyntaxError: extraneous input 'first' expecting "
- ],
+ "query": "from a_index | stats percentile(numberField, 5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField desc nulls last",
+ "query": "from a_index | stats var = round(percentile(numberField, 5))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField desc last",
- "error": [
- "SyntaxError: extraneous input 'last' expecting "
- ],
+ "query": "from a_index | stats round(percentile(numberField, 5))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort \"field\" asc ",
+ "query": "from a_index | stats var = round(percentile(numberField, 5)) + percentile(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField asc ",
+ "query": "from a_index | stats round(percentile(numberField, 5)) + percentile(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField asc nulls ",
+ "query": "from a_index | stats percentile(numberField, numberField)",
"error": [
- "SyntaxError: missing {'first', 'last'} at ''"
+ "Argument of [percentile] must be a constant, received [numberField]"
],
"warning": []
},
{
- "query": "from a_index | sort numberField asc nulls first",
+ "query": "from a_index | stats percentile(numberField / 2, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField asc first",
- "error": [
- "SyntaxError: extraneous input 'first' expecting "
- ],
+ "query": "from a_index | stats var0 = percentile(numberField / 2, 5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField asc nulls last",
+ "query": "from a_index | stats avg(numberField), percentile(numberField / 2, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField asc last",
- "error": [
- "SyntaxError: extraneous input 'last' expecting "
- ],
+ "query": "from a_index | stats avg(numberField), var0 = percentile(numberField / 2, 5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField nulls first",
+ "query": "from a_index | stats var0 = percentile(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField first",
- "error": [
- "SyntaxError: extraneous input 'first' expecting "
- ],
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 5)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField nulls last",
+ "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort numberField last",
- "error": [
- "SyntaxError: extraneous input 'last' expecting "
- ],
+ "query": "from a_index | stats percentile(numberField, 5) by round(numberField / 2)",
+ "error": [],
"warning": []
},
{
- "query": "row a = 1 | stats COUNT(*) | sort `COUNT(*)`",
+ "query": "from a_index | stats var0 = percentile(numberField, 5) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "ROW a = 1 | STATS couNt(*) | SORT `couNt(*)`",
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort abs(numberField) - to_long(stringField) desc nulls first",
+ "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort avg(numberField)",
- "error": [
- "SORT does not support function avg"
- ],
+ "query": "from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), numberField / 2",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort sum(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), numberField / 2",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats var = percentile(avg(numberField), 5)",
"error": [
- "SORT does not support function sum"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | sort median(numberField)",
+ "query": "from a_index | stats percentile(avg(numberField), 5)",
"error": [
- "SORT does not support function median"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | sort median_absolute_deviation(numberField)",
+ "query": "from a_index | stats percentile(stringField, 5)",
"error": [
- "SORT does not support function median_absolute_deviation"
+ "Argument of [percentile] must be [number], found value [stringField] type [string]"
],
"warning": []
},
@@ -16231,874 +15349,1017 @@
"warning": []
},
{
- "query": "from a_index | sort max(numberField)",
+ "query": "from a_index | where percentile(numberField, 5)",
"error": [
- "SORT does not support function max"
+ "WHERE does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort min(numberField)",
+ "query": "from a_index | where percentile(numberField, 5) > 0",
"error": [
- "SORT does not support function min"
+ "WHERE does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort count(stringField)",
+ "query": "from a_index | eval var = percentile(numberField, 5)",
"error": [
- "SORT does not support function count"
+ "EVAL does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort count_distinct(stringField, numberField)",
+ "query": "from a_index | eval var = percentile(numberField, 5) > 0",
"error": [
- "SORT does not support function count_distinct"
+ "EVAL does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort st_centroid_agg(cartesianPointField)",
+ "query": "from a_index | eval percentile(numberField, 5)",
"error": [
- "SORT does not support function st_centroid_agg"
+ "EVAL does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort values(stringField)",
+ "query": "from a_index | eval percentile(numberField, 5) > 0",
"error": [
- "SORT does not support function values"
+ "EVAL does not support function percentile"
],
"warning": []
},
{
- "query": "from a_index | sort bucket(dateField, 1 year)",
- "error": [
- "SORT does not support function bucket"
- ],
+ "query": "from a_index | stats var = max(numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | sort abs(numberField)",
+ "query": "from a_index | stats max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort acos(numberField)",
+ "query": "from a_index | stats var = round(max(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort asin(numberField)",
+ "query": "from a_index | stats round(max(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort atan(numberField)",
+ "query": "from a_index | stats var = round(max(numberField)) + max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort atan2(numberField, numberField)",
+ "query": "from a_index | stats round(max(numberField)) + max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort case(booleanField, stringField)",
+ "query": "from a_index | stats max(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort ceil(numberField)",
+ "query": "from a_index | stats var0 = max(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort cidr_match(ipField, stringField)",
+ "query": "from a_index | stats avg(numberField), max(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort coalesce(stringField)",
+ "query": "from a_index | stats avg(numberField), var0 = max(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort concat(stringField, stringField)",
+ "query": "from a_index | stats var0 = max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort cos(numberField)",
+ "query": "from a_index | stats avg(numberField), max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort cosh(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = max(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort date_diff(\"year\", dateField, dateField)",
+ "query": "from a_index | stats max(numberField) by round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)",
+ "query": "from a_index | stats var0 = max(numberField) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort date_format(dateField, stringField)",
+ "query": "from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort date_parse(stringField, stringField)",
+ "query": "from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort date_trunc(1 year, dateField)",
+ "query": "from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort e()",
+ "query": "from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort ends_with(stringField, stringField)",
- "error": [],
+ "query": "from a_index | stats var = max(avg(numberField))",
+ "error": [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort floor(numberField)",
- "error": [],
+ "query": "from a_index | stats max(avg(numberField))",
+ "error": [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort greatest(stringField)",
- "error": [],
+ "query": "from a_index | stats max(stringField)",
+ "error": [
+ "Argument of [max] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort least(stringField)",
- "error": [],
+ "query": "from a_index | stats var = max(*)",
+ "error": [
+ "Using wildcards (*) in max is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | sort left(stringField, numberField)",
+ "query": "from a_index | stats var = max(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort length(stringField)",
+ "query": "from a_index | stats max(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort log(numberField, numberField)",
+ "query": "from a_index | stats var = round(max(dateField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort log10(numberField)",
+ "query": "from a_index | stats round(max(dateField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort ltrim(stringField)",
+ "query": "from a_index | stats var = round(max(dateField)) + max(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_avg(numberField)",
+ "query": "from a_index | stats round(max(dateField)) + max(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_concat(stringField, stringField)",
- "error": [],
+ "query": "from a_index | sort max(numberField)",
+ "error": [
+ "SORT does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where max(numberField)",
+ "error": [
+ "WHERE does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where max(numberField) > 0",
+ "error": [
+ "WHERE does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where max(dateField)",
+ "error": [
+ "WHERE does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | where max(dateField) > 0",
+ "error": [
+ "WHERE does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = max(numberField)",
+ "error": [
+ "EVAL does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = max(numberField) > 0",
+ "error": [
+ "EVAL does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval max(numberField)",
+ "error": [
+ "EVAL does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval max(numberField) > 0",
+ "error": [
+ "EVAL does not support function max"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | eval var = max(dateField)",
+ "error": [
+ "EVAL does not support function max"
+ ],
"warning": []
},
{
- "query": "from a_index | sort mv_count(stringField)",
- "error": [],
+ "query": "from a_index | eval var = max(dateField) > 0",
+ "error": [
+ "EVAL does not support function max"
+ ],
"warning": []
},
{
- "query": "from a_index | sort mv_dedupe(stringField)",
- "error": [],
+ "query": "from a_index | eval max(dateField)",
+ "error": [
+ "EVAL does not support function max"
+ ],
"warning": []
},
{
- "query": "from a_index | sort mv_first(stringField)",
- "error": [],
+ "query": "from a_index | eval max(dateField) > 0",
+ "error": [
+ "EVAL does not support function max"
+ ],
"warning": []
},
{
- "query": "from a_index | sort mv_last(stringField)",
+ "query": "from a_index | stats var = min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_max(stringField)",
+ "query": "from a_index | stats min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_median(numberField)",
+ "query": "from a_index | stats var = round(min(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_min(stringField)",
+ "query": "from a_index | stats round(min(numberField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_slice(stringField, numberField, numberField)",
+ "query": "from a_index | stats var = round(min(numberField)) + min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_sort(stringField, \"asc\")",
+ "query": "from a_index | stats round(min(numberField)) + min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_sum(numberField)",
+ "query": "from a_index | stats min(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort mv_zip(stringField, stringField, stringField)",
+ "query": "from a_index | stats var0 = min(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort now()",
+ "query": "from a_index | stats avg(numberField), min(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort pi()",
+ "query": "from a_index | stats avg(numberField), var0 = min(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort pow(numberField, numberField)",
+ "query": "from a_index | stats var0 = min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort replace(stringField, stringField, stringField)",
+ "query": "from a_index | stats avg(numberField), min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort right(stringField, numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = min(numberField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort round(numberField, numberField)",
+ "query": "from a_index | stats min(numberField) by round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort rtrim(stringField)",
+ "query": "from a_index | stats var0 = min(numberField) by var1 = round(numberField / 2)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort signum(numberField)",
+ "query": "from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort sin(numberField)",
+ "query": "from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), ipField",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort sinh(numberField)",
+ "query": "from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort split(stringField, stringField)",
+ "query": "from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), numberField / 2",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort sqrt(numberField)",
- "error": [],
+ "query": "from a_index | stats var = min(avg(numberField))",
+ "error": [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort st_contains(geoPointField, geoPointField)",
- "error": [],
+ "query": "from a_index | stats min(avg(numberField))",
+ "error": [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort st_disjoint(geoPointField, geoPointField)",
- "error": [],
+ "query": "from a_index | stats min(stringField)",
+ "error": [
+ "Argument of [min] must be [number], found value [stringField] type [string]"
+ ],
"warning": []
},
{
- "query": "from a_index | sort st_intersects(geoPointField, geoPointField)",
- "error": [],
+ "query": "from a_index | stats var = min(*)",
+ "error": [
+ "Using wildcards (*) in min is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | sort st_within(geoPointField, geoPointField)",
+ "query": "from a_index | stats var = min(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort st_x(geoPointField)",
+ "query": "from a_index | stats min(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort st_y(geoPointField)",
+ "query": "from a_index | stats var = round(min(dateField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort starts_with(stringField, stringField)",
+ "query": "from a_index | stats round(min(dateField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort substring(stringField, numberField, numberField)",
+ "query": "from a_index | stats var = round(min(dateField)) + min(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort tan(numberField)",
+ "query": "from a_index | stats round(min(dateField)) + min(dateField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort tanh(numberField)",
- "error": [],
+ "query": "from a_index | sort min(numberField)",
+ "error": [
+ "SORT does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort tau()",
- "error": [],
+ "query": "from a_index | where min(numberField)",
+ "error": [
+ "WHERE does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_boolean(stringField)",
- "error": [],
+ "query": "from a_index | where min(numberField) > 0",
+ "error": [
+ "WHERE does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_cartesianpoint(stringField)",
- "error": [],
+ "query": "from a_index | where min(dateField)",
+ "error": [
+ "WHERE does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_cartesianshape(stringField)",
- "error": [],
+ "query": "from a_index | where min(dateField) > 0",
+ "error": [
+ "WHERE does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_datetime(stringField)",
- "error": [],
+ "query": "from a_index | eval var = min(numberField)",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_degrees(numberField)",
- "error": [],
+ "query": "from a_index | eval var = min(numberField) > 0",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_double(stringField)",
- "error": [],
+ "query": "from a_index | eval min(numberField)",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_geopoint(stringField)",
- "error": [],
+ "query": "from a_index | eval min(numberField) > 0",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_geoshape(stringField)",
- "error": [],
+ "query": "from a_index | eval var = min(dateField)",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_integer(stringField)",
- "error": [],
+ "query": "from a_index | eval var = min(dateField) > 0",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_ip(stringField)",
- "error": [],
+ "query": "from a_index | eval min(dateField)",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_long(stringField)",
- "error": [],
+ "query": "from a_index | eval min(dateField) > 0",
+ "error": [
+ "EVAL does not support function min"
+ ],
"warning": []
},
{
- "query": "from a_index | sort to_lower(stringField)",
+ "query": "from a_index | stats var = count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort to_radians(numberField)",
+ "query": "from a_index | stats count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort to_string(stringField)",
+ "query": "from a_index | stats var = round(count(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort to_unsigned_long(stringField)",
+ "query": "from a_index | stats round(count(stringField))",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort to_upper(stringField)",
+ "query": "from a_index | stats var = round(count(stringField)) + count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort to_version(stringField)",
+ "query": "from a_index | stats round(count(stringField)) + count(stringField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | sort trim(stringField)",
- "error": [],
+ "query": "from a_index | sort count(stringField)",
+ "error": [
+ "SORT does not support function count"
+ ],
"warning": []
},
{
- "query": "from a_index | sort sin(stringField)",
+ "query": "from a_index | where count(stringField)",
"error": [
- "Argument of [sin] must be [number], found value [stringField] type [string]"
+ "WHERE does not support function count"
],
"warning": []
},
{
- "query": "from a_index | sort numberField + stringField",
+ "query": "from a_index | where count(stringField) > 0",
"error": [
- "Argument of [+] must be [number], found value [stringField] type [string]"
+ "WHERE does not support function count"
],
"warning": []
},
{
- "query": "from a_index | enrich",
+ "query": "from a_index | eval var = count(stringField)",
"error": [
- "SyntaxError: missing ENRICH_POLICY_NAME at ''"
+ "EVAL does not support function count"
],
"warning": []
},
{
- "query": "from a_index | enrich _",
+ "query": "from a_index | eval var = count(stringField) > 0",
"error": [
- "Unknown policy [_]"
+ "EVAL does not support function count"
],
"warning": []
},
{
- "query": "from a_index | enrich _:",
+ "query": "from a_index | eval count(stringField)",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "Unknown policy [_]"
+ "EVAL does not support function count"
],
"warning": []
},
{
- "query": "from a_index | enrich _:policy",
+ "query": "from a_index | eval count(stringField) > 0",
"error": [
- "Unrecognized value [_] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
+ "EVAL does not support function count"
],
"warning": []
},
{
- "query": "from a_index | enrich :policy",
- "error": [
- "SyntaxError: token recognition error at: ':'"
- ],
+ "query": "from a_index | stats var = count_distinct(stringField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | enrich any:",
- "error": [
- "SyntaxError: token recognition error at: ':'",
- "Unknown policy [any]"
- ],
+ "query": "from a_index | stats count_distinct(stringField, numberField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | enrich _any:",
- "error": [
- "SyntaxError: token recognition error at: ':'",
- "Unknown policy [_any]"
- ],
+ "query": "from a_index | stats var = round(count_distinct(stringField, numberField))",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | enrich any:policy",
+ "query": "from a_index | stats round(count_distinct(stringField, numberField))",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats var = round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort count_distinct(stringField, numberField)",
"error": [
- "Unrecognized value [any] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
+ "SORT does not support function count_distinct"
],
"warning": []
},
{
- "query": "from a_index | enrich policy ",
- "error": [],
+ "query": "from a_index | where count_distinct(stringField, numberField)",
+ "error": [
+ "WHERE does not support function count_distinct"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich `this``is fine`",
+ "query": "from a_index | where count_distinct(stringField, numberField) > 0",
"error": [
- "SyntaxError: mismatched input '`this``is fine`' expecting ENRICH_POLICY_NAME"
+ "WHERE does not support function count_distinct"
],
"warning": []
},
{
- "query": "from a_index | enrich this is fine",
+ "query": "from a_index | eval var = count_distinct(stringField, numberField)",
"error": [
- "SyntaxError: mismatched input 'is' expecting ",
- "Unknown policy [this]"
+ "EVAL does not support function count_distinct"
],
"warning": []
},
{
- "query": "from a_index | enrich _any:policy ",
- "error": [],
+ "query": "from a_index | eval var = count_distinct(stringField, numberField) > 0",
+ "error": [
+ "EVAL does not support function count_distinct"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich _any : policy ",
+ "query": "from a_index | eval count_distinct(stringField, numberField)",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_any]"
+ "EVAL does not support function count_distinct"
],
"warning": []
},
{
- "query": "from a_index | enrich _any: policy ",
+ "query": "from a_index | eval count_distinct(stringField, numberField) > 0",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_any]"
+ "EVAL does not support function count_distinct"
],
"warning": []
},
{
- "query": "from a_index | enrich _any:policy ",
+ "query": "from a_index | stats var = st_centroid_agg(cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich _ANY:policy ",
+ "query": "from a_index | stats st_centroid_agg(cartesianPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich _coordinator:policy ",
- "error": [],
+ "query": "from a_index | stats var = st_centroid_agg(avg(numberField))",
+ "error": [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich _coordinator : policy ",
+ "query": "from a_index | stats st_centroid_agg(avg(numberField))",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_coordinator]"
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]"
],
"warning": []
},
{
- "query": "from a_index | enrich _coordinator: policy ",
+ "query": "from a_index | stats st_centroid_agg(stringField)",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_coordinator]"
+ "Argument of [st_centroid_agg] must be [cartesian_point], found value [stringField] type [string]"
],
"warning": []
},
{
- "query": "from a_index | enrich _coordinator:policy ",
- "error": [],
+ "query": "from a_index | stats var = st_centroid_agg(*)",
+ "error": [
+ "Using wildcards (*) in st_centroid_agg is not allowed"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich _COORDINATOR:policy ",
+ "query": "from a_index | stats var = st_centroid_agg(geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich _remote:policy ",
+ "query": "from a_index | stats st_centroid_agg(geoPointField)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich _remote : policy ",
+ "query": "from a_index | sort st_centroid_agg(cartesianPointField)",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_remote]"
+ "SORT does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich _remote: policy ",
+ "query": "from a_index | where st_centroid_agg(cartesianPointField)",
"error": [
- "SyntaxError: token recognition error at: ':'",
- "SyntaxError: extraneous input 'policy' expecting ",
- "Unknown policy [_remote]"
+ "WHERE does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich _remote:policy ",
- "error": [],
+ "query": "from a_index | where st_centroid_agg(cartesianPointField) > 0",
+ "error": [
+ "WHERE does not support function st_centroid_agg"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich _REMOTE:policy ",
- "error": [],
+ "query": "from a_index | where st_centroid_agg(geoPointField)",
+ "error": [
+ "WHERE does not support function st_centroid_agg"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich _unknown:policy",
+ "query": "from a_index | where st_centroid_agg(geoPointField) > 0",
"error": [
- "Unrecognized value [_unknown] for ENRICH, mode needs to be one of [_ANY, _COORDINATOR, _REMOTE]"
+ "WHERE does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index |enrich missing-policy ",
+ "query": "from a_index | eval var = st_centroid_agg(cartesianPointField)",
"error": [
- "Unknown policy [missing-policy]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index |enrich policy on ",
+ "query": "from a_index | eval var = st_centroid_agg(cartesianPointField) > 0",
"error": [
- "SyntaxError: missing ID_PATTERN at ''"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on b ",
+ "query": "from a_index | eval st_centroid_agg(cartesianPointField)",
"error": [
- "Unknown column [b]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on `this``is fine`",
+ "query": "from a_index | eval st_centroid_agg(cartesianPointField) > 0",
"error": [
- "Unknown column [this`is fine]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on this is fine",
+ "query": "from a_index | eval var = st_centroid_agg(geoPointField)",
"error": [
- "SyntaxError: mismatched input 'is' expecting ",
- "Unknown column [this]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with ",
+ "query": "from a_index | eval var = st_centroid_agg(geoPointField) > 0",
"error": [
- "SyntaxError: mismatched input '' expecting ID_PATTERN"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 ",
+ "query": "from a_index | eval st_centroid_agg(geoPointField)",
"error": [
- "Unknown column [var0]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index |enrich policy on numberField with var0 = ",
+ "query": "from a_index | eval st_centroid_agg(geoPointField) > 0",
"error": [
- "SyntaxError: missing ID_PATTERN at ''",
- "Unknown column [var0]"
+ "EVAL does not support function st_centroid_agg"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = c ",
- "error": [
- "Unknown column [var0]",
- "Unknown column [c]"
- ],
+ "query": "from a_index | stats var = values(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index |enrich policy on numberField with var0 = , ",
- "error": [
- "SyntaxError: missing ID_PATTERN at ','",
- "SyntaxError: mismatched input '' expecting ID_PATTERN",
- "Unknown column [var0]"
- ],
+ "query": "from a_index | stats values(stringField)",
+ "error": [],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = otherField, var1 ",
+ "query": "from a_index | sort values(stringField)",
"error": [
- "Unknown column [var1]"
+ "SORT does not support function values"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = otherField ",
- "error": [],
+ "query": "from a_index | where values(stringField)",
+ "error": [
+ "WHERE does not support function values"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = otherField, yetAnotherField ",
- "error": [],
+ "query": "from a_index | where values(stringField) > 0",
+ "error": [
+ "WHERE does not support function values"
+ ],
"warning": []
},
{
- "query": "from a_index |enrich policy on numberField with var0 = otherField, var1 = ",
+ "query": "from a_index | eval var = values(stringField)",
"error": [
- "SyntaxError: missing ID_PATTERN at ''",
- "Unknown column [var1]"
+ "EVAL does not support function values"
],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = otherField, var1 = yetAnotherField",
- "error": [],
+ "query": "from a_index | eval var = values(stringField) > 0",
+ "error": [
+ "EVAL does not support function values"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich policy on stringField with var0 = otherField, `this``is fine` = yetAnotherField",
- "error": [],
+ "query": "from a_index | eval values(stringField)",
+ "error": [
+ "EVAL does not support function values"
+ ],
"warning": []
},
{
- "query": "from a_index | enrich policy with ",
+ "query": "from a_index | eval values(stringField) > 0",
"error": [
- "SyntaxError: mismatched input '' expecting ID_PATTERN"
+ "EVAL does not support function values"
],
"warning": []
},
{
- "query": "from a_index | enrich policy with otherField",
+ "query": "from a_index | stats by bucket(dateField, 1 year)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich policy | eval otherField",
+ "query": "from a_index | stats by bin(dateField, 1 year)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich policy with var0 = otherField | eval var0",
+ "query": "from a_index | stats by bucket(numberField, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | enrich my-pol*",
+ "query": "from a_index | stats by bucket(numberField, numberField)",
"error": [
- "Using wildcards (*) in ENRICH is not allowed [my-pol*]"
+ "Argument of [bucket] must be a constant, received [numberField]"
],
"warning": []
},
{
- "query": "from a_index | eval stringField = 5",
+ "query": "from a_index | stats by bin(numberField, 5)",
"error": [],
- "warning": [
- "Column [stringField] of type string has been overwritten as new type: number"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval numberField = \"5\"",
+ "query": "from a_index | stats by bucket(dateField, 5, \"a\", \"a\")",
"error": [],
- "warning": [
- "Column [numberField] of type number has been overwritten as new type: string"
- ]
+ "warning": []
},
{
- "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | keep ```round(numberField) + 1`` + 1`",
- "error": [],
+ "query": "from a_index | stats by bucket(dateField, numberField, stringField, stringField)",
+ "error": [
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [stringField]",
+ "Argument of [bucket] must be a constant, received [stringField]"
+ ],
"warning": []
},
{
- "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | keep ```````round(numberField) + 1```` + 1`` + 1`",
+ "query": "from a_index | stats by bin(dateField, 5, \"a\", \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | eval ```````round(numberField) + 1```` + 1`` + 1` + 1 | keep ```````````````round(numberField) + 1```````` + 1```` + 1`` + 1`",
+ "query": "from a_index | stats by bucket(dateField, 5, now(), now())",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval round(numberField) + 1 | eval `round(numberField) + 1` + 1 | eval ```round(numberField) + 1`` + 1` + 1 | eval ```````round(numberField) + 1```` + 1`` + 1` + 1 | eval ```````````````round(numberField) + 1```````` + 1```` + 1`` + 1` + 1 | keep ```````````````````````````````round(numberField) + 1```````````````` + 1```````` + 1```` + 1`` + 1`",
- "error": [],
+ "query": "from a_index | stats by bucket(dateField, numberField, dateField, dateField)",
+ "error": [
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [dateField]",
+ "Argument of [bucket] must be a constant, received [dateField]"
+ ],
"warning": []
},
{
- "query": "row var = date_diff(\"month\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
+ "query": "from a_index | stats by bin(dateField, 5, now(), now())",
"error": [],
"warning": []
},
{
- "query": "row var = date_diff(\"mm\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
+ "query": "from a_index | stats by bucket(dateField, 5, \"a\", now())",
"error": [],
"warning": []
},
{
- "query": "row var = date_diff(\"bogus\", \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
+ "query": "from a_index | stats by bucket(dateField, numberField, stringField, dateField)",
+ "error": [
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [stringField]",
+ "Argument of [bucket] must be a constant, received [dateField]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats by bin(dateField, 5, \"a\", now())",
"error": [],
- "warning": [
- "Invalid option [\"bogus\"] for date_diff. Supported options: [\"year\", \"years\", \"yy\", \"yyyy\", \"quarter\", \"quarters\", \"qq\", \"q\", \"month\", \"months\", \"mm\", \"m\", \"dayofyear\", \"dy\", \"y\", \"day\", \"days\", \"dd\", \"d\", \"week\", \"weeks\", \"wk\", \"ww\", \"weekday\", \"weekdays\", \"dw\", \"hour\", \"hours\", \"hh\", \"minute\", \"minutes\", \"mi\", \"n\", \"second\", \"seconds\", \"ss\", \"s\", \"millisecond\", \"milliseconds\", \"ms\", \"microsecond\", \"microseconds\", \"mcs\", \"nanosecond\", \"nanoseconds\", \"ns\"]."
- ]
+ "warning": []
},
{
- "query": "from a_index | eval date_diff(stringField, \"2023-12-02T11:00:00.000Z\", \"2023-12-02T11:00:00.000Z\")",
+ "query": "from a_index | stats by bucket(dateField, 5, now(), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"month\", dateField, \"2023-12-02T11:00:00.000Z\")",
+ "query": "from a_index | stats by bucket(dateField, numberField, dateField, stringField)",
+ "error": [
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [dateField]",
+ "Argument of [bucket] must be a constant, received [stringField]"
+ ],
+ "warning": []
+ },
+ {
+ "query": "from a_index | stats by bin(dateField, 5, now(), \"a\")",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"month\", \"2023-12-02T11:00:00.000Z\", dateField)",
+ "query": "from a_index | stats by bucket(numberField, 5, 5, 5)",
"error": [],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"month\", stringField, dateField)",
+ "query": "from a_index | stats by bucket(numberField, numberField, numberField, numberField)",
"error": [
- "Argument of [date_diff] must be [date], found value [stringField] type [string]"
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [numberField]",
+ "Argument of [bucket] must be a constant, received [numberField]"
],
"warning": []
},
{
- "query": "from a_index | eval date_diff(\"month\", dateField, stringField)",
+ "query": "from a_index | stats by bin(numberField, 5, 5, 5)",
+ "error": [],
+ "warning": []
+ },
+ {
+ "query": "from a_index | sort bucket(dateField, 1 year)",
"error": [
- "Argument of [date_diff] must be [date], found value [stringField] type [string]"
+ "SORT does not support function bucket"
],
"warning": []
}
diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/function_describe_block_name.ts b/packages/kbn-esql-validation-autocomplete/src/validation/function_describe_block_name.ts
new file mode 100644
index 0000000000000..00bda37e26f16
--- /dev/null
+++ b/packages/kbn-esql-validation-autocomplete/src/validation/function_describe_block_name.ts
@@ -0,0 +1,9 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export const FUNCTION_DESCRIBE_BLOCK_NAME = 'functions';
diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
index c37ea71ef1be4..3cb8e608d8841 100644
--- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
+++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts
@@ -18,7 +18,7 @@ import capitalize from 'lodash/capitalize';
import { camelCase } from 'lodash';
import { getAstAndSyntaxErrors } from '@kbn/esql-ast';
import { nonNullable } from '../shared/helpers';
-import { groupingFunctionDefinitions } from '../definitions/grouping';
+import { FUNCTION_DESCRIBE_BLOCK_NAME } from './function_describe_block_name';
const fieldTypes = [
'number',
@@ -219,89 +219,6 @@ function getFieldMapping(
});
}
-function generateIncorrectlyTypedParameters(
- name: string,
- signatures: FunctionDefinition['signatures'],
- currentParams: FunctionDefinition['signatures'][number]['params'],
- values: { stringField: string; numberField: string; booleanField: string }
-) {
- const literalValues = {
- string: `"a"`,
- number: '5',
- };
- const wrongFieldMapping = currentParams.map(
- ({ name: _name, constantOnly, literalOptions, type, ...rest }, i) => {
- // this thing is complex enough, let's not make it harder for constants
- if (constantOnly) {
- return {
- name: literalValues[type as keyof typeof literalValues],
- type,
- wrong: false,
- ...rest,
- };
- }
- const canBeFieldButNotString = Boolean(
- fieldTypes.filter((t) => t !== 'string').includes(type) &&
- signatures.every(({ params: fnParams }) => fnParams[i].type !== 'string')
- );
- const canBeFieldButNotNumber =
- fieldTypes.filter((t) => t !== 'number').includes(type) &&
- signatures.every(({ params: fnParams }) => fnParams[i].type !== 'number');
- const isLiteralType = /literal$/.test(type);
- // pick a field name purposely wrong
- const nameValue =
- canBeFieldButNotString || isLiteralType
- ? values.stringField
- : canBeFieldButNotNumber
- ? values.numberField
- : values.booleanField;
- return { name: nameValue, type, wrong: true, ...rest };
- }
- );
-
- const generatedFieldTypes = {
- [values.stringField]: 'string',
- [values.numberField]: 'number',
- [values.booleanField]: 'boolean',
- };
-
- // Try to predict which signature will be used to generate the errors
- // in the validation engine. The validator currently uses the signature
- // which generates the fewest errors.
- //
- // Approximate this by finding the signature that best matches the INCORRECT field mapping
- //
- // This is not future-proof...
- const misMatchesBySignature = signatures.map(({ params: fnParams }) => {
- const typeMatches = fnParams.map(({ type }, i) => {
- if (wrongFieldMapping[i].wrong) {
- const typeFromIncorrectMapping = generatedFieldTypes[wrongFieldMapping[i].name];
- return type === typeFromIncorrectMapping;
- }
- return type === wrongFieldMapping[i].type;
- });
- return typeMatches.filter((t) => !t).length;
- })!;
- const signatureToUse =
- signatures[misMatchesBySignature.indexOf(Math.min(...misMatchesBySignature))]!;
-
- const expectedErrors = signatureToUse.params
- .filter(({ constantOnly }) => !constantOnly)
- .map(({ type }, i) => {
- const fieldName = wrongFieldMapping[i].name;
- if (
- fieldName === 'numberField' &&
- signatures.every(({ params: fnParams }) => fnParams[i].type !== 'string')
- ) {
- return;
- }
- return `Argument of [${name}] must be [${type}], found value [${fieldName}] type [${generatedFieldTypes[fieldName]}]`;
- })
- .filter(nonNullable);
-
- return { wrongFieldMapping, expectedErrors };
-}
-
describe('validation logic', () => {
const testCases: Array<{ query: string; error: string[]; warning: string[] }> = [];
@@ -571,109 +488,6 @@ describe('validation logic', () => {
}
}
- function tweakSignatureForRowCommand(signature: string) {
- /**
- * row has no access to any field, so replace it with literal
- * or functions (for dates)
- */
- return signature
- .replace(/numberField/g, '5')
- .replace(/stringField/g, '"a"')
- .replace(/dateField/g, 'now()')
- .replace(/booleanField/g, 'true')
- .replace(/ipField/g, 'to_ip("127.0.0.1")')
- .replace(/geoPointField/g, 'to_geopoint("POINT (30 10)")')
- .replace(/geoShapeField/g, 'to_geoshape("POINT (30 10)")')
- .replace(/cartesianPointField/g, 'to_cartesianpoint("POINT (30 10)")')
- .replace(/cartesianShapeField/g, 'to_cartesianshape("POINT (30 10)")');
- }
-
- for (const { name, alias, signatures, ...defRest } of evalFunctionsDefinitions) {
- if (name === 'date_diff') continue;
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
- const signatureStringCorrect = tweakSignatureForRowCommand(
- getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration
- );
-
- testErrorsAndWarnings(`row var = ${signatureStringCorrect}`, []);
- testErrorsAndWarnings(`row ${signatureStringCorrect}`, []);
-
- if (alias) {
- for (const otherName of alias) {
- const signatureStringWithAlias = tweakSignatureForRowCommand(
- getFunctionSignatures(
- {
- name: otherName,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- );
-
- testErrorsAndWarnings(`row var = ${signatureStringWithAlias}`, []);
- }
- }
-
- // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
- // to_version functions are a bit harder to test exactly a combination of argument and predict the
- // the right error message
- if (
- params.every(({ type }) => type !== 'any') &&
- ![
- 'to_version',
- 'mv_sort',
- // skip the date functions because the row tests always throw in
- // a string literal and expect it to be invalid for the date functions
- // but it's always valid because ES will parse it as a date
- 'date_diff',
- 'date_extract',
- 'date_format',
- 'date_trunc',
- ].includes(name)
- ) {
- // now test nested functions
- const fieldMappingWithNestedFunctions = getFieldMapping(params, {
- useNestedFunction: true,
- useLiterals: true,
- });
- const signatureString = tweakSignatureForRowCommand(
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithNestedFunctions, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- );
-
- testErrorsAndWarnings(`row var = ${signatureString}`, []);
-
- const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
- name,
- signatures,
- params,
- {
- stringField: '"a"',
- numberField: '5',
- booleanField: 'true',
- }
- );
- const wrongSignatureString = tweakSignatureForRowCommand(
- getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration
- );
- testErrorsAndWarnings(`row var = ${wrongSignatureString}`, expectedErrors);
- }
- }
- }
for (const op of ['>', '>=', '<', '<=', '==', '!=']) {
testErrorsAndWarnings(`row var = 5 ${op} 0`, []);
testErrorsAndWarnings(`row var = NOT 5 ${op} 0`, []);
@@ -1221,102 +1035,6 @@ describe('validation logic', () => {
// this is a scenario that was failing because "or" didn't accept "null"
testErrorsAndWarnings('from a_index | where stringField == "a" or null', []);
-
- for (const {
- name,
- alias,
- signatures,
- ...defRest
- } of statsAggregationFunctionDefinitions.filter(
- ({ name: fnName, signatures: statsSignatures }) =>
- statsSignatures.some(({ returnType, params }) => ['number'].includes(returnType))
- )) {
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
-
- testErrorsAndWarnings(
- `from a_index | where ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- [`WHERE does not support function ${name}`]
- );
-
- testErrorsAndWarnings(
- `from a_index | where ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- } > 0`,
- [`WHERE does not support function ${name}`]
- );
- }
- }
-
- // Test that all functions work in where
- const numericOrStringFunctions = evalFunctionsDefinitions.filter(({ name, signatures }) => {
- return signatures.some(
- ({ returnType, params }) =>
- ['number', 'string'].includes(returnType) &&
- params.every(({ type }) => ['number', 'string'].includes(type))
- );
- });
- for (const { name, signatures, ...rest } of numericOrStringFunctions) {
- const supportedSignatures = signatures.filter(({ returnType }) =>
- // TODO — not sure why the tests have this limitation... seems like any type
- // that can be part of a boolean expression should be allowed in a where clause
- ['number', 'string'].includes(returnType)
- );
- for (const { params, returnType, ...restSign } of supportedSignatures) {
- const correctMapping = getFieldMapping(params);
- testErrorsAndWarnings(
- `from a_index | where ${returnType !== 'number' ? 'length(' : ''}${
- // hijacking a bit this function to produce a function call
- getFunctionSignatures(
- {
- name,
- ...rest,
- signatures: [{ params: correctMapping, returnType, ...restSign }],
- },
- { withTypes: false }
- )[0].declaration
- }${returnType !== 'number' ? ')' : ''} > 0`,
- []
- );
-
- const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
- name,
- signatures,
- params,
- { stringField: 'stringField', numberField: 'numberField', booleanField: 'booleanField' }
- );
- testErrorsAndWarnings(
- `from a_index | where ${returnType !== 'number' ? 'length(' : ''}${
- // hijacking a bit this function to produce a function call
- getFunctionSignatures(
- {
- name,
- ...rest,
- signatures: [{ params: wrongFieldMapping, returnType, ...restSign }],
- },
- { withTypes: false }
- )[0].declaration
- }${returnType !== 'number' ? ')' : ''} > 0`,
- expectedErrors
- );
- }
- }
});
describe('eval', () => {
@@ -1409,248 +1127,6 @@ describe('validation logic', () => {
`SyntaxError: extraneous input '${wrongOp}' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}`,
]);
}
-
- for (const { name, alias, signatures, ...defRest } of statsAggregationFunctionDefinitions) {
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
- testErrorsAndWarnings(
- `from a_index | eval var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- [`EVAL does not support function ${name}`]
- );
-
- testErrorsAndWarnings(
- `from a_index | eval var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- } > 0`,
- [`EVAL does not support function ${name}`]
- );
-
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- [`EVAL does not support function ${name}`]
- );
-
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- } > 0`,
- [`EVAL does not support function ${name}`]
- );
- }
- }
-
- for (const { name, alias, signatures, ...defRest } of evalFunctionsDefinitions) {
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
- testErrorsAndWarnings(
- `from a_index | eval var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration
- }`,
- []
- );
- if (params.some(({ constantOnly }) => constantOnly)) {
- const fieldReplacedType = params
- .filter(({ constantOnly }) => constantOnly)
- .map(({ type }) => type);
- // create the mapping without the literal flag
- // this will make the signature wrong on purpose where in place on constants
- // the arg will be a column of the same type
- const fieldMappingWithoutLiterals = getFieldMapping(
- params.map(({ constantOnly, ...rest }) => rest)
- );
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- fieldReplacedType.map(
- (type) => `Argument of [${name}] must be a constant, received [${type}Field]`
- )
- );
- }
-
- if (alias) {
- for (const otherName of alias) {
- const signatureStringWithAlias = getFunctionSignatures(
- {
- name: otherName,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration;
-
- testErrorsAndWarnings(`from a_index | eval var = ${signatureStringWithAlias}`, []);
- }
- }
-
- // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
- // to_version functions are a bit harder to test exactly a combination of argument and predict the
- // the right error message
- if (
- params.every(({ type }) => type !== 'any') &&
- !['to_version', 'mv_sort'].includes(name)
- ) {
- // now test nested functions
- const fieldMappingWithNestedFunctions = getFieldMapping(params, {
- useNestedFunction: true,
- useLiterals: true,
- });
- testErrorsAndWarnings(
- `from a_index | eval var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithNestedFunctions, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`
- );
-
- const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
- name,
- signatures,
- params,
- {
- stringField: 'stringField',
- numberField: 'numberField',
- booleanField: 'booleanField',
- }
- );
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration
- }`,
- expectedErrors
- );
-
- if (!signRest.minParams) {
- // test that additional args are spotted
- const fieldMappingWithOneExtraArg = getFieldMapping(params).concat({
- name: 'extraArg',
- type: 'number',
- });
- const refSignature = signatures[0];
- // get the expected args from the first signature in case of errors
- const minNumberOfArgs = refSignature.params.filter(
- ({ optional }) => !optional
- ).length;
- const fullNumberOfArgs = refSignature.params.length;
- const hasOptionalArgs = minNumberOfArgs < fullNumberOfArgs;
- const hasTooManyArgs = fieldMappingWithOneExtraArg.length > fullNumberOfArgs;
-
- // the validation engine tries to be smart about signatures with optional args
- let messageQuantifier = 'exactly ';
- if (hasOptionalArgs && hasTooManyArgs) {
- messageQuantifier = 'no more than ';
- }
- if (!hasOptionalArgs && !hasTooManyArgs) {
- messageQuantifier = 'at least ';
- }
- testErrorsAndWarnings(
- `from a_index | eval ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithOneExtraArg, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- [
- `Error: [${name}] function expects ${messageQuantifier}${
- fullNumberOfArgs === 1
- ? 'one argument'
- : fullNumberOfArgs === 0
- ? '0 arguments'
- : `${fullNumberOfArgs} arguments`
- }, got ${fieldMappingWithOneExtraArg.length}.`,
- ]
- );
- }
- }
-
- // test that wildcard won't work as arg
- if (fieldMapping.length === 1 && !signRest.minParams) {
- const fieldMappingWithWildcard = [...fieldMapping];
- fieldMappingWithWildcard[0].name = '*';
-
- testErrorsAndWarnings(
- `from a_index | eval var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithWildcard, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- [`Using wildcards (*) in ${name} is not allowed`]
- );
- }
- }
- }
testErrorsAndWarnings(
'from a_index | eval log10(-1)',
[],
@@ -2123,304 +1599,6 @@ describe('validation logic', () => {
'Cannot combine aggregation and non-aggregation values in [STATS], found [abs(numberField+sum(numberField))]',
]);
- for (const { name, alias, signatures, ...defRest } of statsAggregationFunctionDefinitions) {
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
-
- const correctSignature = getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration;
- testErrorsAndWarnings(`from a_index | stats var = ${correctSignature}`, []);
- testErrorsAndWarnings(`from a_index | stats ${correctSignature}`, []);
-
- if (signRest.returnType === 'number') {
- testErrorsAndWarnings(`from a_index | stats var = round(${correctSignature})`, []);
- testErrorsAndWarnings(`from a_index | stats round(${correctSignature})`, []);
- testErrorsAndWarnings(
- `from a_index | stats var = round(${correctSignature}) + ${correctSignature}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats round(${correctSignature}) + ${correctSignature}`,
- []
- );
- }
-
- if (params.some(({ constantOnly }) => constantOnly)) {
- const fieldReplacedType = params
- .filter(({ constantOnly }) => constantOnly)
- .map(({ type }) => type);
- // create the mapping without the literal flag
- // this will make the signature wrong on purpose where in place on constants
- // the arg will be a column of the same type
- const fieldMappingWithoutLiterals = getFieldMapping(
- params.map(({ constantOnly, ...rest }) => rest)
- );
- testErrorsAndWarnings(
- `from a_index | stats ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- fieldReplacedType.map(
- (type) => `Argument of [${name}] must be a constant, received [${type}Field]`
- )
- );
- }
-
- if (alias) {
- for (const otherName of alias) {
- const signatureStringWithAlias = getFunctionSignatures(
- {
- name: otherName,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration;
-
- testErrorsAndWarnings(`from a_index | stats var = ${signatureStringWithAlias}`, []);
- }
- }
-
- // test only numeric functions for now
- if (params[0].type === 'number') {
- const nestedBuiltin = 'numberField / 2';
- const fieldMappingWithNestedBuiltinFunctions = getFieldMapping(params);
- fieldMappingWithNestedBuiltinFunctions[0].name = nestedBuiltin;
-
- const fnSignatureWithBuiltinString = getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithNestedBuiltinFunctions, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration;
- // from a_index | STATS aggFn( numberField / 2 )
- testErrorsAndWarnings(`from a_index | stats ${fnSignatureWithBuiltinString}`, []);
- testErrorsAndWarnings(
- `from a_index | stats var0 = ${fnSignatureWithBuiltinString}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), ${fnSignatureWithBuiltinString}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), var0 = ${fnSignatureWithBuiltinString}`,
- []
- );
-
- const nestedEvalAndBuiltin = 'round(numberField / 2)';
- const fieldMappingWithNestedEvalAndBuiltinFunctions = getFieldMapping(params);
- fieldMappingWithNestedBuiltinFunctions[0].name = nestedEvalAndBuiltin;
-
- const fnSignatureWithEvalAndBuiltinString = getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [
- { params: fieldMappingWithNestedEvalAndBuiltinFunctions, ...signRest },
- ],
- },
- { withTypes: false }
- )[0].declaration;
- // from a_index | STATS aggFn( round(numberField / 2) )
- testErrorsAndWarnings(
- `from a_index | stats ${fnSignatureWithEvalAndBuiltinString}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats var0 = ${fnSignatureWithEvalAndBuiltinString}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString}`,
- []
- );
- // from a_index | STATS aggFn(round(numberField / 2) ) BY round(numberField / 2)
- testErrorsAndWarnings(
- `from a_index | stats ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}, ipField`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}, ipField`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), ${fnSignatureWithEvalAndBuiltinString} by ${nestedEvalAndBuiltin}, ${nestedBuiltin}`,
- []
- );
- testErrorsAndWarnings(
- `from a_index | stats avg(numberField), var0 = ${fnSignatureWithEvalAndBuiltinString} by var1 = ${nestedEvalAndBuiltin}, ${nestedBuiltin}`,
- []
- );
- }
-
- // Skip functions that have only arguments of type "any", as it is not possible to pass "the wrong type".
- // to_version is a bit harder to test exactly a combination of argument and predict the
- // the right error message
- if (
- params.every(({ type }) => type !== 'any') &&
- !['to_version', 'mv_sort'].includes(name)
- ) {
- // now test nested functions
- const fieldMappingWithNestedAggsFunctions = getFieldMapping(params, {
- useNestedFunction: true,
- useLiterals: false,
- });
- const nestedAggsExpectedErrors = params
- .filter(({ constantOnly }) => !constantOnly)
- .map(
- (_) =>
- `Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]`
- );
- testErrorsAndWarnings(
- `from a_index | stats var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithNestedAggsFunctions, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- nestedAggsExpectedErrors
- );
- testErrorsAndWarnings(
- `from a_index | stats ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithNestedAggsFunctions, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- nestedAggsExpectedErrors
- );
- const { wrongFieldMapping, expectedErrors } = generateIncorrectlyTypedParameters(
- name,
- signatures,
- params,
- {
- stringField: 'stringField',
- numberField: 'numberField',
- booleanField: 'booleanField',
- }
- );
- // and the message is case of wrong argument type is passed
- testErrorsAndWarnings(
- `from a_index | stats ${
- getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: wrongFieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration
- }`,
- expectedErrors
- );
-
- // test that only count() accepts wildcard as arg
- // just check that the function accepts only 1 arg as the parser cannot handle multiple args with * as start arg
- if (fieldMapping.length === 1) {
- const fieldMappingWithWildcard = [...fieldMapping];
- fieldMappingWithWildcard[0].name = '*';
-
- testErrorsAndWarnings(
- `from a_index | stats var = ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithWildcard, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- name === 'count' ? [] : [`Using wildcards (*) in ${name} is not allowed`]
- );
- }
- }
- }
- }
-
- for (const { name, alias, signatures, ...defRest } of groupingFunctionDefinitions) {
- for (const { params, ...signRest } of signatures) {
- const fieldMapping = getFieldMapping(params);
-
- const correctSignature = getFunctionSignatures(
- { name, ...defRest, signatures: [{ params: fieldMapping, ...signRest }] },
- { withTypes: false }
- )[0].declaration;
- testErrorsAndWarnings(`from a_index | stats by ${correctSignature}`, []);
-
- if (params.some(({ constantOnly }) => constantOnly)) {
- const fieldReplacedType = params
- .filter(({ constantOnly }) => constantOnly)
- .map(({ type }) => type);
- // create the mapping without the literal flag
- // this will make the signature wrong on purpose where in place on constants
- // the arg will be a column of the same type
- const fieldMappingWithoutLiterals = getFieldMapping(
- params.map(({ constantOnly, ...rest }) => rest)
- );
- testErrorsAndWarnings(
- `from a_index | stats by ${
- getFunctionSignatures(
- {
- name,
- ...defRest,
- signatures: [{ params: fieldMappingWithoutLiterals, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration
- }`,
- fieldReplacedType
- // if a param of type time_literal or chrono_literal it will always be a literal
- // so no way to test the constantOnly thing
- .filter((type) => !['time_literal', 'chrono_literal'].includes(type))
- .map((type) => `Argument of [${name}] must be a constant, received [${type}Field]`)
- );
- }
-
- if (alias) {
- for (const otherName of alias) {
- const signatureStringWithAlias = getFunctionSignatures(
- {
- name: otherName,
- ...defRest,
- signatures: [{ params: fieldMapping, ...signRest }],
- },
- { withTypes: false }
- )[0].declaration;
-
- testErrorsAndWarnings(`from a_index | stats by ${signatureStringWithAlias}`, []);
- }
- }
- }
- }
-
testErrorsAndWarnings(
`FROM index
| EVAL numberField * 3.281
@@ -2500,40 +1678,6 @@ describe('validation logic', () => {
[]
);
- // SORT doesn't accept agg or grouping functions
- for (const definition of [
- ...statsAggregationFunctionDefinitions,
- ...groupingFunctionDefinitions,
- ]) {
- const {
- name,
- signatures: [firstSignature],
- } = definition;
- const fieldMapping = getFieldMapping(firstSignature.params);
- const printedInvocation = getFunctionSignatures(
- { ...definition, signatures: [{ ...firstSignature, params: fieldMapping }] },
- { withTypes: false }
- )[0].declaration;
-
- testErrorsAndWarnings(`from a_index | sort ${printedInvocation}`, [
- `SORT does not support function ${name}`,
- ]);
- }
-
- // But does accept eval functions
- for (const definition of evalFunctionsDefinitions) {
- const {
- signatures: [firstSignature],
- } = definition;
- const fieldMapping = getFieldMapping(firstSignature.params);
- const printedInvocation = getFunctionSignatures(
- { ...definition, signatures: [{ ...firstSignature, params: fieldMapping }] },
- { withTypes: false }
- )[0].declaration;
-
- testErrorsAndWarnings(`from a_index | sort ${printedInvocation}`, []);
- }
-
// Expression parts are also validated
testErrorsAndWarnings('from a_index | sort sin(stringField)', [
'Argument of [sin] must be [number], found value [stringField] type [string]',
@@ -2847,8 +1991,7 @@ describe('validation logic', () => {
});
});
- describe('functions', () => {
- // This section will expand in time, especially with https://github.com/elastic/kibana/issues/182390
+ describe(FUNCTION_DESCRIBE_BLOCK_NAME, () => {
describe('date_diff', () => {
testErrorsAndWarnings(
`row var = date_diff("month", "2023-12-02T11:00:00.000Z", "2023-12-02T11:00:00.000Z")`,
@@ -2890,6 +2033,4267 @@ describe('validation logic', () => {
testErrorsAndWarnings(`from a_index | eval date_diff("month", dateField, stringField)`, [
'Argument of [date_diff] must be [date], found value [stringField] type [string]',
]);
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_diff("year", dateField, dateField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval date_diff("year", dateField, dateField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_diff("year", to_datetime(stringField), to_datetime(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_diff(numberField, stringField, stringField)',
+ [
+ 'Argument of [date_diff] must be [string], found value [numberField] type [number]',
+ 'Argument of [date_diff] must be [date], found value [stringField] type [string]',
+ 'Argument of [date_diff] must be [date], found value [stringField] type [string]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_diff("year", dateField, dateField, extraArg)',
+ ['Error: [date_diff] function expects exactly 3 arguments, got 4.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort date_diff("year", dateField, dateField)', []);
+ });
+
+ describe('abs', () => {
+ testErrorsAndWarnings('row var = abs(5)', []);
+ testErrorsAndWarnings('row abs(5)', []);
+ testErrorsAndWarnings('row var = abs(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = abs("a")', [
+ 'Argument of [abs] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where abs(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where abs(stringField) > 0', [
+ 'Argument of [abs] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = abs(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval abs(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = abs(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval abs(stringField)', [
+ 'Argument of [abs] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval abs(numberField, extraArg)', [
+ 'Error: [abs] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = abs(*)', [
+ 'Using wildcards (*) in abs is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort abs(numberField)', []);
+ });
+
+ describe('acos', () => {
+ testErrorsAndWarnings('row var = acos(5)', []);
+ testErrorsAndWarnings('row acos(5)', []);
+ testErrorsAndWarnings('row var = acos(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = acos("a")', [
+ 'Argument of [acos] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where acos(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where acos(stringField) > 0', [
+ 'Argument of [acos] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = acos(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval acos(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = acos(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval acos(stringField)', [
+ 'Argument of [acos] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval acos(numberField, extraArg)', [
+ 'Error: [acos] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = acos(*)', [
+ 'Using wildcards (*) in acos is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort acos(numberField)', []);
+ });
+
+ describe('asin', () => {
+ testErrorsAndWarnings('row var = asin(5)', []);
+ testErrorsAndWarnings('row asin(5)', []);
+ testErrorsAndWarnings('row var = asin(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = asin("a")', [
+ 'Argument of [asin] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where asin(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where asin(stringField) > 0', [
+ 'Argument of [asin] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = asin(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval asin(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = asin(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval asin(stringField)', [
+ 'Argument of [asin] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval asin(numberField, extraArg)', [
+ 'Error: [asin] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = asin(*)', [
+ 'Using wildcards (*) in asin is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort asin(numberField)', []);
+ });
+
+ describe('atan', () => {
+ testErrorsAndWarnings('row var = atan(5)', []);
+ testErrorsAndWarnings('row atan(5)', []);
+ testErrorsAndWarnings('row var = atan(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = atan("a")', [
+ 'Argument of [atan] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where atan(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where atan(stringField) > 0', [
+ 'Argument of [atan] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = atan(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval atan(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = atan(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval atan(stringField)', [
+ 'Argument of [atan] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval atan(numberField, extraArg)', [
+ 'Error: [atan] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = atan(*)', [
+ 'Using wildcards (*) in atan is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort atan(numberField)', []);
+ });
+
+ describe('atan2', () => {
+ testErrorsAndWarnings('row var = atan2(5, 5)', []);
+ testErrorsAndWarnings('row atan2(5, 5)', []);
+ testErrorsAndWarnings('row var = atan2(to_integer("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = atan2("a", "a")', [
+ 'Argument of [atan2] must be [number], found value ["a"] type [string]',
+ 'Argument of [atan2] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where atan2(numberField, numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where atan2(stringField, stringField) > 0', [
+ 'Argument of [atan2] must be [number], found value [stringField] type [string]',
+ 'Argument of [atan2] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = atan2(numberField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval atan2(numberField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = atan2(to_integer(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval atan2(stringField, stringField)', [
+ 'Argument of [atan2] must be [number], found value [stringField] type [string]',
+ 'Argument of [atan2] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval atan2(numberField, numberField, extraArg)', [
+ 'Error: [atan2] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort atan2(numberField, numberField)', []);
+ });
+
+ describe('case', () => {
+ testErrorsAndWarnings('row var = case(true, "a")', []);
+ testErrorsAndWarnings('row case(true, "a")', []);
+ testErrorsAndWarnings('from a_index | eval var = case(booleanField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval case(booleanField, stringField)', []);
+ testErrorsAndWarnings('from a_index | sort case(booleanField, stringField)', []);
+ });
+
+ describe('ceil', () => {
+ testErrorsAndWarnings('row var = ceil(5)', []);
+ testErrorsAndWarnings('row ceil(5)', []);
+ testErrorsAndWarnings('row var = ceil(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = ceil("a")', [
+ 'Argument of [ceil] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where ceil(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where ceil(stringField) > 0', [
+ 'Argument of [ceil] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = ceil(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval ceil(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = ceil(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval ceil(stringField)', [
+ 'Argument of [ceil] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval ceil(numberField, extraArg)', [
+ 'Error: [ceil] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = ceil(*)', [
+ 'Using wildcards (*) in ceil is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort ceil(numberField)', []);
+ });
+
+ describe('cidr_match', () => {
+ testErrorsAndWarnings('row var = cidr_match(to_ip("127.0.0.1"), "a")', []);
+ testErrorsAndWarnings('row cidr_match(to_ip("127.0.0.1"), "a")', []);
+ testErrorsAndWarnings('row var = cidr_match(to_ip("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = cidr_match("a", 5)', [
+ 'Argument of [cidr_match] must be [ip], found value ["a"] type [string]',
+ 'Argument of [cidr_match] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = cidr_match(ipField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval cidr_match(ipField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = cidr_match(to_ip(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval cidr_match(stringField, numberField)', [
+ 'Argument of [cidr_match] must be [ip], found value [stringField] type [string]',
+ 'Argument of [cidr_match] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort cidr_match(ipField, stringField)', []);
+ });
+
+ describe('coalesce', () => {
+ testErrorsAndWarnings('row var = coalesce("a")', []);
+ testErrorsAndWarnings('row coalesce("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = coalesce(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval coalesce(stringField)', []);
+ testErrorsAndWarnings('from a_index | sort coalesce(stringField)', []);
+ });
+
+ describe('concat', () => {
+ testErrorsAndWarnings('row var = concat("a", "a")', []);
+ testErrorsAndWarnings('row concat("a", "a")', []);
+ testErrorsAndWarnings('row var = concat(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = concat(5, 5)', [
+ 'Argument of [concat] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(concat(stringField, stringField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | where length(concat(numberField, numberField)) > 0', [
+ 'Argument of [concat] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = concat(stringField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval concat(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = concat(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval concat(numberField, numberField)', [
+ 'Argument of [concat] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort concat(stringField, stringField)', []);
+ });
+
+ describe('cos', () => {
+ testErrorsAndWarnings('row var = cos(5)', []);
+ testErrorsAndWarnings('row cos(5)', []);
+ testErrorsAndWarnings('row var = cos(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = cos("a")', [
+ 'Argument of [cos] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where cos(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where cos(stringField) > 0', [
+ 'Argument of [cos] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = cos(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval cos(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = cos(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval cos(stringField)', [
+ 'Argument of [cos] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval cos(numberField, extraArg)', [
+ 'Error: [cos] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = cos(*)', [
+ 'Using wildcards (*) in cos is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort cos(numberField)', []);
+ });
+
+ describe('cosh', () => {
+ testErrorsAndWarnings('row var = cosh(5)', []);
+ testErrorsAndWarnings('row cosh(5)', []);
+ testErrorsAndWarnings('row var = cosh(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = cosh("a")', [
+ 'Argument of [cosh] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where cosh(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where cosh(stringField) > 0', [
+ 'Argument of [cosh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = cosh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval cosh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = cosh(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval cosh(stringField)', [
+ 'Argument of [cosh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval cosh(numberField, extraArg)', [
+ 'Error: [cosh] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = cosh(*)', [
+ 'Using wildcards (*) in cosh is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort cosh(numberField)', []);
+ });
+
+ describe('date_extract', () => {
+ testErrorsAndWarnings('row var = date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", now())', []);
+ testErrorsAndWarnings('row date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", now())', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", dateField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", dateField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", to_datetime(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval date_extract(stringField, stringField)', [
+ 'Argument of [date_extract] must be [chrono_literal], found value [stringField] type [string]',
+ 'Argument of [date_extract] must be [date], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", dateField, extraArg)',
+ ['Error: [date_extract] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | sort date_extract("ALIGNED_DAY_OF_WEEK_IN_MONTH", dateField)',
+ []
+ );
+ });
+
+ describe('date_format', () => {
+ testErrorsAndWarnings('row var = date_format(now(), "a")', []);
+ testErrorsAndWarnings('row date_format(now(), "a")', []);
+ testErrorsAndWarnings('from a_index | eval var = date_format(dateField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval date_format(dateField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_format(to_datetime(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval date_format(stringField, numberField)', [
+ 'Argument of [date_format] must be [date], found value [stringField] type [string]',
+ 'Argument of [date_format] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval date_format(dateField, stringField, extraArg)', [
+ 'Error: [date_format] function expects no more than 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort date_format(dateField, stringField)', []);
+ });
+
+ describe('date_parse', () => {
+ testErrorsAndWarnings('row var = date_parse("a", "a")', []);
+ testErrorsAndWarnings('row date_parse("a", "a")', []);
+ testErrorsAndWarnings('row var = date_parse(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = date_parse(5, 5)', [
+ 'Argument of [date_parse] must be [string], found value [5] type [number]',
+ 'Argument of [date_parse] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = date_parse(stringField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval date_parse(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_parse(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval date_parse(numberField, numberField)', [
+ 'Argument of [date_parse] must be [string], found value [numberField] type [number]',
+ 'Argument of [date_parse] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval date_parse(stringField, stringField, extraArg)',
+ ['Error: [date_parse] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort date_parse(stringField, stringField)', []);
+ });
+
+ describe('date_trunc', () => {
+ testErrorsAndWarnings('row var = date_trunc(1 year, now())', []);
+ testErrorsAndWarnings('row date_trunc(1 year, now())', []);
+ testErrorsAndWarnings('from a_index | eval var = date_trunc(1 year, dateField)', []);
+ testErrorsAndWarnings('from a_index | eval date_trunc(1 year, dateField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = date_trunc(1 year, to_datetime(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval date_trunc(stringField, stringField)', [
+ 'Argument of [date_trunc] must be [time_literal], found value [stringField] type [string]',
+ 'Argument of [date_trunc] must be [date], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval date_trunc(1 year, dateField, extraArg)', [
+ 'Error: [date_trunc] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort date_trunc(1 year, dateField)', []);
+ });
+
+ describe('e', () => {
+ testErrorsAndWarnings('row var = e()', []);
+ testErrorsAndWarnings('row e()', []);
+ testErrorsAndWarnings('from a_index | where e() > 0', []);
+ testErrorsAndWarnings('from a_index | eval var = e()', []);
+ testErrorsAndWarnings('from a_index | eval e()', []);
+
+ testErrorsAndWarnings('from a_index | eval e(extraArg)', [
+ 'Error: [e] function expects exactly 0 arguments, got 1.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort e()', []);
+ });
+
+ describe('ends_with', () => {
+ testErrorsAndWarnings('row var = ends_with("a", "a")', []);
+ testErrorsAndWarnings('row ends_with("a", "a")', []);
+ testErrorsAndWarnings('row var = ends_with(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = ends_with(5, 5)', [
+ 'Argument of [ends_with] must be [string], found value [5] type [number]',
+ 'Argument of [ends_with] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = ends_with(stringField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval ends_with(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = ends_with(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval ends_with(numberField, numberField)', [
+ 'Argument of [ends_with] must be [string], found value [numberField] type [number]',
+ 'Argument of [ends_with] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval ends_with(stringField, stringField, extraArg)', [
+ 'Error: [ends_with] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort ends_with(stringField, stringField)', []);
+ });
+
+ describe('floor', () => {
+ testErrorsAndWarnings('row var = floor(5)', []);
+ testErrorsAndWarnings('row floor(5)', []);
+ testErrorsAndWarnings('row var = floor(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = floor("a")', [
+ 'Argument of [floor] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where floor(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where floor(stringField) > 0', [
+ 'Argument of [floor] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = floor(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval floor(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = floor(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval floor(stringField)', [
+ 'Argument of [floor] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval floor(numberField, extraArg)', [
+ 'Error: [floor] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = floor(*)', [
+ 'Using wildcards (*) in floor is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort floor(numberField)', []);
+ });
+
+ describe('greatest', () => {
+ testErrorsAndWarnings('row var = greatest("a")', []);
+ testErrorsAndWarnings('row greatest("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = greatest(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval greatest(stringField)', []);
+ testErrorsAndWarnings('from a_index | sort greatest(stringField)', []);
+ });
+
+ describe('least', () => {
+ testErrorsAndWarnings('row var = least("a")', []);
+ testErrorsAndWarnings('row least("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = least(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval least(stringField)', []);
+ testErrorsAndWarnings('from a_index | sort least(stringField)', []);
+ });
+
+ describe('left', () => {
+ testErrorsAndWarnings('row var = left("a", 5)', []);
+ testErrorsAndWarnings('row left("a", 5)', []);
+ testErrorsAndWarnings('row var = left(to_string("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = left(5, "a")', [
+ 'Argument of [left] must be [string], found value [5] type [number]',
+ 'Argument of [left] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(left(stringField, numberField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | where length(left(numberField, stringField)) > 0', [
+ 'Argument of [left] must be [string], found value [numberField] type [number]',
+ 'Argument of [left] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = left(stringField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval left(stringField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = left(to_string(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval left(numberField, stringField)', [
+ 'Argument of [left] must be [string], found value [numberField] type [number]',
+ 'Argument of [left] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval left(stringField, numberField, extraArg)', [
+ 'Error: [left] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort left(stringField, numberField)', []);
+ });
+
+ describe('length', () => {
+ testErrorsAndWarnings('row var = length("a")', []);
+ testErrorsAndWarnings('row length("a")', []);
+ testErrorsAndWarnings('row var = length(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = length(5)', [
+ 'Argument of [length] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(stringField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(numberField) > 0', [
+ 'Argument of [length] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = length(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval length(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = length(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval length(numberField)', [
+ 'Argument of [length] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval length(stringField, extraArg)', [
+ 'Error: [length] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = length(*)', [
+ 'Using wildcards (*) in length is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort length(stringField)', []);
+ });
+
+ describe('log', () => {
+ testErrorsAndWarnings('row var = log(5, 5)', []);
+ testErrorsAndWarnings('row log(5, 5)', []);
+ testErrorsAndWarnings('row var = log(to_integer("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = log("a", "a")', [
+ 'Argument of [log] must be [number], found value ["a"] type [string]',
+ 'Argument of [log] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where log(numberField, numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where log(stringField, stringField) > 0', [
+ 'Argument of [log] must be [number], found value [stringField] type [string]',
+ 'Argument of [log] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = log(numberField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval log(numberField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = log(to_integer(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval log(stringField, stringField)', [
+ 'Argument of [log] must be [number], found value [stringField] type [string]',
+ 'Argument of [log] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval log(numberField, numberField, extraArg)', [
+ 'Error: [log] function expects no more than 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort log(numberField, numberField)', []);
+ });
+
+ describe('log10', () => {
+ testErrorsAndWarnings('row var = log10(5)', []);
+ testErrorsAndWarnings('row log10(5)', []);
+ testErrorsAndWarnings('row var = log10(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = log10("a")', [
+ 'Argument of [log10] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where log10(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where log10(stringField) > 0', [
+ 'Argument of [log10] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = log10(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval log10(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = log10(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval log10(stringField)', [
+ 'Argument of [log10] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval log10(numberField, extraArg)', [
+ 'Error: [log10] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = log10(*)', [
+ 'Using wildcards (*) in log10 is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort log10(numberField)', []);
+ });
+
+ describe('ltrim', () => {
+ testErrorsAndWarnings('row var = ltrim("a")', []);
+ testErrorsAndWarnings('row ltrim("a")', []);
+ testErrorsAndWarnings('row var = ltrim(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = ltrim(5)', [
+ 'Argument of [ltrim] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(ltrim(stringField)) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(ltrim(numberField)) > 0', [
+ 'Argument of [ltrim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = ltrim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval ltrim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = ltrim(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval ltrim(numberField)', [
+ 'Argument of [ltrim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval ltrim(stringField, extraArg)', [
+ 'Error: [ltrim] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = ltrim(*)', [
+ 'Using wildcards (*) in ltrim is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort ltrim(stringField)', []);
+ });
+
+ describe('mv_avg', () => {
+ testErrorsAndWarnings('row var = mv_avg(5)', []);
+ testErrorsAndWarnings('row mv_avg(5)', []);
+ testErrorsAndWarnings('row var = mv_avg(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = mv_avg("a")', [
+ 'Argument of [mv_avg] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where mv_avg(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where mv_avg(stringField) > 0', [
+ 'Argument of [mv_avg] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_avg(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval mv_avg(stringField)', [
+ 'Argument of [mv_avg] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval mv_avg(numberField, extraArg)', [
+ 'Error: [mv_avg] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_avg(*)', [
+ 'Using wildcards (*) in mv_avg is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_avg(numberField)', []);
+ });
+
+ describe('mv_concat', () => {
+ testErrorsAndWarnings('row var = mv_concat("a", "a")', []);
+ testErrorsAndWarnings('row mv_concat("a", "a")', []);
+ testErrorsAndWarnings('row var = mv_concat(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = mv_concat(5, 5)', [
+ 'Argument of [mv_concat] must be [string], found value [5] type [number]',
+ 'Argument of [mv_concat] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(mv_concat(stringField, stringField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(mv_concat(numberField, numberField)) > 0',
+ [
+ 'Argument of [mv_concat] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_concat] must be [string], found value [numberField] type [number]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | eval var = mv_concat(stringField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_concat(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = mv_concat(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval mv_concat(numberField, numberField)', [
+ 'Argument of [mv_concat] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_concat] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval mv_concat(stringField, stringField, extraArg)', [
+ 'Error: [mv_concat] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_concat(stringField, stringField)', []);
+ });
+
+ describe('mv_count', () => {
+ testErrorsAndWarnings('row var = mv_count("a")', []);
+ testErrorsAndWarnings('row mv_count("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_count(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_count(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_count(*)', [
+ 'Using wildcards (*) in mv_count is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_count(stringField)', []);
+ });
+
+ describe('mv_dedupe', () => {
+ testErrorsAndWarnings('row var = mv_dedupe("a")', []);
+ testErrorsAndWarnings('row mv_dedupe("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_dedupe(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_dedupe(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_dedupe(*)', [
+ 'Using wildcards (*) in mv_dedupe is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_dedupe(stringField)', []);
+ });
+
+ describe('mv_first', () => {
+ testErrorsAndWarnings('row var = mv_first("a")', []);
+ testErrorsAndWarnings('row mv_first("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_first(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_first(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_first(*)', [
+ 'Using wildcards (*) in mv_first is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_first(stringField)', []);
+ });
+
+ describe('mv_last', () => {
+ testErrorsAndWarnings('row var = mv_last("a")', []);
+ testErrorsAndWarnings('row mv_last("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_last(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_last(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_last(*)', [
+ 'Using wildcards (*) in mv_last is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_last(stringField)', []);
+ });
+
+ describe('mv_max', () => {
+ testErrorsAndWarnings('row var = mv_max("a")', []);
+ testErrorsAndWarnings('row mv_max("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_max(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_max(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_max(*)', [
+ 'Using wildcards (*) in mv_max is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_max(stringField)', []);
+ });
+
+ describe('mv_median', () => {
+ testErrorsAndWarnings('row var = mv_median(5)', []);
+ testErrorsAndWarnings('row mv_median(5)', []);
+ testErrorsAndWarnings('row var = mv_median(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = mv_median("a")', [
+ 'Argument of [mv_median] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where mv_median(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where mv_median(stringField) > 0', [
+ 'Argument of [mv_median] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_median(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_median(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_median(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval mv_median(stringField)', [
+ 'Argument of [mv_median] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval mv_median(numberField, extraArg)', [
+ 'Error: [mv_median] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_median(*)', [
+ 'Using wildcards (*) in mv_median is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_median(numberField)', []);
+ });
+
+ describe('mv_min', () => {
+ testErrorsAndWarnings('row var = mv_min("a")', []);
+ testErrorsAndWarnings('row mv_min("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_min(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_min(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_min(*)', [
+ 'Using wildcards (*) in mv_min is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_min(stringField)', []);
+ });
+
+ describe('mv_slice', () => {
+ testErrorsAndWarnings('row var = mv_slice("a", 5, 5)', []);
+ testErrorsAndWarnings('row mv_slice("a", 5, 5)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = mv_slice(stringField, numberField, numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval mv_slice(stringField, numberField, numberField)',
+ []
+ );
+ testErrorsAndWarnings(
+ 'from a_index | sort mv_slice(stringField, numberField, numberField)',
+ []
+ );
+ });
+
+ describe('mv_sort', () => {
+ testErrorsAndWarnings('row var = mv_sort("a", "asc")', []);
+ testErrorsAndWarnings('row mv_sort("a", "asc")', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_sort(stringField, "asc")', []);
+ testErrorsAndWarnings('from a_index | eval mv_sort(stringField, "asc")', []);
+ testErrorsAndWarnings('from a_index | sort mv_sort(stringField, "asc")', []);
+ });
+
+ describe('mv_sum', () => {
+ testErrorsAndWarnings('row var = mv_sum(5)', []);
+ testErrorsAndWarnings('row mv_sum(5)', []);
+ testErrorsAndWarnings('row var = mv_sum(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = mv_sum("a")', [
+ 'Argument of [mv_sum] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where mv_sum(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where mv_sum(stringField) > 0', [
+ 'Argument of [mv_sum] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval mv_sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = mv_sum(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval mv_sum(stringField)', [
+ 'Argument of [mv_sum] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval mv_sum(numberField, extraArg)', [
+ 'Error: [mv_sum] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = mv_sum(*)', [
+ 'Using wildcards (*) in mv_sum is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort mv_sum(numberField)', []);
+ });
+
+ describe('mv_zip', () => {
+ testErrorsAndWarnings('row var = mv_zip("a", "a", "a")', []);
+ testErrorsAndWarnings('row mv_zip("a", "a", "a")', []);
+
+ testErrorsAndWarnings(
+ 'row var = mv_zip(to_string("a"), to_string("a"), to_string("a"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = mv_zip(5, 5, 5)', [
+ 'Argument of [mv_zip] must be [string], found value [5] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [5] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(mv_zip(stringField, stringField, stringField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(mv_zip(numberField, numberField, numberField)) > 0',
+ [
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = mv_zip(stringField, stringField, stringField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval mv_zip(stringField, stringField, stringField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = mv_zip(to_string(stringField), to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval mv_zip(numberField, numberField, numberField)', [
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ 'Argument of [mv_zip] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval mv_zip(stringField, stringField, stringField, extraArg)',
+ ['Error: [mv_zip] function expects exactly 3 arguments, got 4.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | sort mv_zip(stringField, stringField, stringField)',
+ []
+ );
+ });
+
+ describe('now', () => {
+ testErrorsAndWarnings('row var = now()', []);
+ testErrorsAndWarnings('row now()', []);
+ testErrorsAndWarnings('from a_index | eval var = now()', []);
+ testErrorsAndWarnings('from a_index | eval now()', []);
+
+ testErrorsAndWarnings('from a_index | eval now(extraArg)', [
+ 'Error: [now] function expects exactly 0 arguments, got 1.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort now()', []);
+ });
+
+ describe('pi', () => {
+ testErrorsAndWarnings('row var = pi()', []);
+ testErrorsAndWarnings('row pi()', []);
+ testErrorsAndWarnings('from a_index | where pi() > 0', []);
+ testErrorsAndWarnings('from a_index | eval var = pi()', []);
+ testErrorsAndWarnings('from a_index | eval pi()', []);
+
+ testErrorsAndWarnings('from a_index | eval pi(extraArg)', [
+ 'Error: [pi] function expects exactly 0 arguments, got 1.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort pi()', []);
+ });
+
+ describe('pow', () => {
+ testErrorsAndWarnings('row var = pow(5, 5)', []);
+ testErrorsAndWarnings('row pow(5, 5)', []);
+ testErrorsAndWarnings('row var = pow(to_integer("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = pow("a", "a")', [
+ 'Argument of [pow] must be [number], found value ["a"] type [string]',
+ 'Argument of [pow] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where pow(numberField, numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where pow(stringField, stringField) > 0', [
+ 'Argument of [pow] must be [number], found value [stringField] type [string]',
+ 'Argument of [pow] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = pow(numberField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval pow(numberField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = pow(to_integer(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval pow(stringField, stringField)', [
+ 'Argument of [pow] must be [number], found value [stringField] type [string]',
+ 'Argument of [pow] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval pow(numberField, numberField, extraArg)', [
+ 'Error: [pow] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort pow(numberField, numberField)', []);
+ });
+
+ describe('replace', () => {
+ testErrorsAndWarnings('row var = replace("a", "a", "a")', []);
+ testErrorsAndWarnings('row replace("a", "a", "a")', []);
+
+ testErrorsAndWarnings(
+ 'row var = replace(to_string("a"), to_string("a"), to_string("a"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = replace(5, 5, 5)', [
+ 'Argument of [replace] must be [string], found value [5] type [number]',
+ 'Argument of [replace] must be [string], found value [5] type [number]',
+ 'Argument of [replace] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(replace(stringField, stringField, stringField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(replace(numberField, numberField, numberField)) > 0',
+ [
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = replace(stringField, stringField, stringField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval replace(stringField, stringField, stringField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = replace(to_string(stringField), to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval replace(numberField, numberField, numberField)',
+ [
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ 'Argument of [replace] must be [string], found value [numberField] type [number]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval replace(stringField, stringField, stringField, extraArg)',
+ ['Error: [replace] function expects exactly 3 arguments, got 4.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | sort replace(stringField, stringField, stringField)',
+ []
+ );
+ });
+
+ describe('right', () => {
+ testErrorsAndWarnings('row var = right("a", 5)', []);
+ testErrorsAndWarnings('row right("a", 5)', []);
+ testErrorsAndWarnings('row var = right(to_string("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = right(5, "a")', [
+ 'Argument of [right] must be [string], found value [5] type [number]',
+ 'Argument of [right] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(right(stringField, numberField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | where length(right(numberField, stringField)) > 0', [
+ 'Argument of [right] must be [string], found value [numberField] type [number]',
+ 'Argument of [right] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = right(stringField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval right(stringField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = right(to_string(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval right(numberField, stringField)', [
+ 'Argument of [right] must be [string], found value [numberField] type [number]',
+ 'Argument of [right] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval right(stringField, numberField, extraArg)', [
+ 'Error: [right] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort right(stringField, numberField)', []);
+ });
+
+ describe('round', () => {
+ testErrorsAndWarnings('row var = round(5, 5)', []);
+ testErrorsAndWarnings('row round(5, 5)', []);
+ testErrorsAndWarnings('row var = round(to_integer("a"), to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = round("a", "a")', [
+ 'Argument of [round] must be [number], found value ["a"] type [string]',
+ 'Argument of [round] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where round(numberField, numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where round(stringField, stringField) > 0', [
+ 'Argument of [round] must be [number], found value [stringField] type [string]',
+ 'Argument of [round] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = round(numberField, numberField)', []);
+ testErrorsAndWarnings('from a_index | eval round(numberField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = round(to_integer(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval round(stringField, stringField)', [
+ 'Argument of [round] must be [number], found value [stringField] type [string]',
+ 'Argument of [round] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval round(numberField, numberField, extraArg)', [
+ 'Error: [round] function expects no more than 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort round(numberField, numberField)', []);
+ });
+
+ describe('rtrim', () => {
+ testErrorsAndWarnings('row var = rtrim("a")', []);
+ testErrorsAndWarnings('row rtrim("a")', []);
+ testErrorsAndWarnings('row var = rtrim(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = rtrim(5)', [
+ 'Argument of [rtrim] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(rtrim(stringField)) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(rtrim(numberField)) > 0', [
+ 'Argument of [rtrim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = rtrim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval rtrim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = rtrim(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval rtrim(numberField)', [
+ 'Argument of [rtrim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval rtrim(stringField, extraArg)', [
+ 'Error: [rtrim] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = rtrim(*)', [
+ 'Using wildcards (*) in rtrim is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort rtrim(stringField)', []);
+ });
+
+ describe('signum', () => {
+ testErrorsAndWarnings('row var = signum(5)', []);
+ testErrorsAndWarnings('row signum(5)', []);
+ testErrorsAndWarnings('row var = signum(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = signum("a")', [
+ 'Argument of [signum] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where signum(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where signum(stringField) > 0', [
+ 'Argument of [signum] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = signum(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval signum(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = signum(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval signum(stringField)', [
+ 'Argument of [signum] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval signum(numberField, extraArg)', [
+ 'Error: [signum] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = signum(*)', [
+ 'Using wildcards (*) in signum is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort signum(numberField)', []);
+ });
+
+ describe('sin', () => {
+ testErrorsAndWarnings('row var = sin(5)', []);
+ testErrorsAndWarnings('row sin(5)', []);
+ testErrorsAndWarnings('row var = sin(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = sin("a")', [
+ 'Argument of [sin] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where sin(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where sin(stringField) > 0', [
+ 'Argument of [sin] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sin(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval sin(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = sin(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval sin(stringField)', [
+ 'Argument of [sin] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval sin(numberField, extraArg)', [
+ 'Error: [sin] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sin(*)', [
+ 'Using wildcards (*) in sin is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort sin(numberField)', []);
+ });
+
+ describe('sinh', () => {
+ testErrorsAndWarnings('row var = sinh(5)', []);
+ testErrorsAndWarnings('row sinh(5)', []);
+ testErrorsAndWarnings('row var = sinh(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = sinh("a")', [
+ 'Argument of [sinh] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where sinh(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where sinh(stringField) > 0', [
+ 'Argument of [sinh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sinh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval sinh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = sinh(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval sinh(stringField)', [
+ 'Argument of [sinh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval sinh(numberField, extraArg)', [
+ 'Error: [sinh] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sinh(*)', [
+ 'Using wildcards (*) in sinh is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort sinh(numberField)', []);
+ });
+
+ describe('split', () => {
+ testErrorsAndWarnings('row var = split("a", "a")', []);
+ testErrorsAndWarnings('row split("a", "a")', []);
+ testErrorsAndWarnings('row var = split(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = split(5, 5)', [
+ 'Argument of [split] must be [string], found value [5] type [number]',
+ 'Argument of [split] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(split(stringField, stringField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | where length(split(numberField, numberField)) > 0', [
+ 'Argument of [split] must be [string], found value [numberField] type [number]',
+ 'Argument of [split] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = split(stringField, stringField)', []);
+ testErrorsAndWarnings('from a_index | eval split(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = split(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval split(numberField, numberField)', [
+ 'Argument of [split] must be [string], found value [numberField] type [number]',
+ 'Argument of [split] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval split(stringField, stringField, extraArg)', [
+ 'Error: [split] function expects exactly 2 arguments, got 3.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort split(stringField, stringField)', []);
+ });
+
+ describe('sqrt', () => {
+ testErrorsAndWarnings('row var = sqrt(5)', []);
+ testErrorsAndWarnings('row sqrt(5)', []);
+ testErrorsAndWarnings('row var = sqrt(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = sqrt("a")', [
+ 'Argument of [sqrt] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where sqrt(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where sqrt(stringField) > 0', [
+ 'Argument of [sqrt] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sqrt(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval sqrt(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = sqrt(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval sqrt(stringField)', [
+ 'Argument of [sqrt] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval sqrt(numberField, extraArg)', [
+ 'Error: [sqrt] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sqrt(*)', [
+ 'Using wildcards (*) in sqrt is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort sqrt(numberField)', []);
+ });
+
+ describe('st_contains', () => {
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = st_contains(to_geopoint("a"), to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_contains("a", "a")', [
+ 'Argument of [st_contains] must be [geo_point], found value ["a"] type [string]',
+ 'Argument of [st_contains] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geopoint("a"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geoshape("POINT (30 10)"), to_geopoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianpoint("a"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianpoint("a"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_contains(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_contains(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(geoPointField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_contains(geoPointField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(to_geopoint(stringField), to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval st_contains(stringField, stringField)', [
+ 'Argument of [st_contains] must be [geo_point], found value [stringField] type [string]',
+ 'Argument of [st_contains] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(geoPointField, geoPointField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(geoPointField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_contains(geoPointField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(to_geopoint(stringField), geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(geoPointField, geoShapeField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(geoShapeField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_contains(geoShapeField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(geoShapeField, to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(geoShapeField, geoPointField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(geoShapeField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_contains(geoShapeField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(geoShapeField, geoShapeField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(to_cartesianpoint(stringField), to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianPointField, cartesianPointField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(to_cartesianpoint(stringField), cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianPointField, cartesianShapeField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(cartesianShapeField, to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianShapeField, cartesianPointField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_contains(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_contains(cartesianShapeField, cartesianShapeField, extraArg)',
+ ['Error: [st_contains] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort st_contains(geoPointField, geoPointField)', []);
+ });
+
+ describe('st_disjoint', () => {
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = st_disjoint(to_geopoint("a"), to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_disjoint("a", "a")', [
+ 'Argument of [st_disjoint] must be [geo_point], found value ["a"] type [string]',
+ 'Argument of [st_disjoint] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geopoint("a"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geoshape("POINT (30 10)"), to_geopoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianpoint("a"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianpoint("a"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_disjoint(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_disjoint(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(geoPointField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_disjoint(geoPointField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(to_geopoint(stringField), to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval st_disjoint(stringField, stringField)', [
+ 'Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]',
+ 'Argument of [st_disjoint] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(geoPointField, geoPointField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(geoPointField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_disjoint(geoPointField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(to_geopoint(stringField), geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(geoPointField, geoShapeField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(geoShapeField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_disjoint(geoShapeField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(geoShapeField, to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(geoShapeField, geoPointField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(geoShapeField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_disjoint(geoShapeField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(geoShapeField, geoShapeField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianPointField, cartesianPointField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(to_cartesianpoint(stringField), cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(cartesianShapeField, to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_disjoint(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField, extraArg)',
+ ['Error: [st_disjoint] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort st_disjoint(geoPointField, geoPointField)', []);
+ });
+
+ describe('st_intersects', () => {
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = st_intersects(to_geopoint("a"), to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_intersects("a", "a")', [
+ 'Argument of [st_intersects] must be [geo_point], found value ["a"] type [string]',
+ 'Argument of [st_intersects] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geopoint("a"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geoshape("POINT (30 10)"), to_geopoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianpoint("a"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianpoint("a"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_intersects(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_intersects(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(geoPointField, geoPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoPointField, geoPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(to_geopoint(stringField), to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval st_intersects(stringField, stringField)', [
+ 'Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]',
+ 'Argument of [st_intersects] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoPointField, geoPointField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(geoPointField, geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoPointField, geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(to_geopoint(stringField), geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoPointField, geoShapeField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(geoShapeField, geoPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoShapeField, geoPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(geoShapeField, to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoShapeField, geoPointField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(geoShapeField, geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoShapeField, geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(geoShapeField, geoShapeField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(to_cartesianpoint(stringField), to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianPointField, cartesianPointField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(to_cartesianpoint(stringField), cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianPointField, cartesianShapeField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(cartesianShapeField, to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianShapeField, cartesianPointField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_intersects(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField, extraArg)',
+ ['Error: [st_intersects] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | sort st_intersects(geoPointField, geoPointField)',
+ []
+ );
+ });
+
+ describe('st_within', () => {
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_geopoint("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = st_within(to_geopoint("a"), to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_within("a", "a")', [
+ 'Argument of [st_within] must be [geo_point], found value ["a"] type [string]',
+ 'Argument of [st_within] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_geopoint("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geopoint("a"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_geoshape("POINT (30 10)"), to_geopoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geoshape("POINT (30 10)"), to_geopoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_geoshape("POINT (30 10)"), to_geoshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_cartesianpoint("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianpoint("a"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_cartesianpoint("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianpoint("a"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianshape("POINT (30 10)"), to_cartesianpoint("a"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row var = st_within(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'row st_within(to_cartesianshape("POINT (30 10)"), to_cartesianshape("POINT (30 10)"))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(geoPointField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_within(geoPointField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(to_geopoint(stringField), to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval st_within(stringField, stringField)', [
+ 'Argument of [st_within] must be [geo_point], found value [stringField] type [string]',
+ 'Argument of [st_within] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(geoPointField, geoPointField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(geoPointField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_within(geoPointField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(to_geopoint(stringField), geoShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(geoPointField, geoShapeField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(geoShapeField, geoPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_within(geoShapeField, geoPointField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(geoShapeField, to_geopoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(geoShapeField, geoPointField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(geoShapeField, geoShapeField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval st_within(geoShapeField, geoShapeField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(geoShapeField, geoShapeField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianPointField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(to_cartesianpoint(stringField), to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianPointField, cartesianPointField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianPointField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(to_cartesianpoint(stringField), cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianPointField, cartesianShapeField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianShapeField, cartesianPointField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(cartesianShapeField, to_cartesianpoint(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianShapeField, cartesianPointField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_within(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianShapeField, cartesianShapeField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval st_within(cartesianShapeField, cartesianShapeField, extraArg)',
+ ['Error: [st_within] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort st_within(geoPointField, geoPointField)', []);
+ });
+
+ describe('st_x', () => {
+ testErrorsAndWarnings('row var = st_x(to_geopoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row st_x(to_geopoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row var = st_x(to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_x("a")', [
+ 'Argument of [st_x] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('row var = st_x(to_cartesianpoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row st_x(to_cartesianpoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row var = st_x(to_cartesianpoint("a"))', []);
+ testErrorsAndWarnings('from a_index | eval var = st_x(geoPointField)', []);
+ testErrorsAndWarnings('from a_index | eval st_x(geoPointField)', []);
+ testErrorsAndWarnings('from a_index | eval var = st_x(to_geopoint(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval st_x(stringField)', [
+ 'Argument of [st_x] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval st_x(geoPointField, extraArg)', [
+ 'Error: [st_x] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_x(*)', [
+ 'Using wildcards (*) in st_x is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_x(cartesianPointField)', []);
+ testErrorsAndWarnings('from a_index | eval st_x(cartesianPointField)', []);
+ testErrorsAndWarnings('from a_index | eval var = st_x(to_cartesianpoint(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval st_x(cartesianPointField, extraArg)', [
+ 'Error: [st_x] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort st_x(geoPointField)', []);
+ });
+
+ describe('st_y', () => {
+ testErrorsAndWarnings('row var = st_y(to_geopoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row st_y(to_geopoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row var = st_y(to_geopoint("a"))', []);
+
+ testErrorsAndWarnings('row var = st_y("a")', [
+ 'Argument of [st_y] must be [geo_point], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('row var = st_y(to_cartesianpoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row st_y(to_cartesianpoint("POINT (30 10)"))', []);
+ testErrorsAndWarnings('row var = st_y(to_cartesianpoint("a"))', []);
+ testErrorsAndWarnings('from a_index | eval var = st_y(geoPointField)', []);
+ testErrorsAndWarnings('from a_index | eval st_y(geoPointField)', []);
+ testErrorsAndWarnings('from a_index | eval var = st_y(to_geopoint(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval st_y(stringField)', [
+ 'Argument of [st_y] must be [geo_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval st_y(geoPointField, extraArg)', [
+ 'Error: [st_y] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_y(*)', [
+ 'Using wildcards (*) in st_y is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_y(cartesianPointField)', []);
+ testErrorsAndWarnings('from a_index | eval st_y(cartesianPointField)', []);
+ testErrorsAndWarnings('from a_index | eval var = st_y(to_cartesianpoint(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval st_y(cartesianPointField, extraArg)', [
+ 'Error: [st_y] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort st_y(geoPointField)', []);
+ });
+
+ describe('starts_with', () => {
+ testErrorsAndWarnings('row var = starts_with("a", "a")', []);
+ testErrorsAndWarnings('row starts_with("a", "a")', []);
+ testErrorsAndWarnings('row var = starts_with(to_string("a"), to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = starts_with(5, 5)', [
+ 'Argument of [starts_with] must be [string], found value [5] type [number]',
+ 'Argument of [starts_with] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = starts_with(stringField, stringField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | eval starts_with(stringField, stringField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = starts_with(to_string(stringField), to_string(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | eval starts_with(numberField, numberField)', [
+ 'Argument of [starts_with] must be [string], found value [numberField] type [number]',
+ 'Argument of [starts_with] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval starts_with(stringField, stringField, extraArg)',
+ ['Error: [starts_with] function expects exactly 2 arguments, got 3.']
+ );
+
+ testErrorsAndWarnings('from a_index | sort starts_with(stringField, stringField)', []);
+ });
+
+ describe('substring', () => {
+ testErrorsAndWarnings('row var = substring("a", 5, 5)', []);
+ testErrorsAndWarnings('row substring("a", 5, 5)', []);
+
+ testErrorsAndWarnings(
+ 'row var = substring(to_string("a"), to_integer("a"), to_integer("a"))',
+ []
+ );
+
+ testErrorsAndWarnings('row var = substring(5, "a", "a")', [
+ 'Argument of [substring] must be [string], found value [5] type [number]',
+ 'Argument of [substring] must be [number], found value ["a"] type [string]',
+ 'Argument of [substring] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(substring(stringField, numberField, numberField)) > 0',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | where length(substring(numberField, stringField, stringField)) > 0',
+ [
+ 'Argument of [substring] must be [string], found value [numberField] type [number]',
+ 'Argument of [substring] must be [number], found value [stringField] type [string]',
+ 'Argument of [substring] must be [number], found value [stringField] type [string]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = substring(stringField, numberField, numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval substring(stringField, numberField, numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = substring(to_string(stringField), to_integer(stringField), to_integer(stringField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval substring(numberField, stringField, stringField)',
+ [
+ 'Argument of [substring] must be [string], found value [numberField] type [number]',
+ 'Argument of [substring] must be [number], found value [stringField] type [string]',
+ 'Argument of [substring] must be [number], found value [stringField] type [string]',
+ ]
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval substring(stringField, numberField, numberField, extraArg)',
+ ['Error: [substring] function expects exactly 3 arguments, got 4.']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | sort substring(stringField, numberField, numberField)',
+ []
+ );
+ });
+
+ describe('tan', () => {
+ testErrorsAndWarnings('row var = tan(5)', []);
+ testErrorsAndWarnings('row tan(5)', []);
+ testErrorsAndWarnings('row var = tan(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = tan("a")', [
+ 'Argument of [tan] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where tan(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where tan(stringField) > 0', [
+ 'Argument of [tan] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = tan(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval tan(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = tan(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval tan(stringField)', [
+ 'Argument of [tan] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval tan(numberField, extraArg)', [
+ 'Error: [tan] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = tan(*)', [
+ 'Using wildcards (*) in tan is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort tan(numberField)', []);
+ });
+
+ describe('tanh', () => {
+ testErrorsAndWarnings('row var = tanh(5)', []);
+ testErrorsAndWarnings('row tanh(5)', []);
+ testErrorsAndWarnings('row var = tanh(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = tanh("a")', [
+ 'Argument of [tanh] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where tanh(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where tanh(stringField) > 0', [
+ 'Argument of [tanh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = tanh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval tanh(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = tanh(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval tanh(stringField)', [
+ 'Argument of [tanh] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval tanh(numberField, extraArg)', [
+ 'Error: [tanh] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = tanh(*)', [
+ 'Using wildcards (*) in tanh is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort tanh(numberField)', []);
+ });
+
+ describe('tau', () => {
+ testErrorsAndWarnings('row var = tau()', []);
+ testErrorsAndWarnings('row tau()', []);
+ testErrorsAndWarnings('from a_index | where tau() > 0', []);
+ testErrorsAndWarnings('from a_index | eval var = tau()', []);
+ testErrorsAndWarnings('from a_index | eval tau()', []);
+
+ testErrorsAndWarnings('from a_index | eval tau(extraArg)', [
+ 'Error: [tau] function expects exactly 0 arguments, got 1.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort tau()', []);
+ });
+
+ describe('to_boolean', () => {
+ testErrorsAndWarnings('row var = to_boolean("a")', []);
+ testErrorsAndWarnings('row to_boolean("a")', []);
+ testErrorsAndWarnings('row var = to_bool("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_boolean(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_boolean(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_bool(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_boolean(*)', [
+ 'Using wildcards (*) in to_boolean is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_boolean(stringField)', []);
+ });
+
+ describe('to_cartesianpoint', () => {
+ testErrorsAndWarnings('row var = to_cartesianpoint("a")', []);
+ testErrorsAndWarnings('row to_cartesianpoint("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_cartesianpoint(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_cartesianpoint(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_cartesianpoint(*)', [
+ 'Using wildcards (*) in to_cartesianpoint is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_cartesianpoint(stringField)', []);
+ });
+
+ describe('to_cartesianshape', () => {
+ testErrorsAndWarnings('row var = to_cartesianshape("a")', []);
+ testErrorsAndWarnings('row to_cartesianshape("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_cartesianshape(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_cartesianshape(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_cartesianshape(*)', [
+ 'Using wildcards (*) in to_cartesianshape is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_cartesianshape(stringField)', []);
+ });
+
+ describe('to_datetime', () => {
+ testErrorsAndWarnings('row var = to_datetime("a")', []);
+ testErrorsAndWarnings('row to_datetime("a")', []);
+ testErrorsAndWarnings('row var = to_dt("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_datetime(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_datetime(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_dt(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_datetime(*)', [
+ 'Using wildcards (*) in to_datetime is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_datetime(stringField)', []);
+ });
+
+ describe('to_degrees', () => {
+ testErrorsAndWarnings('row var = to_degrees(5)', []);
+ testErrorsAndWarnings('row to_degrees(5)', []);
+ testErrorsAndWarnings('row var = to_degrees(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = to_degrees("a")', [
+ 'Argument of [to_degrees] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where to_degrees(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where to_degrees(stringField) > 0', [
+ 'Argument of [to_degrees] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_degrees(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval to_degrees(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_degrees(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval to_degrees(stringField)', [
+ 'Argument of [to_degrees] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval to_degrees(numberField, extraArg)', [
+ 'Error: [to_degrees] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_degrees(*)', [
+ 'Using wildcards (*) in to_degrees is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_degrees(numberField)', []);
+ });
+
+ describe('to_double', () => {
+ testErrorsAndWarnings('row var = to_double("a")', []);
+ testErrorsAndWarnings('row to_double("a")', []);
+ testErrorsAndWarnings('row var = to_dbl("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_double(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_double(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_dbl(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_double(*)', [
+ 'Using wildcards (*) in to_double is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_double(stringField)', []);
+ });
+
+ describe('to_geopoint', () => {
+ testErrorsAndWarnings('row var = to_geopoint("a")', []);
+ testErrorsAndWarnings('row to_geopoint("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_geopoint(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_geopoint(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_geopoint(*)', [
+ 'Using wildcards (*) in to_geopoint is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_geopoint(stringField)', []);
+ });
+
+ describe('to_geoshape', () => {
+ testErrorsAndWarnings('row var = to_geoshape("a")', []);
+ testErrorsAndWarnings('row to_geoshape("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_geoshape(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_geoshape(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_geoshape(*)', [
+ 'Using wildcards (*) in to_geoshape is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_geoshape(stringField)', []);
+ });
+
+ describe('to_integer', () => {
+ testErrorsAndWarnings('row var = to_integer("a")', []);
+ testErrorsAndWarnings('row to_integer("a")', []);
+ testErrorsAndWarnings('row var = to_int("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_integer(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_integer(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_int(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_integer(*)', [
+ 'Using wildcards (*) in to_integer is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_integer(stringField)', []);
+ });
+
+ describe('to_ip', () => {
+ testErrorsAndWarnings('row var = to_ip("a")', []);
+ testErrorsAndWarnings('row to_ip("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_ip(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_ip(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_ip(*)', [
+ 'Using wildcards (*) in to_ip is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_ip(stringField)', []);
+ });
+
+ describe('to_long', () => {
+ testErrorsAndWarnings('row var = to_long("a")', []);
+ testErrorsAndWarnings('row to_long("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_long(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_long(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_long(*)', [
+ 'Using wildcards (*) in to_long is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_long(stringField)', []);
+ });
+
+ describe('to_lower', () => {
+ testErrorsAndWarnings('row var = to_lower("a")', []);
+ testErrorsAndWarnings('row to_lower("a")', []);
+ testErrorsAndWarnings('row var = to_lower(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = to_lower(5)', [
+ 'Argument of [to_lower] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(to_lower(stringField)) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(to_lower(numberField)) > 0', [
+ 'Argument of [to_lower] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_lower(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_lower(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_lower(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval to_lower(numberField)', [
+ 'Argument of [to_lower] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval to_lower(stringField, extraArg)', [
+ 'Error: [to_lower] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_lower(*)', [
+ 'Using wildcards (*) in to_lower is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_lower(stringField)', []);
+ });
+
+ describe('to_radians', () => {
+ testErrorsAndWarnings('row var = to_radians(5)', []);
+ testErrorsAndWarnings('row to_radians(5)', []);
+ testErrorsAndWarnings('row var = to_radians(to_integer("a"))', []);
+
+ testErrorsAndWarnings('row var = to_radians("a")', [
+ 'Argument of [to_radians] must be [number], found value ["a"] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where to_radians(numberField) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where to_radians(stringField) > 0', [
+ 'Argument of [to_radians] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_radians(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval to_radians(numberField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_radians(to_integer(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval to_radians(stringField)', [
+ 'Argument of [to_radians] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval to_radians(numberField, extraArg)', [
+ 'Error: [to_radians] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_radians(*)', [
+ 'Using wildcards (*) in to_radians is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_radians(numberField)', []);
+ });
+
+ describe('to_string', () => {
+ testErrorsAndWarnings('row var = to_string("a")', []);
+ testErrorsAndWarnings('row to_string("a")', []);
+ testErrorsAndWarnings('row var = to_str("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_string(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_string(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_str(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_string(*)', [
+ 'Using wildcards (*) in to_string is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_string(stringField)', []);
+ });
+
+ describe('to_unsigned_long', () => {
+ testErrorsAndWarnings('row var = to_unsigned_long("a")', []);
+ testErrorsAndWarnings('row to_unsigned_long("a")', []);
+ testErrorsAndWarnings('row var = to_ul("a")', []);
+ testErrorsAndWarnings('row var = to_ulong("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_unsigned_long(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_unsigned_long(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_ul(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_ulong(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_unsigned_long(*)', [
+ 'Using wildcards (*) in to_unsigned_long is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_unsigned_long(stringField)', []);
+ });
+
+ describe('to_upper', () => {
+ testErrorsAndWarnings('row var = to_upper("a")', []);
+ testErrorsAndWarnings('row to_upper("a")', []);
+ testErrorsAndWarnings('row var = to_upper(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = to_upper(5)', [
+ 'Argument of [to_upper] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(to_upper(stringField)) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(to_upper(numberField)) > 0', [
+ 'Argument of [to_upper] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_upper(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_upper(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_upper(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval to_upper(numberField)', [
+ 'Argument of [to_upper] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval to_upper(stringField, extraArg)', [
+ 'Error: [to_upper] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = to_upper(*)', [
+ 'Using wildcards (*) in to_upper is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_upper(stringField)', []);
+ });
+
+ describe('to_version', () => {
+ testErrorsAndWarnings('row var = to_version("a")', []);
+ testErrorsAndWarnings('row to_version("a")', []);
+ testErrorsAndWarnings('row var = to_ver("a")', []);
+ testErrorsAndWarnings('from a_index | eval var = to_version(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval to_version(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = to_ver(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | eval var = to_version(*)', [
+ 'Using wildcards (*) in to_version is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort to_version(stringField)', []);
+ });
+
+ describe('trim', () => {
+ testErrorsAndWarnings('row var = trim("a")', []);
+ testErrorsAndWarnings('row trim("a")', []);
+ testErrorsAndWarnings('row var = trim(to_string("a"))', []);
+
+ testErrorsAndWarnings('row var = trim(5)', [
+ 'Argument of [trim] must be [string], found value [5] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where length(trim(stringField)) > 0', []);
+
+ testErrorsAndWarnings('from a_index | where length(trim(numberField)) > 0', [
+ 'Argument of [trim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = trim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval trim(stringField)', []);
+ testErrorsAndWarnings('from a_index | eval var = trim(to_string(stringField))', []);
+
+ testErrorsAndWarnings('from a_index | eval trim(numberField)', [
+ 'Argument of [trim] must be [string], found value [numberField] type [number]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval trim(stringField, extraArg)', [
+ 'Error: [trim] function expects exactly one argument, got 2.',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = trim(*)', [
+ 'Using wildcards (*) in trim is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort trim(stringField)', []);
+ });
+
+ describe('avg', () => {
+ testErrorsAndWarnings('from a_index | stats var = avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(avg(numberField))', []);
+ testErrorsAndWarnings('from a_index | stats round(avg(numberField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(avg(numberField)) + avg(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(avg(numberField)) + avg(numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats avg(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = avg(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), avg(numberField / 2)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = avg(numberField / 2)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats var0 = avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), avg(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), var0 = avg(numberField)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = avg(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), avg(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = avg(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = avg(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats avg(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats avg(stringField)', [
+ 'Argument of [avg] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = avg(*)', [
+ 'Using wildcards (*) in avg is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort avg(numberField)', [
+ 'SORT does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where avg(numberField)', [
+ 'WHERE does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where avg(numberField) > 0', [
+ 'WHERE does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = avg(numberField)', [
+ 'EVAL does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = avg(numberField) > 0', [
+ 'EVAL does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval avg(numberField)', [
+ 'EVAL does not support function avg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval avg(numberField) > 0', [
+ 'EVAL does not support function avg',
+ ]);
+ });
+
+ describe('sum', () => {
+ testErrorsAndWarnings('from a_index | stats var = sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(sum(numberField))', []);
+ testErrorsAndWarnings('from a_index | stats round(sum(numberField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(sum(numberField)) + sum(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(sum(numberField)) + sum(numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats sum(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = sum(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), sum(numberField / 2)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = sum(numberField / 2)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats var0 = sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), sum(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), var0 = sum(numberField)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats sum(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = sum(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), sum(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = sum(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = sum(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats sum(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats sum(stringField)', [
+ 'Argument of [sum] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = sum(*)', [
+ 'Using wildcards (*) in sum is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort sum(numberField)', [
+ 'SORT does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where sum(numberField)', [
+ 'WHERE does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where sum(numberField) > 0', [
+ 'WHERE does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sum(numberField)', [
+ 'EVAL does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = sum(numberField) > 0', [
+ 'EVAL does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval sum(numberField)', [
+ 'EVAL does not support function sum',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval sum(numberField) > 0', [
+ 'EVAL does not support function sum',
+ ]);
+ });
+
+ describe('median', () => {
+ testErrorsAndWarnings('from a_index | stats var = median(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats median(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(median(numberField))', []);
+ testErrorsAndWarnings('from a_index | stats round(median(numberField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(median(numberField)) + median(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(median(numberField)) + median(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats median(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = median(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), median(numberField / 2)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var0 = median(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), median(numberField)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median(numberField)',
+ []
+ );
+ testErrorsAndWarnings(
+ 'from a_index | stats median(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = median(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = median(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats median(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats median(stringField)', [
+ 'Argument of [median] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = median(*)', [
+ 'Using wildcards (*) in median is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort median(numberField)', [
+ 'SORT does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where median(numberField)', [
+ 'WHERE does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where median(numberField) > 0', [
+ 'WHERE does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = median(numberField)', [
+ 'EVAL does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = median(numberField) > 0', [
+ 'EVAL does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval median(numberField)', [
+ 'EVAL does not support function median',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval median(numberField) > 0', [
+ 'EVAL does not support function median',
+ ]);
+ });
+
+ describe('median_absolute_deviation', () => {
+ testErrorsAndWarnings(
+ 'from a_index | stats var = median_absolute_deviation(numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats median_absolute_deviation(numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(median_absolute_deviation(numberField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(median_absolute_deviation(numberField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(median_absolute_deviation(numberField)) + median_absolute_deviation(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats median_absolute_deviation(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = median_absolute_deviation(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median_absolute_deviation(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = median_absolute_deviation(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median_absolute_deviation(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats median_absolute_deviation(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), median_absolute_deviation(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = median_absolute_deviation(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = median_absolute_deviation(avg(numberField))',
+ [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats median_absolute_deviation(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats median_absolute_deviation(stringField)', [
+ 'Argument of [median_absolute_deviation] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = median_absolute_deviation(*)', [
+ 'Using wildcards (*) in median_absolute_deviation is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort median_absolute_deviation(numberField)', [
+ 'SORT does not support function median_absolute_deviation',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where median_absolute_deviation(numberField)', [
+ 'WHERE does not support function median_absolute_deviation',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where median_absolute_deviation(numberField) > 0', [
+ 'WHERE does not support function median_absolute_deviation',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = median_absolute_deviation(numberField)', [
+ 'EVAL does not support function median_absolute_deviation',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = median_absolute_deviation(numberField) > 0',
+ ['EVAL does not support function median_absolute_deviation']
+ );
+
+ testErrorsAndWarnings('from a_index | eval median_absolute_deviation(numberField)', [
+ 'EVAL does not support function median_absolute_deviation',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval median_absolute_deviation(numberField) > 0', [
+ 'EVAL does not support function median_absolute_deviation',
+ ]);
+ });
+
+ describe('percentile', () => {
+ testErrorsAndWarnings('from a_index | stats var = percentile(numberField, 5)', []);
+ testErrorsAndWarnings('from a_index | stats percentile(numberField, 5)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(percentile(numberField, 5))', []);
+ testErrorsAndWarnings('from a_index | stats round(percentile(numberField, 5))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(percentile(numberField, 5)) + percentile(numberField, 5)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(percentile(numberField, 5)) + percentile(numberField, 5)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats percentile(numberField, numberField)', [
+ 'Argument of [percentile] must be a constant, received [numberField]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats percentile(numberField / 2, 5)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = percentile(numberField / 2, 5)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), percentile(numberField / 2, 5)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = percentile(numberField / 2, 5)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var0 = percentile(numberField, 5)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), percentile(numberField, 5)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = percentile(numberField, 5)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats percentile(numberField, 5) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = percentile(numberField, 5) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), percentile(numberField, 5) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = percentile(numberField, 5) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = percentile(avg(numberField), 5)', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats percentile(avg(numberField), 5)', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats percentile(stringField, 5)', [
+ 'Argument of [percentile] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | sort percentile(numberField, 5)', [
+ 'SORT does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where percentile(numberField, 5)', [
+ 'WHERE does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where percentile(numberField, 5) > 0', [
+ 'WHERE does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = percentile(numberField, 5)', [
+ 'EVAL does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = percentile(numberField, 5) > 0', [
+ 'EVAL does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval percentile(numberField, 5)', [
+ 'EVAL does not support function percentile',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval percentile(numberField, 5) > 0', [
+ 'EVAL does not support function percentile',
+ ]);
+ });
+
+ describe('max', () => {
+ testErrorsAndWarnings('from a_index | stats var = max(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats max(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(max(numberField))', []);
+ testErrorsAndWarnings('from a_index | stats round(max(numberField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(max(numberField)) + max(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(max(numberField)) + max(numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats max(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = max(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), max(numberField / 2)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = max(numberField / 2)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats var0 = max(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), max(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), var0 = max(numberField)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats max(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = max(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), max(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = max(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = max(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats max(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats max(stringField)', [
+ 'Argument of [max] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = max(*)', [
+ 'Using wildcards (*) in max is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = max(dateField)', []);
+ testErrorsAndWarnings('from a_index | stats max(dateField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(max(dateField))', []);
+ testErrorsAndWarnings('from a_index | stats round(max(dateField))', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(max(dateField)) + max(dateField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats round(max(dateField)) + max(dateField)', []);
+
+ testErrorsAndWarnings('from a_index | sort max(numberField)', [
+ 'SORT does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where max(numberField)', [
+ 'WHERE does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where max(numberField) > 0', [
+ 'WHERE does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where max(dateField)', [
+ 'WHERE does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where max(dateField) > 0', [
+ 'WHERE does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = max(numberField)', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = max(numberField) > 0', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval max(numberField)', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval max(numberField) > 0', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = max(dateField)', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = max(dateField) > 0', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval max(dateField)', [
+ 'EVAL does not support function max',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval max(dateField) > 0', [
+ 'EVAL does not support function max',
+ ]);
+ });
+
+ describe('min', () => {
+ testErrorsAndWarnings('from a_index | stats var = min(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats min(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(min(numberField))', []);
+ testErrorsAndWarnings('from a_index | stats round(min(numberField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(min(numberField)) + min(numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(min(numberField)) + min(numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats min(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats var0 = min(numberField / 2)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), min(numberField / 2)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = min(numberField / 2)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats var0 = min(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), min(numberField)', []);
+ testErrorsAndWarnings('from a_index | stats avg(numberField), var0 = min(numberField)', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats min(numberField) by round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var0 = min(numberField) by var1 = round(numberField / 2)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), ipField',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), min(numberField) by round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats avg(numberField), var0 = min(numberField) by var1 = round(numberField / 2), numberField / 2',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | stats var = min(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats min(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats min(stringField)', [
+ 'Argument of [min] must be [number], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = min(*)', [
+ 'Using wildcards (*) in min is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = min(dateField)', []);
+ testErrorsAndWarnings('from a_index | stats min(dateField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(min(dateField))', []);
+ testErrorsAndWarnings('from a_index | stats round(min(dateField))', []);
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(min(dateField)) + min(dateField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats round(min(dateField)) + min(dateField)', []);
+
+ testErrorsAndWarnings('from a_index | sort min(numberField)', [
+ 'SORT does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where min(numberField)', [
+ 'WHERE does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where min(numberField) > 0', [
+ 'WHERE does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where min(dateField)', [
+ 'WHERE does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where min(dateField) > 0', [
+ 'WHERE does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = min(numberField)', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = min(numberField) > 0', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval min(numberField)', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval min(numberField) > 0', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = min(dateField)', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = min(dateField) > 0', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval min(dateField)', [
+ 'EVAL does not support function min',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval min(dateField) > 0', [
+ 'EVAL does not support function min',
+ ]);
+ });
+
+ describe('count', () => {
+ testErrorsAndWarnings('from a_index | stats var = count(stringField)', []);
+ testErrorsAndWarnings('from a_index | stats count(stringField)', []);
+ testErrorsAndWarnings('from a_index | stats var = round(count(stringField))', []);
+ testErrorsAndWarnings('from a_index | stats round(count(stringField))', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(count(stringField)) + count(stringField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(count(stringField)) + count(stringField)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | sort count(stringField)', [
+ 'SORT does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where count(stringField)', [
+ 'WHERE does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where count(stringField) > 0', [
+ 'WHERE does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = count(stringField)', [
+ 'EVAL does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = count(stringField) > 0', [
+ 'EVAL does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval count(stringField)', [
+ 'EVAL does not support function count',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval count(stringField) > 0', [
+ 'EVAL does not support function count',
+ ]);
+ });
+
+ describe('count_distinct', () => {
+ testErrorsAndWarnings(
+ 'from a_index | stats var = count_distinct(stringField, numberField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats count_distinct(stringField, numberField)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(count_distinct(stringField, numberField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(count_distinct(stringField, numberField))',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats var = round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)',
+ []
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | stats round(count_distinct(stringField, numberField)) + count_distinct(stringField, numberField)',
+ []
+ );
+
+ testErrorsAndWarnings('from a_index | sort count_distinct(stringField, numberField)', [
+ 'SORT does not support function count_distinct',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where count_distinct(stringField, numberField)', [
+ 'WHERE does not support function count_distinct',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where count_distinct(stringField, numberField) > 0', [
+ 'WHERE does not support function count_distinct',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = count_distinct(stringField, numberField)',
+ ['EVAL does not support function count_distinct']
+ );
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = count_distinct(stringField, numberField) > 0',
+ ['EVAL does not support function count_distinct']
+ );
+
+ testErrorsAndWarnings('from a_index | eval count_distinct(stringField, numberField)', [
+ 'EVAL does not support function count_distinct',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval count_distinct(stringField, numberField) > 0', [
+ 'EVAL does not support function count_distinct',
+ ]);
+ });
+
+ describe('st_centroid_agg', () => {
+ testErrorsAndWarnings(
+ 'from a_index | stats var = st_centroid_agg(cartesianPointField)',
+ []
+ );
+ testErrorsAndWarnings('from a_index | stats st_centroid_agg(cartesianPointField)', []);
+
+ testErrorsAndWarnings('from a_index | stats var = st_centroid_agg(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats st_centroid_agg(avg(numberField))', [
+ "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(numberField)] of type [number]",
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats st_centroid_agg(stringField)', [
+ 'Argument of [st_centroid_agg] must be [cartesian_point], found value [stringField] type [string]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = st_centroid_agg(*)', [
+ 'Using wildcards (*) in st_centroid_agg is not allowed',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats var = st_centroid_agg(geoPointField)', []);
+ testErrorsAndWarnings('from a_index | stats st_centroid_agg(geoPointField)', []);
+
+ testErrorsAndWarnings('from a_index | sort st_centroid_agg(cartesianPointField)', [
+ 'SORT does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where st_centroid_agg(cartesianPointField)', [
+ 'WHERE does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where st_centroid_agg(cartesianPointField) > 0', [
+ 'WHERE does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where st_centroid_agg(geoPointField)', [
+ 'WHERE does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where st_centroid_agg(geoPointField) > 0', [
+ 'WHERE does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_centroid_agg(cartesianPointField)', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings(
+ 'from a_index | eval var = st_centroid_agg(cartesianPointField) > 0',
+ ['EVAL does not support function st_centroid_agg']
+ );
+
+ testErrorsAndWarnings('from a_index | eval st_centroid_agg(cartesianPointField)', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval st_centroid_agg(cartesianPointField) > 0', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_centroid_agg(geoPointField)', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = st_centroid_agg(geoPointField) > 0', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval st_centroid_agg(geoPointField)', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval st_centroid_agg(geoPointField) > 0', [
+ 'EVAL does not support function st_centroid_agg',
+ ]);
+ });
+
+ describe('values', () => {
+ testErrorsAndWarnings('from a_index | stats var = values(stringField)', []);
+ testErrorsAndWarnings('from a_index | stats values(stringField)', []);
+
+ testErrorsAndWarnings('from a_index | sort values(stringField)', [
+ 'SORT does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where values(stringField)', [
+ 'WHERE does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | where values(stringField) > 0', [
+ 'WHERE does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = values(stringField)', [
+ 'EVAL does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval var = values(stringField) > 0', [
+ 'EVAL does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval values(stringField)', [
+ 'EVAL does not support function values',
+ ]);
+
+ testErrorsAndWarnings('from a_index | eval values(stringField) > 0', [
+ 'EVAL does not support function values',
+ ]);
+ });
+
+ describe('bucket', () => {
+ testErrorsAndWarnings('from a_index | stats by bucket(dateField, 1 year)', []);
+ testErrorsAndWarnings('from a_index | stats by bin(dateField, 1 year)', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(numberField, 5)', []);
+
+ testErrorsAndWarnings('from a_index | stats by bucket(numberField, numberField)', [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ ]);
+
+ testErrorsAndWarnings('from a_index | stats by bin(numberField, 5)', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(dateField, 5, "a", "a")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats by bucket(dateField, numberField, stringField, stringField)',
+ [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [stringField]',
+ 'Argument of [bucket] must be a constant, received [stringField]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats by bin(dateField, 5, "a", "a")', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(dateField, 5, now(), now())', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats by bucket(dateField, numberField, dateField, dateField)',
+ [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [dateField]',
+ 'Argument of [bucket] must be a constant, received [dateField]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats by bin(dateField, 5, now(), now())', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(dateField, 5, "a", now())', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats by bucket(dateField, numberField, stringField, dateField)',
+ [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [stringField]',
+ 'Argument of [bucket] must be a constant, received [dateField]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats by bin(dateField, 5, "a", now())', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(dateField, 5, now(), "a")', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats by bucket(dateField, numberField, dateField, stringField)',
+ [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [dateField]',
+ 'Argument of [bucket] must be a constant, received [stringField]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats by bin(dateField, 5, now(), "a")', []);
+ testErrorsAndWarnings('from a_index | stats by bucket(numberField, 5, 5, 5)', []);
+
+ testErrorsAndWarnings(
+ 'from a_index | stats by bucket(numberField, numberField, numberField, numberField)',
+ [
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ 'Argument of [bucket] must be a constant, received [numberField]',
+ ]
+ );
+
+ testErrorsAndWarnings('from a_index | stats by bin(numberField, 5, 5, 5)', []);
+
+ testErrorsAndWarnings('from a_index | sort bucket(dateField, 1 year)', [
+ 'SORT does not support function bucket',
+ ]);
});
});
});
diff --git a/packages/kbn-esql-validation-autocomplete/tsconfig.json b/packages/kbn-esql-validation-autocomplete/tsconfig.json
index eea1faf19fa2d..59bed1b2893f0 100644
--- a/packages/kbn-esql-validation-autocomplete/tsconfig.json
+++ b/packages/kbn-esql-validation-autocomplete/tsconfig.json
@@ -9,7 +9,7 @@
},
"include": [
"src/**/*",
- "**/*.ts",
+ "**/*.ts", "scripts",
],
"kbn_references": [
"@kbn/i18n",
diff --git a/packages/kbn-management/settings/setting_ids/index.ts b/packages/kbn-management/settings/setting_ids/index.ts
index 93646978aa1a6..4fd4015baeb2c 100644
--- a/packages/kbn-management/settings/setting_ids/index.ts
+++ b/packages/kbn-management/settings/setting_ids/index.ts
@@ -123,6 +123,8 @@ export const OBSERVABILITY_ENABLE_COMPARISON_BY_DEFAULT_ID =
'observability:enableComparisonByDefault';
export const OBSERVABILITY_ENABLE_INFRASTRUCTURE_HOSTS_VIEW_ID =
'observability:enableInfrastructureHostsView';
+export const OBSERVABILITY_ENABLE_CONTAINER_ASSET_VIEW_ID =
+ 'observability:enableContainerAssetView';
export const OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID =
'observability:enableInfrastructureAssetCustomDashboards';
export const OBSERVABILITY_ENABLE_INSPECT_ES_QUERIES_ID = 'observability:enableInspectEsQueries';
diff --git a/packages/kbn-reporting/public/reporting_api_client.ts b/packages/kbn-reporting/public/reporting_api_client.ts
index 449e7a878e0c5..da734993a7b6a 100644
--- a/packages/kbn-reporting/public/reporting_api_client.ts
+++ b/packages/kbn-reporting/public/reporting_api_client.ts
@@ -21,6 +21,7 @@ import { BaseParams, JobId, ManagementLinkFn, ReportApiJSON } from '@kbn/reporti
import rison from '@kbn/rison';
import moment from 'moment';
import { stringify } from 'query-string';
+import { ReactElement } from 'react';
import { Job } from '.';
import { jobCompletionNotifications } from './job_completion_notifications';
@@ -41,7 +42,10 @@ interface IReportingAPI {
// Helpers
getReportURL(jobId: string): string;
getReportingPublicJobPath(exportType: string, jobParams: BaseParams & T): string; // Return a URL to queue a job, with the job params encoded in the query string of the URL. Used for copying POST URL
- createReportingJob(exportType: string, jobParams: BaseParams & T): Promise; // Sends a request to queue a job, with the job params in the POST body
+ createReportingJob(
+ exportType: string,
+ jobParams: BaseParams & T
+ ): Promise; // Sends a request to queue a job, with the job params in the POST body
getServerBasePath(): string; // Provides the raw server basePath to allow it to be stripped out from relativeUrls in job params
// CRUD
@@ -172,6 +176,20 @@ export class ReportingAPIClient implements IReportingAPI {
return `${this.http.basePath.prepend(PUBLIC_ROUTES.GENERATE_PREFIX)}/${exportType}?${params}`;
}
+ public async createReportingShareJob(exportType: string, jobParams: BaseParams) {
+ const jobParamsRison = rison.encode(jobParams);
+ const resp: { job?: ReportApiJSON } | undefined = await this.http.post(
+ `${INTERNAL_ROUTES.GENERATE_PREFIX}/${exportType}`,
+ {
+ method: 'POST',
+ body: JSON.stringify({ jobParams: jobParamsRison }),
+ }
+ );
+ if (resp?.job) {
+ this.addPendingJobId(resp.job.id);
+ return new Job(resp.job);
+ }
+ }
/**
* Calls the internal API to generate a report job on-demand
*/
@@ -192,7 +210,7 @@ export class ReportingAPIClient implements IReportingAPI {
} catch (err) {
// eslint-disable-next-line no-console
console.error(err);
- throw new Error('invalid response!');
+ throw new Error(`${err.body?.message}`);
}
}
diff --git a/packages/kbn-reporting/public/share/index.ts b/packages/kbn-reporting/public/share/index.ts
index b2587965858d8..9aab4df6b29fe 100644
--- a/packages/kbn-reporting/public/share/index.ts
+++ b/packages/kbn-reporting/public/share/index.ts
@@ -6,10 +6,8 @@
* Side Public License, v 1.
*/
-export { getSharedComponents } from './shared';
export { reportingExportModalProvider } from './share_context_menu/register_pdf_png_modal_reporting';
-export { reportingScreenshotShareProvider } from './share_context_menu/register_pdf_png_reporting';
-export { reportingCsvShareProvider } from './share_context_menu/register_csv_reporting';
export { reportingCsvShareProvider as reportingCsvShareModalProvider } from './share_context_menu/register_csv_modal_reporting';
-export type { ReportingPublicComponents } from './shared/get_shared_components';
export type { JobParamsProviderOptions, StartServices } from './share_context_menu';
+export { getSharedComponents } from './shared';
+export type { ReportingPublicComponents } from './shared';
diff --git a/packages/kbn-reporting/public/share/share_context_menu/index.ts b/packages/kbn-reporting/public/share/share_context_menu/index.ts
index c27ec3f38c68c..7429f08e87bed 100644
--- a/packages/kbn-reporting/public/share/share_context_menu/index.ts
+++ b/packages/kbn-reporting/public/share/share_context_menu/index.ts
@@ -53,6 +53,6 @@ export interface ReportingSharingData {
export interface JobParamsProviderOptions {
sharingData: ReportingSharingData;
- shareableUrl: string;
+ shareableUrl?: string;
objectType: string;
}
diff --git a/packages/kbn-reporting/public/share/share_context_menu/register_csv_modal_reporting.tsx b/packages/kbn-reporting/public/share/share_context_menu/register_csv_modal_reporting.tsx
index 70225a3033773..6877ed1c2b384 100644
--- a/packages/kbn-reporting/public/share/share_context_menu/register_csv_modal_reporting.tsx
+++ b/packages/kbn-reporting/public/share/share_context_menu/register_csv_modal_reporting.tsx
@@ -85,7 +85,7 @@ export const reportingCsvShareProvider = ({
const generateReportingJobCSV = ({ intl }: { intl: InjectedIntl }) => {
const decoratedJobParams = apiClient.getDecoratedJobParams(getJobParams());
return apiClient
- .createReportingJob(reportType, decoratedJobParams)
+ .createReportingShareJob(reportType, decoratedJobParams)
.then(() => firstValueFrom(startServices$))
.then(([startServices]) => {
toasts.addSuccess({
@@ -122,7 +122,10 @@ export const reportingCsvShareProvider = ({
id: 'reporting.share.modalContent.notification.reportingErrorTitle',
defaultMessage: 'Unable to create report',
}),
- toastMessage: error.body?.message,
+ toastMessage: (
+ // eslint-disable-next-line react/no-danger
+
+ ) as unknown as string,
});
});
};
@@ -154,7 +157,7 @@ export const reportingCsvShareProvider = ({
helpText: (
),
@@ -165,14 +168,14 @@ export const reportingCsvShareProvider = ({
dataTestSubj: 'shareReportingCopyURL',
label: 'Post URL',
},
- generateReportButton: (
+ generateExportButton: (
),
- generateReport: generateReportingJobCSV,
+ generateExport: generateReportingJobCSV,
generateCopyUrl: reportingUrl,
absoluteUrl,
renderCopyURLButton: true,
diff --git a/packages/kbn-reporting/public/share/share_context_menu/register_csv_reporting.tsx b/packages/kbn-reporting/public/share/share_context_menu/register_csv_reporting.tsx
deleted file mode 100644
index 5144d32bc48cd..0000000000000
--- a/packages/kbn-reporting/public/share/share_context_menu/register_csv_reporting.tsx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import { i18n } from '@kbn/i18n';
-import React from 'react';
-
-import { CSV_JOB_TYPE, CSV_JOB_TYPE_V2 } from '@kbn/reporting-export-types-csv-common';
-
-import type { SearchSourceFields } from '@kbn/data-plugin/common';
-import { ShareContext, ShareMenuItem, ShareMenuProvider } from '@kbn/share-plugin/public';
-import type { ExportPanelShareOpts } from '.';
-import { checkLicense } from '../..';
-import { ReportingPanelContent } from './reporting_panel_content_lazy';
-
-export const reportingCsvShareProvider = ({
- apiClient,
- application,
- license,
- usesUiCapabilities,
- startServices$,
-}: ExportPanelShareOpts): ShareMenuProvider => {
- const getShareMenuItems = ({ objectType, objectId, sharingData, onClose }: ShareContext) => {
- if ('search' !== objectType) {
- return [];
- }
-
- // only csv v2 supports esql (isTextBased) reports
- // TODO: whole csv reporting should move to v2 https://github.com/elastic/kibana/issues/151190
- const reportType = sharingData.isTextBased ? CSV_JOB_TYPE_V2 : CSV_JOB_TYPE;
-
- const getSearchSource = sharingData.getSearchSource as ({
- addGlobalTimeFilter,
- absoluteTime,
- }: {
- addGlobalTimeFilter?: boolean;
- absoluteTime?: boolean;
- }) => SearchSourceFields;
-
- const jobParams = {
- title: sharingData.title as string,
- objectType,
- };
-
- const getJobParams = (forShareUrl?: boolean) => {
- if (reportType === CSV_JOB_TYPE_V2) {
- // csv v2 uses locator params
- return {
- ...jobParams,
- locatorParams: sharingData.locatorParams as [Record],
- };
- }
-
- // csv v1 uses search source and columns
- return {
- ...jobParams,
- columns: sharingData.columns as string[] | undefined,
- searchSource: getSearchSource({
- addGlobalTimeFilter: true,
- absoluteTime: !forShareUrl,
- }),
- };
- };
-
- const shareActions: ShareMenuItem[] = [];
-
- const licenseCheck = checkLicense(license.check('reporting', 'basic'));
- const licenseToolTipContent = licenseCheck.message;
- const licenseHasCsvReporting = licenseCheck.showLinks;
- const licenseDisabled = !licenseCheck.enableLinks;
-
- // TODO: add abstractions in ExportTypeRegistry to use here?
- let capabilityHasCsvReporting = false;
- if (usesUiCapabilities) {
- capabilityHasCsvReporting = application.capabilities.discover?.generateCsv === true;
- } else {
- capabilityHasCsvReporting = true; // deprecated
- }
-
- if (licenseHasCsvReporting && capabilityHasCsvReporting) {
- const panelTitle = i18n.translate('reporting.share.contextMenu.csvReportsButtonLabel', {
- defaultMessage: 'CSV Reports',
- });
-
- shareActions.push({
- shareMenuItem: {
- name: panelTitle,
- icon: 'document',
- toolTipContent: licenseToolTipContent,
- disabled: licenseDisabled,
- ['data-test-subj']: 'CSVReports',
- sortOrder: 1,
- },
- panel: {
- id: 'csvReportingPanel',
- title: panelTitle,
- content: (
-
- ),
- },
- });
- }
-
- return shareActions;
- };
-
- return {
- id: 'csvReports',
- getShareMenuItems,
- };
-};
diff --git a/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx b/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx
index 621ab6fc5a0d3..a46e79e5818ab 100644
--- a/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx
+++ b/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_modal_reporting.tsx
@@ -330,10 +330,13 @@ export const reportingExportModalProvider = ({
};
const generateReportPNG = ({ intl }: { intl: InjectedIntl }) => {
- const el = document.querySelector('[data-shared-items-container]');
- const { height, width } = el ? el.getBoundingClientRect() : { height: 768, width: 1024 };
- const dimensions = { height, width };
-
+ const { layout: outerLayout } = getJobParams(jobProviderOptions, 'pngV2')();
+ let dimensions = outerLayout?.dimensions;
+ if (!dimensions) {
+ const el = document.querySelector('[data-shared-items-container]');
+ const { height, width } = el ? el.getBoundingClientRect() : { height: 768, width: 1024 };
+ dimensions = { height, width };
+ }
const decoratedJobParams = apiClient.getDecoratedJobParams({
...getJobParams(jobProviderOptions, 'pngV2')(),
layout: { id: 'preserve_layout', dimensions },
@@ -393,20 +396,19 @@ export const reportingExportModalProvider = ({
['data-test-subj']: 'imageExports',
},
label: 'PDF' as const,
- generateReport: generateReportPDF,
+ generateExport: generateReportPDF,
reportType: 'printablePdfV2',
requiresSavedState,
helpText: (
),
- generateReportButton: (
+ generateExportButton: (
),
layoutOption: objectType === 'dashboard' ? ('print' as const) : undefined,
@@ -425,21 +427,17 @@ export const reportingExportModalProvider = ({
['data-test-subj']: 'imageExports',
},
label: 'PNG' as const,
- generateReport: generateReportPNG,
+ generateExport: generateReportPNG,
reportType: 'pngV2',
requiresSavedState,
helpText: (
),
- generateReportButton: (
-
+ generateExportButton: (
+
),
layoutOption: objectType === 'dashboard' ? ('print' as const) : undefined,
renderCopyURLButton: true,
diff --git a/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_reporting.tsx b/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_reporting.tsx
deleted file mode 100644
index 15e671d2afc64..0000000000000
--- a/packages/kbn-reporting/public/share/share_context_menu/register_pdf_png_reporting.tsx
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-import { i18n } from '@kbn/i18n';
-import { ShareContext, ShareMenuItem, ShareMenuProvider } from '@kbn/share-plugin/public';
-import React from 'react';
-import { ExportPanelShareOpts, JobParamsProviderOptions, ReportingSharingData } from '.';
-import { ReportingAPIClient, checkLicense } from '../..';
-import { ScreenCapturePanelContent } from './screen_capture_panel_content_lazy';
-
-const getJobParams =
- (
- apiClient: ReportingAPIClient,
- opts: JobParamsProviderOptions,
- type: 'png' | 'pngV2' | 'printablePdf' | 'printablePdfV2'
- ) =>
- () => {
- const {
- objectType,
- sharingData: { title, layout, locatorParams },
- } = opts;
-
- const baseParams = {
- objectType,
- layout,
- title,
- };
-
- if (type === 'printablePdfV2') {
- // multi locator for PDF V2
- return { ...baseParams, locatorParams: [locatorParams] };
- } else if (type === 'pngV2') {
- // single locator for PNG V2
- return { ...baseParams, locatorParams };
- }
-
- // Relative URL must have URL prefix (Spaces ID prefix), but not server basePath
- // Replace hashes with original RISON values.
- const relativeUrl = opts.shareableUrl.replace(
- window.location.origin + apiClient.getServerBasePath(),
- ''
- );
-
- if (type === 'printablePdf') {
- // multi URL for PDF
- return { ...baseParams, relativeUrls: [relativeUrl] };
- }
-
- // single URL for PNG
- return { ...baseParams, relativeUrl };
- };
-
-export const reportingScreenshotShareProvider = ({
- apiClient,
- license,
- application,
- usesUiCapabilities,
- startServices$,
-}: ExportPanelShareOpts): ShareMenuProvider => {
- const getShareMenuItems = ({
- objectType,
- objectId,
- isDirty,
- onClose,
- shareableUrl,
- shareableUrlForSavedObject,
- ...shareOpts
- }: ShareContext) => {
- const { enableLinks, showLinks, message } = checkLicense(license.check('reporting', 'gold'));
- const licenseToolTipContent = message;
- const licenseHasScreenshotReporting = showLinks;
- const licenseDisabled = !enableLinks;
-
- let capabilityHasDashboardScreenshotReporting = false;
- let capabilityHasVisualizeScreenshotReporting = false;
- if (usesUiCapabilities) {
- capabilityHasDashboardScreenshotReporting =
- application.capabilities.dashboard?.generateScreenshot === true;
- capabilityHasVisualizeScreenshotReporting =
- application.capabilities.visualize?.generateScreenshot === true;
- } else {
- // deprecated
- capabilityHasDashboardScreenshotReporting = true;
- capabilityHasVisualizeScreenshotReporting = true;
- }
-
- if (!licenseHasScreenshotReporting) {
- return [];
- }
- const isSupportedType = ['dashboard', 'visualization', 'lens'].includes(objectType);
-
- if (!isSupportedType) {
- return [];
- }
-
- if (objectType === 'dashboard' && !capabilityHasDashboardScreenshotReporting) {
- return [];
- }
-
- if (
- isSupportedType &&
- !capabilityHasVisualizeScreenshotReporting &&
- !capabilityHasDashboardScreenshotReporting
- ) {
- return [];
- }
-
- const { sharingData } = shareOpts as unknown as { sharingData: ReportingSharingData };
- const shareActions: ShareMenuItem[] = [];
-
- const pngPanelTitle = i18n.translate('reporting.share.contextMenu.pngReportsButtonLabel', {
- defaultMessage: 'PNG Reports',
- });
-
- const jobProviderOptions: JobParamsProviderOptions = {
- shareableUrl: isDirty ? shareableUrl : shareableUrlForSavedObject ?? shareableUrl,
- objectType,
- sharingData,
- };
- const isJobV2Params = ({
- sharingData: _sharingData,
- }: {
- sharingData: Record;
- }) => _sharingData.locatorParams != null;
-
- const isV2Job = isJobV2Params(jobProviderOptions);
- const requiresSavedState = !isV2Job;
-
- const pngReportType = isV2Job ? 'pngV2' : 'png';
-
- const panelPng = {
- shareMenuItem: {
- name: pngPanelTitle,
- icon: 'document',
- toolTipContent: licenseToolTipContent,
- disabled: licenseDisabled || sharingData.reportingDisabled,
- ['data-test-subj']: 'PNGReports',
- sortOrder: 10,
- },
- panel: {
- id: 'reportingPngPanel',
- title: pngPanelTitle,
- content: (
-
- ),
- },
- };
-
- const pdfPanelTitle = i18n.translate('reporting.share.contextMenu.pdfReportsButtonLabel', {
- defaultMessage: 'PDF Reports',
- });
-
- const pdfReportType = isV2Job ? 'printablePdfV2' : 'printablePdf';
-
- const panelPdf = {
- shareMenuItem: {
- name: pdfPanelTitle,
- icon: 'document',
- toolTipContent: licenseToolTipContent,
- disabled: licenseDisabled || sharingData.reportingDisabled,
- ['data-test-subj']: 'PDFReports',
- sortOrder: 10,
- },
- panel: {
- id: 'reportingPdfPanel',
- title: pdfPanelTitle,
- content: (
-
- ),
- },
- };
-
- shareActions.push(panelPng);
- shareActions.push(panelPdf);
- return shareActions;
- };
-
- return {
- id: 'screenCaptureReports',
- getShareMenuItems,
- };
-};
diff --git a/packages/kbn-reporting/public/share/shared/index.ts b/packages/kbn-reporting/public/share/shared/index.ts
index b79d03336431c..00ce6f939d483 100644
--- a/packages/kbn-reporting/public/share/shared/index.ts
+++ b/packages/kbn-reporting/public/share/shared/index.ts
@@ -7,4 +7,4 @@
*/
export { getSharedComponents } from './get_shared_components';
-export type { ApplicationProps } from './get_shared_components';
+export type { ApplicationProps, ReportingPublicComponents } from './get_shared_components';
diff --git a/packages/kbn-search-api-panels/components/ingest_data.tsx b/packages/kbn-search-api-panels/components/ingest_data.tsx
index 0700d2d56d661..e842c499630bb 100644
--- a/packages/kbn-search-api-panels/components/ingest_data.tsx
+++ b/packages/kbn-search-api-panels/components/ingest_data.tsx
@@ -13,6 +13,8 @@ import { i18n } from '@kbn/i18n';
import type { ApplicationStart } from '@kbn/core-application-browser';
import type { ConsolePluginStart } from '@kbn/console-plugin/public';
import type { SharePluginStart } from '@kbn/share-plugin/public';
+import { IngestGetPipelineResponse } from '@elastic/elasticsearch/lib/api/types';
+import { IngestPipelinePanel } from './ingest_pipelines/ingest_pipeline_panel';
import { CodeBox } from './code_box';
import { LanguageDefinition } from '../types';
import { OverviewPanel } from './overview_panel';
@@ -32,11 +34,16 @@ interface IngestDataProps {
languages: LanguageDefinition[];
consoleRequest?: string;
additionalIngestionPanel?: React.ReactNode;
+ ingestPipelineData?: IngestGetPipelineResponse;
+ selectedPipeline: string;
+ setSelectedPipeline: (pipelineId: string) => void;
+ defaultIngestPipeline: string;
}
export const IngestData: React.FC = ({
codeSnippet,
selectedLanguage,
+ selectedPipeline,
setSelectedLanguage,
docLinks,
assetBasePath,
@@ -46,6 +53,9 @@ export const IngestData: React.FC = ({
languages,
consoleRequest,
additionalIngestionPanel,
+ ingestPipelineData,
+ setSelectedPipeline,
+ defaultIngestPipeline,
}) => {
return (
= ({
})}
>
+
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.alternativeOptions', {
diff --git a/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_options.tsx b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_options.tsx
new file mode 100644
index 0000000000000..6a4888a643d4f
--- /dev/null
+++ b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_options.tsx
@@ -0,0 +1,126 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import React, { Fragment } from 'react';
+import { EuiFlexItem, EuiText, EuiBadge, EuiFlexGroup } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { IngestPipeline } from '@elastic/elasticsearch/lib/api/types';
+import { IngestGetPipelineResponse } from '@elastic/elasticsearch/lib/api/types';
+
+interface OptionItem {
+ value: string;
+ inputDisplay: string;
+ dropdownDisplay: JSX.Element;
+}
+
+export interface IngestPipelineWithDeprecated extends IngestPipeline {
+ deprecated?: boolean;
+}
+
+const ProcessorCount = ({ item }: { item: IngestPipelineWithDeprecated | undefined }) => (
+
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.processorCount', {
+ defaultMessage: '{count} {count, plural, one {processor} other {processors}}',
+ values: { count: item?.processors?.length },
+ })}
+
+
+
+);
+
+const ManagedBadge = ({ item }: { item: IngestPipelineWithDeprecated | undefined }) => {
+ if (!item?._meta?.managed) return null;
+ return (
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.managedBadge', {
+ defaultMessage: 'Managed',
+ })}
+
+
+ );
+};
+
+const RecommendedBadge = ({
+ pipelineName,
+ defaultIngestPipeline,
+}: {
+ pipelineName: string;
+ defaultIngestPipeline: string;
+}) => {
+ if (pipelineName !== defaultIngestPipeline) return null;
+ return (
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.recommendedBadge', {
+ defaultMessage: 'Recommended',
+ })}
+
+
+ );
+};
+
+const createOptionItem = (
+ pipelineName: string,
+ item: IngestPipelineWithDeprecated | undefined,
+ defaultIngestPipeline: string
+): OptionItem => {
+ return {
+ value: pipelineName,
+ inputDisplay: pipelineName,
+ dropdownDisplay: (
+
+ {pipelineName}
+
+
+
+
+
+
+ ),
+ };
+};
+
+export const createIngestPipelineOptions = (
+ ingestPipelinesData: IngestGetPipelineResponse | undefined,
+ defaultIngestPipeline: string
+) => {
+ if (!ingestPipelinesData) return [];
+
+ let options = Object.keys(ingestPipelinesData)
+ .filter(
+ (pipelineName: string) =>
+ !(ingestPipelinesData[pipelineName] as IngestPipelineWithDeprecated)?.deprecated
+ )
+ .map((pipelineName) =>
+ createOptionItem(pipelineName, ingestPipelinesData[pipelineName], defaultIngestPipeline)
+ );
+
+ if (ingestPipelinesData[defaultIngestPipeline]) {
+ const defaultOption = createOptionItem(
+ defaultIngestPipeline,
+ ingestPipelinesData[defaultIngestPipeline],
+ defaultIngestPipeline
+ );
+ options = [
+ defaultOption,
+ ...options.filter((option) => option.value !== defaultIngestPipeline),
+ ];
+ }
+
+ return options;
+};
diff --git a/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.test.tsx b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.test.tsx
new file mode 100644
index 0000000000000..040136864f295
--- /dev/null
+++ b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.test.tsx
@@ -0,0 +1,118 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { registerTestBed } from '@kbn/test-jest-helpers';
+import { act } from 'react-dom/test-utils';
+import { IngestPipelinePanel } from './ingest_pipeline_panel';
+
+const DEFAULT_INGESTION_PIPELINE = 'default-ingestion-pipeline';
+
+describe('IngestPipelinePanel', () => {
+ const setSelectedPipelineMock = jest.fn();
+
+ const mockPipelineData = {
+ pipeline1: {
+ processors: ['processor1', 'processor2'],
+ _meta: {
+ managed: true,
+ },
+ },
+ pipeline2: {
+ processors: ['processor1'],
+ _meta: {
+ managed: false,
+ },
+ },
+ [DEFAULT_INGESTION_PIPELINE]: {
+ processors: ['processor1', 'processor2', 'processor3'],
+ _meta: {
+ managed: true,
+ },
+ },
+ deprecated_pipeline: {
+ processors: ['processor1'],
+ _meta: {
+ managed: false,
+ },
+ deprecated: true,
+ },
+ } as any;
+
+ let exists: any;
+ let find: any;
+
+ beforeAll(async () => {
+ const setup = registerTestBed(IngestPipelinePanel, {
+ defaultProps: {
+ setSelectedPipeline: setSelectedPipelineMock,
+ ingestPipelinesData: mockPipelineData,
+ defaultIngestPipeline: DEFAULT_INGESTION_PIPELINE,
+ },
+ memoryRouter: { wrapComponent: false },
+ });
+
+ await act(async () => {
+ const testBed = setup();
+ exists = testBed.exists;
+ find = testBed.find;
+ });
+ });
+
+ it('should display Process Data section', () => {
+ expect(exists('ingestPipelinePanelTitle')).toBe(true);
+ expect(find('ingestPipelinePanelTitle').contains('Preprocess your data')).toBe(true);
+ expect(
+ find('ingestPipelinePanelBody').contains(
+ 'You can use ingest pipelines to preprocess data before indexing into Elasticsearch.'
+ )
+ ).toBe(true);
+ expect(find('ingestPipelinePanelTitle').find('.euiBadge__text').contains('Optional')).toBe(
+ true
+ );
+ });
+
+ it('should display number of processors', () => {
+ find('ingestPipelinePanelSelect').simulate('click');
+ expect(find('ingestPipelinePanelOptions').at(0).contains('3 processors')).toBe(true);
+ expect(find('ingestPipelinePanelOptions').at(1).contains('2 processors')).toBe(true);
+ expect(find('ingestPipelinePanelOptions').at(2).contains('1 processor')).toBe(true);
+ });
+
+ it('should display the badges correctly', () => {
+ find('ingestPipelinePanelSelect').simulate('click');
+ expect(
+ find('ingestPipelinePanelOptions').at(0).find('.euiBadge__text').contains('Recommended')
+ ).toBe(true);
+ expect(
+ find('ingestPipelinePanelOptions').at(1).find('.euiBadge__text').contains('Managed')
+ ).toBe(true);
+ expect(
+ find('ingestPipelinePanelOptions').at(2).find('.euiBadge__text').contains('Managed')
+ ).toBe(false);
+ });
+
+ it('should display only active pipelines', () => {
+ find('ingestPipelinePanelSelect').simulate('click');
+ expect(find('ingestPipelinePanelOptionTitle').contains('pipeline1')).toBe(true);
+ expect(find('ingestPipelinePanelOptionTitle').contains('deprecated_pipeline')).toBe(false);
+ });
+
+ it('should display the recommended pipeline at the beginning', () => {
+ find('ingestPipelinePanelSelect').simulate('click');
+ expect(find('ingestPipelinePanelOptionTitle').at(0).contains(DEFAULT_INGESTION_PIPELINE)).toBe(
+ true
+ );
+ });
+
+ describe('when there exists no ingest pipeline', () => {
+ it('should display an empty list of pipelines', () => {
+ find('ingestPipelinePanelSelect').simulate('click');
+ expect(exists('ingestPipelinePanelOptions')).toBe(false);
+ });
+ });
+});
diff --git a/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.tsx b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.tsx
new file mode 100644
index 0000000000000..a746b2bc0e61e
--- /dev/null
+++ b/packages/kbn-search-api-panels/components/ingest_pipelines/ingest_pipeline_panel.tsx
@@ -0,0 +1,89 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import React, { useMemo } from 'react';
+
+import {
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiSpacer,
+ EuiText,
+ EuiTitle,
+ EuiBadge,
+ EuiSuperSelect,
+} from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { IngestGetPipelineResponse } from '@elastic/elasticsearch/lib/api/types';
+import { createIngestPipelineOptions } from './ingest_pipeline_options';
+
+interface IngestPipelinePanelProps {
+ selectedPipeline: string;
+ setSelectedPipeline: (pipeline: string) => void;
+ ingestPipelinesData?: IngestGetPipelineResponse;
+ defaultIngestPipeline: string;
+}
+
+export const IngestPipelinePanel: React.FC = ({
+ selectedPipeline,
+ setSelectedPipeline,
+ ingestPipelinesData,
+ defaultIngestPipeline,
+}) => {
+ const options = useMemo(
+ () => createIngestPipelineOptions(ingestPipelinesData, defaultIngestPipeline),
+ [ingestPipelinesData, defaultIngestPipeline]
+ );
+
+ return (
+ <>
+
+
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.title', {
+ defaultMessage: 'Preprocess your data',
+ })}
+
+
+
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.optionalBadge', {
+ defaultMessage: 'Optional',
+ })}
+
+
+
+
+
+
+ {i18n.translate('searchApiPanels.welcomeBanner.ingestPipelinePanel.description', {
+ defaultMessage:
+ 'You can use ingest pipelines to preprocess data before indexing into Elasticsearch.',
+ })}
+
+
+
+
+
+ >
+ );
+};
diff --git a/packages/kbn-search-api-panels/index.tsx b/packages/kbn-search-api-panels/index.tsx
index 10276bc9c5325..f0a64685348de 100644
--- a/packages/kbn-search-api-panels/index.tsx
+++ b/packages/kbn-search-api-panels/index.tsx
@@ -13,6 +13,7 @@ import { AuthenticatedUser } from '@kbn/security-plugin/common';
export * from './components/cloud_details';
export * from './components/code_box';
+export * from './components/ingest_pipelines/ingest_pipeline_panel';
export * from './components/github_link';
export * from './components/ingest_data';
export * from './components/ingestions_panel';
diff --git a/packages/kbn-search-api-panels/languages/console.ts b/packages/kbn-search-api-panels/languages/console.ts
index e156409239242..27aeb96b93ba4 100644
--- a/packages/kbn-search-api-panels/languages/console.ts
+++ b/packages/kbn-search-api-panels/languages/console.ts
@@ -19,7 +19,9 @@ export const consoleDefinition: Partial = {
}
}
}`,
- ingestData: `POST _bulk?pretty
+ ingestData: ({ ingestPipeline }) => `POST _bulk?pretty${
+ ingestPipeline ? `&pipeline=${ingestPipeline}` : ''
+ }
{ "index" : { "_index" : "books" } }
{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470}
{ "index" : { "_index" : "books" } }
diff --git a/packages/kbn-search-api-panels/tsconfig.json b/packages/kbn-search-api-panels/tsconfig.json
index 20294566e4cc3..a3b9c16a04512 100644
--- a/packages/kbn-search-api-panels/tsconfig.json
+++ b/packages/kbn-search-api-panels/tsconfig.json
@@ -23,6 +23,7 @@
"@kbn/security-plugin",
"@kbn/console-plugin",
"@kbn/ui-theme",
- "@kbn/try-in-console"
+ "@kbn/try-in-console",
+ "@kbn/test-jest-helpers"
]
}
diff --git a/packages/kbn-search-api-panels/utils.test.ts b/packages/kbn-search-api-panels/utils.test.ts
index c842dd03cf275..ef77838250312 100644
--- a/packages/kbn-search-api-panels/utils.test.ts
+++ b/packages/kbn-search-api-panels/utils.test.ts
@@ -12,8 +12,8 @@ import { getConsoleRequest } from './utils';
describe('utils', () => {
describe('getConsoleRequest()', () => {
test('accepts string values', () => {
- const consoleRequest = getConsoleRequest('ingestData');
- expect(consoleRequest).toEqual(consoleDefinition.ingestData);
+ const consoleRequest = getConsoleRequest('buildSearchQuery');
+ expect(consoleRequest).toEqual(consoleDefinition.buildSearchQuery);
});
test('accepts function values', () => {
diff --git a/packages/kbn-search-connectors/lib/update_connector_configuration.test.ts b/packages/kbn-search-connectors/lib/update_connector_configuration.test.ts
index 9f6d0b188e535..7ed0bae6cf53e 100644
--- a/packages/kbn-search-connectors/lib/update_connector_configuration.test.ts
+++ b/packages/kbn-search-connectors/lib/update_connector_configuration.test.ts
@@ -8,52 +8,73 @@
import { ElasticsearchClient } from '@kbn/core/server';
-import { CONNECTORS_INDEX } from '..';
-import { fetchConnectorById } from './fetch_connectors';
-import { ConnectorStatus } from '../types/connectors';
+import { errors } from '@elastic/elasticsearch';
import { updateConnectorConfiguration } from './update_connector_configuration';
+import { fetchConnectorById } from './fetch_connectors';
jest.mock('./fetch_connectors', () => ({ fetchConnectorById: jest.fn() }));
describe('updateConnectorConfiguration lib function', () => {
const mockClient = {
- update: jest.fn(),
+ transport: {
+ request: jest.fn(),
+ },
};
beforeEach(() => {
jest.clearAllMocks();
- (fetchConnectorById as jest.Mock).mockResolvedValue({
- configuration: { test: { label: 'haha', value: 'this' } },
- id: 'connectorId',
- status: ConnectorStatus.NEEDS_CONFIGURATION,
- });
});
it('should update configuration', async () => {
+ (fetchConnectorById as jest.Mock).mockResolvedValue({
+ configuration: { test: { value: 'haha' } },
+ });
+
+ mockClient.transport.request.mockResolvedValueOnce({ result: 'updated' });
+
await expect(
updateConnectorConfiguration(mockClient as unknown as ElasticsearchClient, 'connectorId', {
- test: 'newValue',
+ test: 'haha',
})
- ).resolves.toEqual({ test: { label: 'haha', value: 'newValue' } });
- expect(mockClient.update).toHaveBeenCalledWith({
- doc: {
- configuration: { test: { label: 'haha', value: 'newValue' } },
- status: ConnectorStatus.CONFIGURED,
+ ).resolves.toEqual({ test: { value: 'haha' } });
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ body: {
+ values: {
+ test: 'haha',
+ },
},
- id: 'connectorId',
- index: CONNECTORS_INDEX,
+ method: 'PUT',
+ path: '/_connector/connectorId/_configuration',
});
});
it('should reject if connector does not exist', async () => {
- (fetchConnectorById as jest.Mock).mockImplementation(() => undefined);
-
+ mockClient.transport.request.mockImplementationOnce(() => {
+ return Promise.reject(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
+ });
await expect(
updateConnectorConfiguration(mockClient as unknown as ElasticsearchClient, 'connectorId', {
- test: 'newValue',
+ test: 'haha',
})
- ).rejects.toEqual(new Error('Could not find connector'));
- expect(mockClient.update).not.toHaveBeenCalled();
+ ).rejects.toEqual(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
});
});
diff --git a/packages/kbn-search-connectors/lib/update_connector_configuration.ts b/packages/kbn-search-connectors/lib/update_connector_configuration.ts
index f9588b984409f..c05c4ba4f6049 100644
--- a/packages/kbn-search-connectors/lib/update_connector_configuration.ts
+++ b/packages/kbn-search-connectors/lib/update_connector_configuration.ts
@@ -8,54 +8,21 @@
import { ElasticsearchClient } from '@kbn/core/server';
-import { i18n } from '@kbn/i18n';
-
-import { CONNECTORS_INDEX } from '..';
-
+import { Result } from '@elastic/elasticsearch/lib/api/types';
import { fetchConnectorById } from './fetch_connectors';
-import { ConnectorConfiguration, ConnectorDocument, ConnectorStatus } from '../types/connectors';
-import { isConfigEntry } from '../utils/is_category_entry';
-import { isNotNullish } from '../utils/is_not_nullish';
export const updateConnectorConfiguration = async (
client: ElasticsearchClient,
connectorId: string,
configuration: Record
) => {
+ await client.transport.request({
+ method: 'PUT',
+ path: `/_connector/${connectorId}/_configuration`,
+ body: {
+ values: configuration,
+ },
+ });
const connector = await fetchConnectorById(client, connectorId);
- if (connector) {
- const status =
- connector.status === ConnectorStatus.NEEDS_CONFIGURATION ||
- connector.status === ConnectorStatus.CREATED
- ? ConnectorStatus.CONFIGURED
- : connector.status;
- const updatedConfig: ConnectorConfiguration = Object.keys(connector.configuration)
- .map((key) => {
- const configEntry = connector.configuration[key];
- return isConfigEntry(configEntry)
- ? {
- ...configEntry, // ugly but needed because typescript refuses to believe this is defined
- key,
- value: configuration[key] ?? configEntry.value,
- }
- : undefined;
- })
- .filter(isNotNullish)
- .reduce((prev: ConnectorConfiguration, curr) => {
- const { key, ...config } = curr;
- return { ...prev, [curr.key]: config };
- }, {});
- await client.update({
- doc: { configuration: updatedConfig, status },
- id: connectorId,
- index: CONNECTORS_INDEX,
- });
- return updatedConfig;
- } else {
- throw new Error(
- i18n.translate('searchConnectors.server.connectors.configuration.error', {
- defaultMessage: 'Could not find connector',
- })
- );
- }
+ return connector?.configuration;
};
diff --git a/packages/kbn-search-connectors/lib/update_filtering.test.ts b/packages/kbn-search-connectors/lib/update_filtering.test.ts
new file mode 100644
index 0000000000000..284210539230b
--- /dev/null
+++ b/packages/kbn-search-connectors/lib/update_filtering.test.ts
@@ -0,0 +1,99 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { ElasticsearchClient } from '@kbn/core/server';
+
+import { errors } from '@elastic/elasticsearch';
+
+import { updateFiltering } from './update_filtering';
+import { FilteringRule, FilteringRules, FilteringValidationState } from '../types/connectors';
+
+describe('updateFiltering lib function', () => {
+ const mockClient = {
+ transport: {
+ request: jest.fn(),
+ },
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ jest.useFakeTimers();
+ jest.setSystemTime(new Date('2024-05-25T12:00:00.000Z'));
+ });
+
+ it('should activate connector filtering draft', async () => {
+ const filteringRule: FilteringRule = {
+ updated_at: '2024-05-10T12:14:14.291Z',
+ created_at: '2024-05-09T14:37:56.090Z',
+ field: 'name',
+ id: 'my-rule',
+ order: 0,
+ policy: 'exclude',
+ rule: 'regex',
+ value: 'test.*',
+ };
+
+ const draftToActivate: FilteringRules = {
+ advanced_snippet: {
+ created_at: '2024-05-25T12:00:00.000Z',
+ updated_at: '2024-05-25T12:00:00.000Z',
+ value: {},
+ },
+ rules: [
+ {
+ ...filteringRule,
+ updated_at: '2024-05-25T12:00:00.000Z',
+ },
+ ],
+ validation: {
+ errors: [],
+ state: FilteringValidationState.VALID,
+ },
+ };
+
+ mockClient.transport.request.mockImplementationOnce(() => ({ result: 'updated' }));
+ mockClient.transport.request.mockImplementationOnce(() => ({
+ filtering: [{ active: draftToActivate }],
+ }));
+
+ await expect(
+ updateFiltering(mockClient as unknown as ElasticsearchClient, 'connectorId')
+ ).resolves.toEqual(draftToActivate);
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ method: 'PUT',
+ path: '/_connector/connectorId/_filtering/activate',
+ });
+ });
+
+ it('should not index document if there is no connector', async () => {
+ mockClient.transport.request.mockImplementationOnce(() => {
+ return Promise.reject(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
+ });
+ await expect(
+ updateFiltering(mockClient as unknown as ElasticsearchClient, 'connectorId')
+ ).rejects.toEqual(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
+ });
+});
diff --git a/packages/kbn-search-connectors/lib/update_filtering.ts b/packages/kbn-search-connectors/lib/update_filtering.ts
index 9651828fdc313..0c02b9da899a4 100644
--- a/packages/kbn-search-connectors/lib/update_filtering.ts
+++ b/packages/kbn-search-connectors/lib/update_filtering.ts
@@ -6,59 +6,24 @@
* Side Public License, v 1.
*/
+import { Result } from '@elastic/elasticsearch/lib/api/types';
import { ElasticsearchClient } from '@kbn/core-elasticsearch-server';
-import { CONNECTORS_INDEX } from '..';
import { fetchConnectorById } from './fetch_connectors';
-import {
- Connector,
- FilteringRule,
- FilteringRules,
- FilteringValidationState,
-} from '../types/connectors';
+import { FilteringRules } from '../types/connectors';
export const updateFiltering = async (
client: ElasticsearchClient,
- connectorId: string,
- {
- advancedSnippet,
- filteringRules,
- }: {
- advancedSnippet: string;
- filteringRules: FilteringRule[];
- }
+ connectorId: string
): Promise => {
- const now = new Date().toISOString();
- const parsedAdvancedSnippet: Record = advancedSnippet
- ? JSON.parse(advancedSnippet)
- : {};
- const parsedFilteringRules = filteringRules.map((filteringRule) => ({
- ...filteringRule,
- created_at: filteringRule.created_at ? filteringRule.created_at : now,
- updated_at: now,
- }));
- const connector = await fetchConnectorById(client, connectorId);
- if (!connector) {
- throw new Error(`Could not find connector with id ${connectorId}`);
- }
- const active: FilteringRules = {
- advanced_snippet: {
- created_at: connector.filtering[0].active.advanced_snippet.created_at || now,
- updated_at: now,
- value: parsedAdvancedSnippet,
- },
- rules: parsedFilteringRules,
- validation: {
- errors: [],
- state: FilteringValidationState.VALID,
- },
- };
-
- const result = await client.update({
- doc: { ...connector, filtering: [{ ...connector.filtering[0], active, draft: active }] },
- id: connectorId,
- index: CONNECTORS_INDEX,
+ const activateDraftFilteringResult = await client.transport.request<{ result: Result }>({
+ method: 'PUT',
+ path: `/_connector/${connectorId}/_filtering/activate`,
});
- return result.result === 'updated' ? active : undefined;
+ if (activateDraftFilteringResult.result === 'updated') {
+ const connector = await fetchConnectorById(client, connectorId);
+ return connector?.filtering?.[0]?.active;
+ }
+ return undefined;
};
diff --git a/packages/kbn-search-connectors/lib/update_filtering_draft.test.ts b/packages/kbn-search-connectors/lib/update_filtering_draft.test.ts
new file mode 100644
index 0000000000000..cfbc4e9d70713
--- /dev/null
+++ b/packages/kbn-search-connectors/lib/update_filtering_draft.test.ts
@@ -0,0 +1,116 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { ElasticsearchClient } from '@kbn/core/server';
+
+import { errors } from '@elastic/elasticsearch';
+
+import { updateFilteringDraft } from './update_filtering_draft';
+import { FilteringRule, FilteringRules, FilteringValidationState } from '../types/connectors';
+
+describe('updateFilteringDraft lib function', () => {
+ const mockClient = {
+ transport: {
+ request: jest.fn(),
+ },
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ jest.useFakeTimers();
+ jest.setSystemTime(new Date('2024-05-25T12:00:00.000Z'));
+ });
+
+ it('should update connector filtering draft', async () => {
+ const filteringRule: FilteringRule = {
+ updated_at: '2024-05-10T12:14:14.291Z',
+ created_at: '2024-05-09T14:37:56.090Z',
+ field: 'name',
+ id: 'my-rule',
+ order: 0,
+ policy: 'exclude',
+ rule: 'regex',
+ value: 'test.*',
+ };
+
+ const draft: FilteringRules = {
+ advanced_snippet: {
+ created_at: '2024-05-25T12:00:00.000Z',
+ updated_at: '2024-05-25T12:00:00.000Z',
+ value: {},
+ },
+ rules: [
+ {
+ ...filteringRule,
+ updated_at: '2024-05-25T12:00:00.000Z',
+ },
+ ],
+ validation: {
+ errors: [],
+ state: FilteringValidationState.EDITED,
+ },
+ };
+
+ mockClient.transport.request.mockImplementationOnce(() => ({ result: 'updated' }));
+ mockClient.transport.request.mockImplementationOnce(() => ({ filtering: [{ draft }] }));
+
+ await expect(
+ updateFilteringDraft(mockClient as unknown as ElasticsearchClient, 'connectorId', {
+ advancedSnippet: '{}',
+ filteringRules: [filteringRule],
+ })
+ ).resolves.toEqual(draft);
+ expect(mockClient.transport.request).toHaveBeenCalledWith({
+ body: {
+ advanced_snippet: {
+ created_at: '2024-05-25T12:00:00.000Z',
+ updated_at: '2024-05-25T12:00:00.000Z',
+ value: {},
+ },
+ rules: [
+ {
+ ...filteringRule,
+ updated_at: '2024-05-25T12:00:00.000Z',
+ },
+ ],
+ },
+ method: 'PUT',
+ path: '/_connector/connectorId/_filtering',
+ });
+ });
+
+ it('should not index document if there is no connector', async () => {
+ mockClient.transport.request.mockImplementationOnce(() => {
+ return Promise.reject(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
+ });
+ await expect(
+ updateFilteringDraft(mockClient as unknown as ElasticsearchClient, 'connectorId', {
+ advancedSnippet: '{}',
+ filteringRules: [],
+ })
+ ).rejects.toEqual(
+ new errors.ResponseError({
+ statusCode: 404,
+ body: {
+ error: {
+ type: `document_missing_exception`,
+ },
+ },
+ } as any)
+ );
+ });
+});
diff --git a/packages/kbn-search-connectors/lib/update_filtering_draft.ts b/packages/kbn-search-connectors/lib/update_filtering_draft.ts
index 154f85f4becb0..6d580604004c8 100644
--- a/packages/kbn-search-connectors/lib/update_filtering_draft.ts
+++ b/packages/kbn-search-connectors/lib/update_filtering_draft.ts
@@ -6,16 +6,11 @@
* Side Public License, v 1.
*/
+import { Result } from '@elastic/elasticsearch/lib/api/types';
import { ElasticsearchClient } from '@kbn/core-elasticsearch-server';
-import { CONNECTORS_INDEX } from '..';
import { fetchConnectorById } from './fetch_connectors';
-import {
- Connector,
- FilteringRule,
- FilteringRules,
- FilteringValidationState,
-} from '../types/connectors';
+import { FilteringRule, FilteringRules } from '../types/connectors';
export const updateFilteringDraft = async (
client: ElasticsearchClient,
@@ -37,28 +32,25 @@ export const updateFilteringDraft = async (
created_at: filteringRule.created_at ? filteringRule.created_at : now,
updated_at: now,
}));
- const draft: FilteringRules = {
+
+ const draft = {
advanced_snippet: {
created_at: now,
updated_at: now,
value: parsedAdvancedSnippet,
},
rules: parsedFilteringRules,
- validation: {
- errors: [],
- state: FilteringValidationState.EDITED,
- },
};
- const connector = await fetchConnectorById(client, connectorId);
- if (!connector) {
- throw new Error(`Could not find connector with id ${connectorId}`);
- }
- const result = await client.update({
- doc: { ...connector, filtering: [{ ...connector.filtering[0], draft }] },
- id: connectorId,
- index: CONNECTORS_INDEX,
+ const updateDraftFilteringResult = await client.transport.request<{ result: Result }>({
+ method: 'PUT',
+ path: `/_connector/${connectorId}/_filtering`,
+ body: draft,
});
- return result.result === 'updated' ? draft : undefined;
+ if (updateDraftFilteringResult.result === 'updated') {
+ const connector = await fetchConnectorById(client, connectorId);
+ return connector?.filtering?.[0]?.draft;
+ }
+ return undefined;
};
diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts
index 3c235b0c3f4a3..422e31d2282be 100644
--- a/packages/kbn-search-connectors/types/native_connectors.ts
+++ b/packages/kbn-search-connectors/types/native_connectors.ts
@@ -631,13 +631,33 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record {
+ it('works with object created inline', () => {
+ const obj = { foo: 'bar', hello: 'dolly' };
+
+ const result = pick(obj, ['foo']);
+ expect(result).toEqual({ foo: 'bar' });
+ });
+
+ it('works with objects created via Object.create(null)', () => {
+ const obj = Object.create(null);
+ Object.assign(obj, { foo: 'bar', hello: 'dolly' });
+
+ const result = pick(obj, ['foo']);
+ expect(result).toEqual({ foo: 'bar' });
+ });
+
+ it('does not pick properties from the prototype', () => {
+ const proto = { prot: 'o' };
+ const obj = Object.create(proto);
+ Object.assign(obj, { foo: 'bar', hello: 'dolly' });
+
+ const result = pick(obj, ['foo', 'prot']);
+ expect(result).toEqual({ foo: 'bar' });
+ });
+});
diff --git a/packages/kbn-std/src/pick.ts b/packages/kbn-std/src/pick.ts
index c8347aadb219a..8d01c80caee6d 100644
--- a/packages/kbn-std/src/pick.ts
+++ b/packages/kbn-std/src/pick.ts
@@ -8,10 +8,9 @@
export function pick(obj: T, keys: readonly K[]): Pick {
return keys.reduce((acc, key) => {
- if (obj.hasOwnProperty(key)) {
+ if (Object.hasOwn(obj, key)) {
acc[key] = obj[key];
}
-
return acc;
}, {} as Pick);
}
diff --git a/packages/kbn-test/src/es/test_es_cluster.ts b/packages/kbn-test/src/es/test_es_cluster.ts
index 12f020175fd4e..a2078a1e56e16 100644
--- a/packages/kbn-test/src/es/test_es_cluster.ts
+++ b/packages/kbn-test/src/es/test_es_cluster.ts
@@ -182,7 +182,6 @@ export function createTestEsCluster<
} = options;
const clusterName = `${CI_PARALLEL_PROCESS_PREFIX}${customClusterName}`;
- const isFIPSMode = process.env.FTR_FIPS_MODE === '1';
const defaultEsArgs = [
`cluster.name=${clusterName}`,
@@ -193,12 +192,7 @@ export function createTestEsCluster<
: ['discovery.type=single-node']),
];
- const esArgs = assignArgs(
- defaultEsArgs,
- // ML has issues running in FIPS mode due to custom OpenSSL
- // Remove after https://github.com/elastic/kibana-operations/issues/96
- isFIPSMode ? [...customEsArgs, 'xpack.ml.enabled=false'] : customEsArgs
- );
+ const esArgs = assignArgs(defaultEsArgs, customEsArgs);
const config = {
version: esTestConfig.getVersion(),
@@ -231,22 +225,21 @@ export function createTestEsCluster<
async start() {
let installPath: string;
+ let disableEsTmpDir: boolean;
// We only install once using the first node. If the cluster has
// multiple nodes, they'll all share the same ESinstallation.
const firstNode = this.nodes[0];
if (esFrom === 'source') {
- installPath = (
- await firstNode.installSource({
- sourcePath: config.sourcePath,
- license: config.license,
- password: config.password,
- basePath: config.basePath,
- esArgs: config.esArgs,
- })
- ).installPath;
+ ({ installPath, disableEsTmpDir } = await firstNode.installSource({
+ sourcePath: config.sourcePath,
+ license: config.license,
+ password: config.password,
+ basePath: config.basePath,
+ esArgs: config.esArgs,
+ }));
} else if (esFrom === 'snapshot') {
- installPath = (await firstNode.installSnapshot(config)).installPath;
+ ({ installPath, disableEsTmpDir } = await firstNode.installSnapshot(config));
} else if (esFrom === 'serverless') {
if (!esServerlessOptions) {
throw new Error(
@@ -308,6 +301,7 @@ export function createTestEsCluster<
skipReadyCheck: this.nodes.length > 1 && i < this.nodes.length - 1,
onEarlyExit,
writeLogsToPath,
+ disableEsTmpDir,
});
});
}
diff --git a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx
index 4b0fea2eae5ab..84dfcde890d66 100644
--- a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx
+++ b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx
@@ -106,16 +106,6 @@ Also, similar to the index fields, once an aggregation is performed, a metadata
FROM employees [METADATA _index, _id]
| STATS max = MAX(emp_no) BY _index
\`\`\`
-
-The \`OPTIONS\` directive of the FROM command allows you to configure the way ES|QL accesses the data to be queried. The argument passed to this directive is a comma-separated list of option name-value pairs, with the option name and the corresponding value double-quoted.
-
-For example:
-
-\`\`\`
-FROM index_pattern [OPTIONS "option1"="value1"[,...[,"optionN"="valueN"]]]
-\`\`\`
-
-Learn more about the \`OPTIONS\` directive in the [main documentation page](https://www.elastic.co/guide/en/elasticsearch/reference/master/esql-index-options.html#esql-index-options).
`,
description:
'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)',
diff --git a/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx b/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx
index 7c84b5806bccf..8ed5aa53daa64 100644
--- a/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx
+++ b/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx
@@ -8,7 +8,7 @@
import React, { useMemo } from 'react';
import { css, CSSObject } from '@emotion/react';
-import { EuiIcon, EuiToolTip } from '@elastic/eui';
+import { EuiIconTip } from '@elastic/eui';
import type { DataView, DataViewField } from '@kbn/data-views-plugin/common';
import { FieldIcon, getFieldIconProps, getTextBasedColumnIconType } from '@kbn/field-utils';
import { isNestedFieldParent } from '@kbn/discover-utils';
@@ -129,11 +129,9 @@ export const DataTableTimeColumnHeader = ({
text-align: left;
`}
>
-
-
- {timeFieldName}
-
-
+
+ {timeFieldName}
+
);
};
diff --git a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx
index 694f82bf9c079..3a9fb5177135b 100644
--- a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx
+++ b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx
@@ -7,7 +7,10 @@
*/
import './setup_jest_mocks';
import { of } from 'rxjs';
-import type { NavigationTreeDefinitionUI } from '@kbn/core-chrome-browser';
+import type {
+ NavigationTreeDefinitionUI,
+ ChromeProjectNavigationNode,
+} from '@kbn/core-chrome-browser';
import { renderNavigation } from './utils';
@@ -79,6 +82,59 @@ describe('builds navigation tree', () => {
expect(await findByTestId(/nav-item-group1.group1A.group1A_1.item1/)).toBeVisible();
});
+ test('should handle links on accordion toggle button', async () => {
+ const navigateToUrl = jest.fn();
+
+ const accordionNode: ChromeProjectNavigationNode = {
+ id: 'group1',
+ title: 'Group 1',
+ path: 'group1',
+ renderAs: 'accordion',
+ href: '/app/foo', // Accordion has an href
+ children: [
+ {
+ id: 'item1',
+ title: 'Item 1',
+ href: 'https://foo',
+ path: 'group1.item1',
+ },
+ ],
+ };
+
+ {
+ const { findByTestId, unmount } = renderNavigation({
+ navTreeDef: of({
+ body: [accordionNode],
+ }),
+ services: { navigateToUrl },
+ });
+
+ const accordionToggleButton = await findByTestId(/nav-item-group1\s/);
+ accordionToggleButton.click();
+ expect(navigateToUrl).not.toHaveBeenCalled();
+ unmount();
+ }
+
+ {
+ const { findByTestId } = renderNavigation({
+ navTreeDef: of({
+ body: [
+ {
+ ...accordionNode,
+ isCollapsible: false, // Non-collapsible accordion
+ },
+ ],
+ }),
+ services: { navigateToUrl },
+ });
+
+ const accordionToggleButton = await findByTestId(/nav-item-group1\s/);
+ accordionToggleButton.click();
+
+ expect(navigateToUrl).toHaveBeenCalledWith('/app/foo'); // Should navigate to the href
+ }
+ });
+
test('should not render the group if it does not have children', async () => {
const navTree: NavigationTreeDefinitionUI = {
body: [
diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx
index 8ceb84fde5de3..fe921f6bd0b73 100644
--- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx
+++ b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx
@@ -184,7 +184,7 @@ const nodeToEuiCollapsibleNavProps = (
const { navNode, isItem, hasChildren, hasLink } = serializeNavNode(_navNode);
const isActive = isActiveFromUrl(navNode.path, activeNodes);
- const { id, path, href, renderAs } = navNode;
+ const { id, path, href, renderAs, isCollapsible = DEFAULT_IS_COLLAPSIBLE } = navNode;
const isExternal = Boolean(href) && !navNode.isElasticInternalLink && isAbsoluteLink(href!);
const isAccordion = hasChildren && !isItem;
@@ -222,6 +222,9 @@ const nodeToEuiCollapsibleNavProps = (
}
const onClick = (e: React.MouseEvent) => {
+ // Do not navigate if it is a collapsible accordion, link will be used in the breadcrumb
+ if (isAccordion && isCollapsible) return;
+
if (href !== undefined) {
e.preventDefault();
navigateToUrl(href);
diff --git a/packages/shared-ux/modal/tabbed/src/tabbed_modal.tsx b/packages/shared-ux/modal/tabbed/src/tabbed_modal.tsx
index ebcf528665394..e00bcdaf9c2fa 100644
--- a/packages/shared-ux/modal/tabbed/src/tabbed_modal.tsx
+++ b/packages/shared-ux/modal/tabbed/src/tabbed_modal.tsx
@@ -58,9 +58,15 @@ export interface IModalTabDeclaration extends EuiTabProps, ITabDeclarati
export interface ITabbedModalInner extends Pick, 'onClose'> {
modalWidth?: number;
modalTitle?: string;
+ anchorElement?: HTMLElement;
}
-const TabbedModalInner: FC = ({ onClose, modalTitle, modalWidth }) => {
+const TabbedModalInner: FC = ({
+ onClose,
+ modalTitle,
+ modalWidth,
+ anchorElement,
+}) => {
const { tabs, state, dispatch } =
useModalContext>>>();
@@ -91,6 +97,7 @@ const TabbedModalInner: FC = ({ onClose, modalTitle, modalWid
disabled={tab.disabled}
prepend={tab.prepend}
append={tab.append}
+ data-test-subj={tab.id}
>
{tab.name}
@@ -100,9 +107,13 @@ const TabbedModalInner: FC = ({ onClose, modalTitle, modalWid
return (
{
+ onClose();
+ setTimeout(() => anchorElement?.focus(), 1);
+ }}
style={{ ...(modalWidth ? { width: modalWidth } : {}) }}
maxWidth={true}
+ data-test-subj="shareContextModal"
>
{modalTitle}
diff --git a/renovate.json b/renovate.json
index 9393a7b005225..cb8c4e6bfc339 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,19 +1,9 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
- "extends": [
- "config:base"
- ],
- "ignorePaths": [
- "**/__fixtures__/**",
- "**/fixtures/**"
- ],
- "enabledManagers": [
- "npm"
- ],
- "baseBranches": [
- "main",
- "7.17"
- ],
+ "extends": ["config:base"],
+ "ignorePaths": ["**/__fixtures__/**", "**/fixtures/**"],
+ "enabledManagers": ["npm"],
+ "baseBranches": ["main", "7.17"],
"prConcurrentLimit": 0,
"prHourlyLimit": 0,
"separateMajorMinor": false,
@@ -27,31 +17,17 @@
},
"packageRules": [
{
- "matchPackagePatterns": [
- ".*"
- ],
+ "matchPackagePatterns": [".*"],
"enabled": false,
"prCreation": "not-pending",
"stabilityDays": 7
},
{
"groupName": "@elastic/charts",
- "matchPackageNames": [
- "@elastic/charts"
- ],
- "reviewers": [
- "team:visualizations",
- "markov00",
- "nickofthyme"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "Team:Visualizations"
- ],
+ "matchPackageNames": ["@elastic/charts"],
+ "reviewers": ["team:visualizations", "markov00", "nickofthyme"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "Team:Visualizations"],
"draftPR": true,
"enabled": true,
"assignAutomerge": true,
@@ -59,270 +35,117 @@
},
{
"groupName": "@elastic/elasticsearch",
- "matchPackageNames": [
- "@elastic/elasticsearch"
- ],
- "reviewers": [
- "team:kibana-operations",
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "Team:Operations",
- "Team:Core"
- ],
+ "matchPackageNames": ["@elastic/elasticsearch"],
+ "reviewers": ["team:kibana-operations", "team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "Team:Operations", "Team:Core"],
"enabled": true
},
{
"groupName": "@elastic/elasticsearch",
- "matchPackageNames": [
- "@elastic/elasticsearch"
- ],
- "reviewers": [
- "team:kibana-operations",
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "7.17"
- ],
- "labels": [
- "release_note:skip",
- "Team:Operations",
- "Team:Core",
- "backport:skip"
- ],
+ "matchPackageNames": ["@elastic/elasticsearch"],
+ "reviewers": ["team:kibana-operations", "team:kibana-core"],
+ "matchBaseBranches": ["7.17"],
+ "labels": ["release_note:skip", "Team:Operations", "Team:Core", "backport:skip"],
"enabled": true
},
{
"groupName": "LaunchDarkly",
- "matchPackageNames": [
- "launchdarkly-js-client-sdk",
- "launchdarkly-node-server-sdk"
- ],
- "reviewers": [
- "team:kibana-security",
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "Team:Security",
- "Team:Core",
- "backport:prev-minor"
- ],
+ "matchPackageNames": ["launchdarkly-js-client-sdk", "launchdarkly-node-server-sdk"],
+ "reviewers": ["team:kibana-security", "team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "Team:Security", "Team:Core", "backport:prev-minor"],
"enabled": true
},
{
"groupName": "APM",
- "matchPackageNames": [
- "elastic-apm-node",
- "@elastic/apm-rum",
- "@elastic/apm-rum-react"
- ],
- "reviewers": [
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "Team:Core",
- "backport:skip"
- ],
+ "matchPackageNames": ["elastic-apm-node", "@elastic/apm-rum", "@elastic/apm-rum-react"],
+ "reviewers": ["team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "Team:Core", "backport:skip"],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "ansi-regex",
- "matchPackageNames": [
- "ansi-regex"
- ],
- "reviewers": [
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "Team:Core",
- "backport:skip"
- ],
+ "matchPackageNames": ["ansi-regex"],
+ "reviewers": ["team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "Team:Core", "backport:skip"],
"enabled": true
},
{
"groupName": "OpenAPI Spec",
- "matchPackageNames": [
- "@redocly/cli"
- ],
- "reviewers": [
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "Team:Core",
- "backport:all-open"
- ],
+ "matchPackageNames": ["@redocly/cli"],
+ "reviewers": ["team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "Team:Core", "backport:all-open"],
"enabled": true
},
{
"groupName": "babel",
- "matchPackageNames": [
- "@types/babel__core"
- ],
- "matchPackagePatterns": [
- "^@babel",
- "^babel-plugin"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "matchPackageNames": ["@types/babel__core"],
+ "matchPackagePatterns": ["^@babel", "^babel-plugin"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "typescript",
- "matchPackageNames": [
- "typescript",
- "prettier",
- "@types/jsdom"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "matchPackageNames": ["typescript", "prettier", "@types/jsdom"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "typescript-eslint",
- "matchPackagePatterns": [
- "^@typescript-eslint"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "matchPackagePatterns": ["^@typescript-eslint"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "polyfills",
- "matchPackageNames": [
- "core-js"
- ],
- "matchPackagePatterns": [
- "polyfill"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "matchPackageNames": ["core-js"],
+ "matchPackagePatterns": ["polyfill"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "CLI tooling",
- "matchPackageNames": [
- "listr2"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "backport:all-open",
- "release_note:skip"
- ],
+ "matchPackageNames": ["listr2"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "backport:all-open", "release_note:skip"],
"enabled": true
},
{
"groupName": "vega related modules",
- "matchPackageNames": [
- "vega",
- "vega-lite",
- "vega-schema-url-parser",
- "vega-tooltip"
- ],
- "reviewers": [
- "team:kibana-visualizations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Feature:Vega",
- "Team:Visualizations"
- ],
+ "matchPackageNames": ["vega", "vega-lite", "vega-schema-url-parser", "vega-tooltip"],
+ "reviewers": ["team:kibana-visualizations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Feature:Vega", "Team:Visualizations"],
"enabled": true
},
{
"groupName": "cypress",
- "matchPackagePatterns": [
- "cypress"
- ],
- "reviewers": [
- "Team:apm",
- "Team: SecuritySolution"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "buildkite-ci",
- "ci:all-cypress-suites"
- ],
+ "matchPackagePatterns": ["cypress"],
+ "reviewers": ["Team:apm", "Team: SecuritySolution"],
+ "matchBaseBranches": ["main"],
+ "labels": ["buildkite-ci", "ci:all-cypress-suites"],
"enabled": true
},
{
"groupName": "security solution modules",
- "matchPackageNames": [
- "zod",
- "langchain"
- ],
- "reviewers": [
- "Team: SecuritySolution"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team: SecuritySolution"
- ],
+ "matchPackageNames": ["zod", "langchain"],
+ "reviewers": ["Team: SecuritySolution"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team: SecuritySolution"],
"enabled": true
},
{
@@ -339,17 +162,9 @@
"@types/xml-crypto",
"@kayahr/text-encoding"
],
- "reviewers": [
- "team:kibana-security"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Security",
- "release_note:skip",
- "backport:all-open"
- ],
+ "reviewers": ["team:kibana-security"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Security", "release_note:skip", "backport:all-open"],
"enabled": true
},
{
@@ -362,52 +177,25 @@
"ms-chromium-edge-driver",
"selenium-webdriver"
],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "scss",
- "packageNames": [
- "sass-embedded"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip",
- "backport:all-open"
- ],
+ "packageNames": ["sass-embedded"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip", "backport:all-open"],
"enabled": true
},
{
"groupName": "minify",
- "packageNames": [
- "gulp-terser",
- "terser"
- ],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "packageNames": ["gulp-terser", "terser"],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
@@ -420,16 +208,9 @@
"@testing-library/user-event",
"@types/testing-library__jest-dom"
],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
@@ -450,67 +231,33 @@
"jest-runtime",
"jest-snapshot"
],
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip"
- ],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Operations", "release_note:skip"],
"enabled": true
},
{
"groupName": "@storybook",
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "matchPackagePatterns": [
- "^@storybook"
- ],
- "excludePackageNames": [
- "@storybook/testing-react"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip",
- "ci:build-storybooks",
- "backport:skip"
- ],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "matchPackagePatterns": ["^@storybook"],
+ "excludePackageNames": ["@storybook/testing-react"],
+ "labels": ["Team:Operations", "release_note:skip", "ci:build-storybooks", "backport:skip"],
"enabled": true,
"allowedVersions": "<7.0"
},
{
"groupName": "@storybook/testing-react",
- "reviewers": [
- "team:kibana-operations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "matchPackageNames": [
- "@storybook/testing-react"
- ],
- "labels": [
- "Team:Operations",
- "release_note:skip",
- "ci:build-storybooks",
- "backport:skip"
- ],
+ "reviewers": ["team:kibana-operations"],
+ "matchBaseBranches": ["main"],
+ "matchPackageNames": ["@storybook/testing-react"],
+ "labels": ["Team:Operations", "release_note:skip", "ci:build-storybooks", "backport:skip"],
"enabled": true,
"allowedVersions": "<2.0"
},
{
"groupName": "react-query",
- "packageNames": [
- "@tanstack/react-query",
- "@tanstack/react-query-devtools"
- ],
+ "packageNames": ["@tanstack/react-query", "@tanstack/react-query-devtools"],
"reviewers": [
"team:response-ops",
"team:kibana-cloud-security-posture",
@@ -519,41 +266,21 @@
"team:awp-platform",
"team:security-onboarding-and-lifecycle-mgt"
],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "ci:all-cypress-suites"
- ],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
"enabled": true
},
{
"groupName": "react-hook-form",
- "packageNames": [
- "react-hook-form"
- ],
- "reviewers": [
- "team:security-asset-management",
- "team:uptime"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "ci:all-cypress-suites"
- ],
+ "packageNames": ["react-hook-form"],
+ "reviewers": ["team:security-asset-management", "team:uptime"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
"enabled": true
},
{
"groupName": "redux",
- "packageNames": [
- "redux",
- "react-redux"
- ],
+ "packageNames": ["redux", "react-redux"],
"reviewers": [
"team:enterprise-search-frontend",
"team:kibana-presentation",
@@ -562,182 +289,93 @@
"team:kibana-gis",
"team:security-solution"
],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "ci:all-cypress-suites"
- ],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "ci:all-cypress-suites"],
"enabled": true
},
{
"groupName": "Profiling",
- "matchPackageNames": [
- "peggy",
- "@types/dagre"
- ],
- "reviewers": [
- "team:profiling-ui"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip"
- ],
+ "matchPackageNames": ["peggy", "@types/dagre"],
+ "reviewers": ["team:profiling-ui"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip"],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "TTY Output",
- "matchPackageNames": [
- "xterm",
- "byte-size",
- "@types/byte-size"
- ],
- "reviewers": [
- "team:sec-cloudnative-integrations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team: AWP: Visualization",
- "release_note:skip",
- "backport:skip"
- ],
+ "matchPackageNames": ["xterm", "byte-size", "@types/byte-size"],
+ "reviewers": ["team:sec-cloudnative-integrations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team: AWP: Visualization", "release_note:skip", "backport:skip"],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "Cloud Defend",
- "matchPackageNames": [
- "monaco-yaml"
- ],
- "reviewers": [
- "team:sec-cloudnative-integrations"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team: Cloud Native Integrations",
- "release_note:skip",
- "backport:skip"
- ],
+ "matchPackageNames": ["monaco-yaml"],
+ "reviewers": ["team:sec-cloudnative-integrations"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team: Cloud Native Integrations", "release_note:skip", "backport:skip"],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "JSON Web Token",
- "matchPackageNames": [
- "jsonwebtoken"
- ],
- "reviewers": [
- "team:response-ops",
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:all-open"
- ],
+ "matchPackageNames": ["jsonwebtoken"],
+ "reviewers": ["team:response-ops", "team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:all-open"],
"enabled": true
},
{
"groupName": "XState",
- "matchPackageNames": [
- "xstate"
- ],
- "matchPackagePrefixes": [
- "@xstate/"
- ],
- "reviewers": [
- "team:obs-ux-logs"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Obs UX Logs",
- "release_note:skip"
- ],
+ "matchPackageNames": ["xstate"],
+ "matchPackagePrefixes": ["@xstate/"],
+ "reviewers": ["team:obs-ux-logs"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Obs UX Logs", "release_note:skip"],
"enabled": true,
"prCreation": "immediate"
},
{
"groupName": "OpenTelemetry modules",
- "matchPackagePrefixes": [
- "@opentelemetry/"
- ],
- "reviewers": [
- "team:monitoring"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:Monitoring"
- ],
+ "matchPackagePrefixes": ["@opentelemetry/"],
+ "reviewers": ["team:monitoring"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:Monitoring"],
"enabled": true
},
{
"groupName": "csp",
- "packageNames": [
- "content-security-policy-parser"
- ],
- "reviewers": [
- "team:kibana-security",
- "team:kibana-core"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:skip",
- "ci:serverless-test-all"
- ],
+ "packageNames": ["content-security-policy-parser"],
+ "reviewers": ["team:kibana-security", "team:kibana-core"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:skip", "ci:serverless-test-all"],
"enabled": true
},
{
"groupName": "AlertingEmails",
- "matchPackageNames": [
- "nodemailer"
- ],
- "reviewers": [
- "team:response-ops"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "release_note:skip",
- "backport:prev-minor"
- ],
+ "matchPackageNames": ["nodemailer"],
+ "reviewers": ["team:response-ops"],
+ "matchBaseBranches": ["main"],
+ "labels": ["release_note:skip", "backport:prev-minor"],
"enabled": true
},
{
"groupName": "machine learning modules",
- "matchPackageNames": [
- "apidoc-markdown"
- ],
- "reviewers": [
- "team:ml-ui"
- ],
- "matchBaseBranches": [
- "main"
- ],
- "labels": [
- "Team:ML",
- "release_note:skip",
- "backport:all-open"
- ],
+ "matchPackageNames": ["apidoc-markdown"],
+ "reviewers": ["team:ml-ui"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:ML", "release_note:skip", "backport:all-open"],
+ "enabled": true
+ },
+ {
+ "groupName": "Kibana ES|QL Team",
+ "matchPackageNames": ["recast"],
+ "reviewers": ["team:kibana-esql"],
+ "matchBaseBranches": ["main"],
+ "labels": ["Team:ESQL", "release_note:skip"],
"enabled": true
}
]
diff --git a/src/core/server/integration_tests/saved_objects/migrations/group4/check_hash_to_version_map.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group4/check_hash_to_version_map.test.ts
deleted file mode 100644
index 278d108b830f9..0000000000000
--- a/src/core/server/integration_tests/saved_objects/migrations/group4/check_hash_to_version_map.test.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
- * in compliance with, at your election, the Elastic License 2.0 or the Server
- * Side Public License, v 1.
- */
-
-/*
- * This file contains logic to build and diff the index mappings for a migration.
- */
-
-import crypto from 'crypto';
-import { mapValues } from 'lodash';
-import {
- getLatestMappingsVirtualVersionMap,
- HASH_TO_VERSION_MAP,
-} from '@kbn/core-saved-objects-base-server-internal';
-import { buildTypesMappings } from '@kbn/core-saved-objects-migration-server-internal';
-import { getCurrentVersionTypeRegistry } from '../kibana_migrator_test_kit';
-
-describe('transition from md5 hashes to model versions', () => {
- // this short-lived test is here to ensure no changes are introduced after the creation of the HASH_TO_VERSION_MAP
- it('ensures the hashToVersionMap does not miss any mappings changes', async () => {
- const typeRegistry = await getCurrentVersionTypeRegistry({ oss: false });
- const mappingProperties = buildTypesMappings(typeRegistry.getAllTypes());
- const hashes = md5Values(mappingProperties);
- const versions = getLatestMappingsVirtualVersionMap(typeRegistry.getAllTypes());
-
- const currentHashToVersionMap = Object.entries(hashes).reduce>(
- (acc, [type, hash]) => {
- acc[`${type}|${hash}`] = versions[type];
- return acc;
- },
- {}
- );
-
- expect(currentHashToVersionMap).toEqual(HASH_TO_VERSION_MAP);
- });
-});
-
-// Convert an object to an md5 hash string, using a stable serialization (canonicalStringify)
-function md5Object(obj: any) {
- return crypto.createHash('md5').update(canonicalStringify(obj)).digest('hex');
-}
-
-// JSON.stringify is non-canonical, meaning the same object may produce slightly
-// different JSON, depending on compiler optimizations (e.g. object keys
-// are not guaranteed to be sorted). This function consistently produces the same
-// string, if passed an object of the same shape. If the outpuf of this function
-// changes from one release to another, migrations will run, so it's important
-// that this function remains stable across releases.
-function canonicalStringify(obj: any): string {
- if (Array.isArray(obj)) {
- return `[${obj.map(canonicalStringify)}]`;
- }
-
- if (!obj || typeof obj !== 'object') {
- return JSON.stringify(obj);
- }
-
- const keys = Object.keys(obj);
-
- // This is important for properly handling Date
- if (!keys.length) {
- return JSON.stringify(obj);
- }
-
- const sortedObj = keys
- .sort((a, b) => a.localeCompare(b))
- .map((k) => `${k}: ${canonicalStringify(obj[k])}`);
-
- return `{${sortedObj}}`;
-}
-
-// Convert an object's values to md5 hash strings
-function md5Values(obj: any) {
- return mapValues(obj, md5Object);
-}
diff --git a/src/core/server/integration_tests/saved_objects/service/lib/bulk_update.test.ts b/src/core/server/integration_tests/saved_objects/service/lib/bulk_update.test.ts
index dc620f87ea55b..98af19ec5c9d0 100644
--- a/src/core/server/integration_tests/saved_objects/service/lib/bulk_update.test.ts
+++ b/src/core/server/integration_tests/saved_objects/service/lib/bulk_update.test.ts
@@ -30,7 +30,12 @@ describe('SOR - bulk_update API', () => {
esServer = await startElasticsearch();
});
- const getType = (version: 'v1' | 'v2'): SavedObjectsType => {
+ afterAll(async () => {
+ await esServer?.stop();
+ await delay(10);
+ });
+
+ const getCrossVersionType = (version: 'v1' | 'v2'): SavedObjectsType => {
const versionMap: SavedObjectsModelVersionMap = {
1: {
changes: [],
@@ -117,16 +122,29 @@ describe('SOR - bulk_update API', () => {
modelVersions: versionOtherMap,
};
};
- afterAll(async () => {
- await esServer?.stop();
- await delay(10);
- });
+
+ const getFullUpdateType = (): SavedObjectsType => {
+ return {
+ name: 'update-test-type',
+ hidden: false,
+ namespaceType: 'single',
+ mappings: {
+ dynamic: false,
+ properties: {},
+ },
+ management: {
+ importableAndExportable: true,
+ },
+ switchToModelVersionAt: '8.10.0',
+ modelVersions: {},
+ };
+ };
const setup = async () => {
const { runMigrations: runMigrationV1, savedObjectsRepository: repositoryV1 } =
await getKibanaMigratorTestKit({
...getBaseMigratorParams(),
- types: [getType('v1'), getOtherType('v1')],
+ types: [getCrossVersionType('v1'), getOtherType('v1')],
});
await runMigrationV1();
@@ -136,7 +154,7 @@ describe('SOR - bulk_update API', () => {
client: esClient,
} = await getKibanaMigratorTestKit({
...getBaseMigratorParams(),
- types: [getType('v2'), getOtherType('v2')],
+ types: [getCrossVersionType('v2'), getOtherType('v2'), getFullUpdateType()],
});
await runMigrationV2();
@@ -225,6 +243,49 @@ describe('SOR - bulk_update API', () => {
);
});
+ it('supports update with attributes override', async () => {
+ const { repositoryV2: repository } = await setup();
+
+ await repository.create('update-test-type', { foo: 'bar' }, { id: 'my-id' });
+
+ let docs = await repository.bulkGet([{ type: 'update-test-type', id: 'my-id' }]);
+ const [doc] = docs.saved_objects;
+
+ expect(doc.attributes).toEqual({
+ foo: 'bar',
+ });
+
+ await repository.bulkUpdate([
+ { type: 'update-test-type', id: doc.id, attributes: { hello: 'dolly' } },
+ ]);
+
+ docs = await repository.bulkGet([{ type: 'update-test-type', id: 'my-id' }]);
+ const [doc1] = docs.saved_objects;
+
+ expect(doc1.attributes).toEqual({
+ foo: 'bar',
+ hello: 'dolly',
+ });
+
+ await repository.bulkUpdate([
+ {
+ type: 'update-test-type',
+ id: doc1.id,
+ attributes: {
+ over: '9000',
+ },
+ mergeAttributes: false,
+ },
+ ]);
+
+ docs = await repository.bulkGet([{ type: 'update-test-type', id: 'my-id' }]);
+ const [doc2] = docs.saved_objects;
+
+ expect(doc2.attributes).toEqual({
+ over: '9000',
+ });
+ });
+
const fetchDoc = async (client: ElasticsearchClient, type: string, id: string) => {
return await client.get({
index: '.kibana',
diff --git a/src/core/server/integration_tests/saved_objects/service/lib/update.test.ts b/src/core/server/integration_tests/saved_objects/service/lib/update.test.ts
index e2b7d91355d81..f9205086ceb2e 100644
--- a/src/core/server/integration_tests/saved_objects/service/lib/update.test.ts
+++ b/src/core/server/integration_tests/saved_objects/service/lib/update.test.ts
@@ -30,7 +30,7 @@ describe('SOR - update API', () => {
esServer = await startElasticsearch();
});
- const getType = (version: 'v1' | 'v2'): SavedObjectsType => {
+ const getCrossVersionType = (version: 'v1' | 'v2'): SavedObjectsType => {
const versionMap: SavedObjectsModelVersionMap = {
1: {
changes: [],
@@ -74,6 +74,23 @@ describe('SOR - update API', () => {
};
};
+ const getFullUpdateType = (): SavedObjectsType => {
+ return {
+ name: 'update-test-type',
+ hidden: false,
+ namespaceType: 'single',
+ mappings: {
+ dynamic: false,
+ properties: {},
+ },
+ management: {
+ importableAndExportable: true,
+ },
+ switchToModelVersionAt: '8.10.0',
+ modelVersions: {},
+ };
+ };
+
afterAll(async () => {
await esServer?.stop();
await delay(10);
@@ -83,7 +100,7 @@ describe('SOR - update API', () => {
const { runMigrations: runMigrationV1, savedObjectsRepository: repositoryV1 } =
await getKibanaMigratorTestKit({
...getBaseMigratorParams(),
- types: [getType('v1')],
+ types: [getCrossVersionType('v1'), getFullUpdateType()],
});
await runMigrationV1();
@@ -93,7 +110,7 @@ describe('SOR - update API', () => {
client: esClient,
} = await getKibanaMigratorTestKit({
...getBaseMigratorParams(),
- types: [getType('v2')],
+ types: [getCrossVersionType('v2'), getFullUpdateType()],
});
await runMigrationV2();
@@ -145,6 +162,49 @@ describe('SOR - update API', () => {
);
});
+ it('supports update with attributes override', async () => {
+ const { repositoryV2: repository } = await setup();
+
+ await repository.create('update-test-type', { foo: 'bar' }, { id: 'my-id' });
+
+ let document = await repository.get('update-test-type', 'my-id');
+
+ expect(document.attributes).toEqual({
+ foo: 'bar',
+ });
+
+ await repository.update(
+ 'update-test-type',
+ 'my-id',
+ {
+ hello: 'dolly',
+ },
+ { mergeAttributes: true }
+ );
+
+ document = await repository.get('update-test-type', 'my-id');
+
+ expect(document.attributes).toEqual({
+ foo: 'bar',
+ hello: 'dolly',
+ });
+
+ await repository.update(
+ 'update-test-type',
+ 'my-id',
+ {
+ over: '9000',
+ },
+ { mergeAttributes: false }
+ );
+
+ document = await repository.get('update-test-type', 'my-id');
+
+ expect(document.attributes).toEqual({
+ over: '9000',
+ });
+ });
+
const fetchDoc = async (client: ElasticsearchClient, type: string, id: string) => {
return await client.get({
index: '.kibana',
diff --git a/src/dev/build/args.test.ts b/src/dev/build/args.test.ts
index 1bb50cf3cd9c1..85f799daa8a0d 100644
--- a/src/dev/build/args.test.ts
+++ b/src/dev/build/args.test.ts
@@ -31,6 +31,7 @@ it('build default and oss dist for current platform, without packages, by defaul
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": false,
+ "createDockerChainguard": false,
"createDockerCloud": false,
"createDockerContexts": true,
"createDockerFIPS": false,
@@ -71,6 +72,7 @@ it('builds packages if --all-platforms is passed', () => {
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": true,
+ "createDockerChainguard": true,
"createDockerCloud": true,
"createDockerContexts": true,
"createDockerFIPS": true,
@@ -111,6 +113,7 @@ it('limits packages if --rpm passed with --all-platforms', () => {
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": false,
+ "createDockerChainguard": false,
"createDockerCloud": false,
"createDockerContexts": true,
"createDockerFIPS": false,
@@ -151,6 +154,7 @@ it('limits packages if --deb passed with --all-platforms', () => {
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": true,
+ "createDockerChainguard": false,
"createDockerCloud": false,
"createDockerContexts": true,
"createDockerFIPS": false,
@@ -192,6 +196,7 @@ it('limits packages if --docker passed with --all-platforms', () => {
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": false,
+ "createDockerChainguard": true,
"createDockerCloud": true,
"createDockerContexts": true,
"createDockerFIPS": true,
@@ -240,6 +245,7 @@ it('limits packages if --docker passed with --skip-docker-ubi and --all-platform
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": false,
+ "createDockerChainguard": true,
"createDockerCloud": true,
"createDockerContexts": true,
"createDockerFIPS": true,
@@ -281,6 +287,7 @@ it('limits packages if --all-platforms passed with --skip-docker-ubuntu', () =>
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": true,
+ "createDockerChainguard": true,
"createDockerCloud": true,
"createDockerContexts": true,
"createDockerFIPS": true,
@@ -322,6 +329,7 @@ it('limits packages if --all-platforms passed with --skip-docker-fips', () => {
"createArchives": true,
"createCdnAssets": true,
"createDebPackage": true,
+ "createDockerChainguard": true,
"createDockerCloud": true,
"createDockerContexts": true,
"createDockerFIPS": false,
diff --git a/src/dev/build/args.ts b/src/dev/build/args.ts
index 0996a8688ef22..9526d10eb2ae1 100644
--- a/src/dev/build/args.ts
+++ b/src/dev/build/args.ts
@@ -31,6 +31,7 @@ export function readCliArgs(argv: string[]) {
'skip-docker-contexts',
'skip-docker-ubi',
'skip-docker-ubuntu',
+ 'skip-docker-chainguard',
'skip-docker-cloud',
'skip-docker-serverless',
'skip-docker-fips',
@@ -139,6 +140,8 @@ export function readCliArgs(argv: string[]) {
createDebPackage: isOsPackageDesired('deb'),
createDockerUbuntu:
isOsPackageDesired('docker-images') && !Boolean(flags['skip-docker-ubuntu']),
+ createDockerChainguard:
+ isOsPackageDesired('docker-images') && !Boolean(flags['skip-docker-chainguard']),
createDockerCloud: isOsPackageDesired('docker-images') && !Boolean(flags['skip-docker-cloud']),
createDockerServerless:
isOsPackageDesired('docker-images') && !Boolean(flags['skip-docker-serverless']),
diff --git a/src/dev/build/build_distributables.ts b/src/dev/build/build_distributables.ts
index ab9731e4ba112..cc23b57530a68 100644
--- a/src/dev/build/build_distributables.ts
+++ b/src/dev/build/build_distributables.ts
@@ -31,6 +31,7 @@ export interface BuildOptions {
createDebPackage: boolean;
createDockerUBI: boolean;
createDockerUbuntu: boolean;
+ createDockerChainguard: boolean;
createDockerCloud: boolean;
createDockerServerless: boolean;
createDockerContexts: boolean;
@@ -150,6 +151,10 @@ export async function buildDistributables(log: ToolingLog, options: BuildOptions
await run(Tasks.CreateDockerUbuntu);
}
+ if (options.createDockerChainguard) {
+ // control w/ --docker-images or --skip-docker-chainguard or --skip-os-packages
+ await run(Tasks.CreateDockerChainguard);
+ }
if (options.createDockerCloud) {
// control w/ --docker-images and --skip-docker-cloud
if (options.downloadCloudDependencies) {
diff --git a/src/dev/build/cli.ts b/src/dev/build/cli.ts
index e9acd8245af02..86160988c0f72 100644
--- a/src/dev/build/cli.ts
+++ b/src/dev/build/cli.ts
@@ -46,6 +46,7 @@ if (showHelp) {
--skip-cdn-assets {dim Don't build CDN assets}
--skip-docker-ubi {dim Don't build the docker ubi image}
--skip-docker-ubuntu {dim Don't build the docker ubuntu image}
+ --skip-docker-chainguard {dim Don't build the docker chainguard image}
--skip-docker-fips {dim Don't build the docker fips image}
--release {dim Produce a release-ready distributable}
--version-qualifier {dim Suffix version with a qualifier}
diff --git a/src/dev/build/tasks/os_packages/create_os_package_tasks.ts b/src/dev/build/tasks/os_packages/create_os_package_tasks.ts
index e623dd86b9d6f..b71f900986380 100644
--- a/src/dev/build/tasks/os_packages/create_os_package_tasks.ts
+++ b/src/dev/build/tasks/os_packages/create_os_package_tasks.ts
@@ -80,6 +80,27 @@ export const CreateDockerUbuntu: Task = {
},
};
+export const CreateDockerChainguard: Task = {
+ description: 'Creating Docker Chainguard image',
+
+ async run(config, log, build) {
+ await runDockerGenerator(config, log, build, {
+ architecture: 'x64',
+ baseImage: 'chainguard',
+ context: false,
+ image: true,
+ dockerBuildDate,
+ });
+ await runDockerGenerator(config, log, build, {
+ architecture: 'aarch64',
+ baseImage: 'chainguard',
+ context: false,
+ image: true,
+ dockerBuildDate,
+ });
+ },
+};
+
export const CreateDockerServerless: Task = {
description: 'Creating Docker Serverless image',
@@ -161,6 +182,12 @@ export const CreateDockerContexts: Task = {
image: false,
dockerBuildDate,
});
+ await runDockerGenerator(config, log, build, {
+ baseImage: 'chainguard',
+ context: true,
+ image: false,
+ dockerBuildDate,
+ });
await runDockerGenerator(config, log, build, {
baseImage: 'ubi',
context: true,
diff --git a/src/dev/build/tasks/os_packages/docker_generator/run.ts b/src/dev/build/tasks/os_packages/docker_generator/run.ts
index cf2ddd34913b8..a0aed0a71c1f7 100644
--- a/src/dev/build/tasks/os_packages/docker_generator/run.ts
+++ b/src/dev/build/tasks/os_packages/docker_generator/run.ts
@@ -29,7 +29,7 @@ export async function runDockerGenerator(
build: Build,
flags: {
architecture?: string;
- baseImage: 'none' | 'ubi' | 'ubuntu';
+ baseImage: 'none' | 'chainguard' | 'ubi' | 'ubuntu';
context: boolean;
image: boolean;
ironbank?: boolean;
@@ -42,9 +42,12 @@ export async function runDockerGenerator(
let baseImageName = '';
if (flags.baseImage === 'ubuntu') baseImageName = 'ubuntu:20.04';
if (flags.baseImage === 'ubi') baseImageName = 'docker.elastic.co/ubi9/ubi-minimal:latest';
+ if (flags.baseImage === 'chainguard')
+ baseImageName = 'docker.elastic.co/wolfi/chainguard-base:20230214';
let imageFlavor = '';
if (flags.baseImage === 'ubi') imageFlavor += `-ubi`;
+ if (flags.baseImage === 'chainguard') imageFlavor += `-chainguard`;
if (flags.ironbank) imageFlavor += '-ironbank';
if (flags.cloud) imageFlavor += '-cloud';
if (flags.serverless) imageFlavor += '-serverless';
diff --git a/src/dev/build/tasks/os_packages/docker_generator/template_context.ts b/src/dev/build/tasks/os_packages/docker_generator/template_context.ts
index 7734c347edfaa..b6cdd9e549956 100644
--- a/src/dev/build/tasks/os_packages/docker_generator/template_context.ts
+++ b/src/dev/build/tasks/os_packages/docker_generator/template_context.ts
@@ -24,7 +24,7 @@ export interface TemplateContext {
dockerBuildDate: string;
usePublicArtifact?: boolean;
publicArtifactSubdomain: string;
- baseImage: 'none' | 'ubi' | 'ubuntu';
+ baseImage: 'none' | 'ubi' | 'ubuntu' | 'chainguard';
baseImageName: string;
cloud?: boolean;
serverless?: boolean;
diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile b/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile
index 315af54691f4e..d9e67b8389326 100644
--- a/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile
+++ b/src/dev/build/tasks/os_packages/docker_generator/templates/base/Dockerfile
@@ -12,11 +12,14 @@
FROM {{{baseImageName}}} AS builder
{{#ubi}}
-RUN {{packageManager}} install -y findutils tar gzip
+RUN microdnf install -y findutils tar gzip
{{/ubi}}
{{#ubuntu}}
-RUN {{packageManager}} update && DEBIAN_FRONTEND=noninteractive {{packageManager}} install -y curl
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl
{{/ubuntu}}
+{{#chainguard}}
+RUN apk --no-cache add curl
+{{/chainguard}}
{{#usePublicArtifact}}
RUN cd /tmp && \
@@ -32,8 +35,8 @@ COPY {{artifactTarball}} /tmp/kibana.tar.gz
RUN mkdir /usr/share/kibana
WORKDIR /usr/share/kibana
RUN tar \
-# Exclude serverless.yml disabled assets
{{#serverless}}
+# Exclude serverless.yml disabled assets
--exclude=screenshotting-plugin/chromium \
--exclude=screenshotting-plugin/server/assets \
{{/serverless}}
@@ -44,8 +47,33 @@ RUN tar \
# OpenShift does this, for example.
# REF: https://docs.openshift.org/latest/creating_images/guidelines.html
RUN chmod -R g=u /usr/share/kibana
-{{#cloud}}
+# Add an init process, check the checksum to make sure it's a match
+RUN set -e ; \
+ TINI_BIN="" ; \
+ case "$(arch)" in \
+ aarch64) \
+ TINI_BIN='tini-arm64' ; \
+ ;; \
+ x86_64) \
+ TINI_BIN='tini-amd64' ; \
+ ;; \
+ *) echo >&2 "Unsupported architecture $(arch)" ; exit 1 ;; \
+ esac ; \
+ TINI_VERSION='v0.19.0' ; \
+ curl --retry 8 -S -L -O "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/${TINI_BIN}" ; \
+ curl --retry 8 -S -L -O "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/${TINI_BIN}.sha256sum" ; \
+ sha256sum -c "${TINI_BIN}.sha256sum" ; \
+ rm "${TINI_BIN}.sha256sum" ; \
+ mv "${TINI_BIN}" /bin/tini ; \
+ chmod +x /bin/tini
+{{^serverless}}
+RUN mkdir -p /usr/share/fonts/local && \
+ curl --retry 8 -S -L -o /usr/share/fonts/local/NotoSansCJK-Regular.ttc https://github.com/googlefonts/noto-cjk/raw/NotoSansV2.001/NotoSansCJK-Regular.ttc && \
+ echo "5dcd1c336cc9344cb77c03a0cd8982ca8a7dc97d620fd6c9c434e02dcb1ceeb3 /usr/share/fonts/local/NotoSansCJK-Regular.ttc" | sha256sum -c -
+{{/serverless}}
+
+{{#cloud}}
COPY {{filebeatTarball}} /tmp/filebeat.tar.gz
COPY {{metricbeatTarball}} /tmp/metricbeat.tar.gz
@@ -65,10 +93,10 @@ EXPOSE 5601
{{#ubi}}
RUN for iter in {1..10}; do \
- {{packageManager}} update --setopt=tsflags=nodocs -y && \
- {{packageManager}} install --setopt=tsflags=nodocs -y \
+ microdnf update --setopt=tsflags=nodocs -y && \
+ microdnf install --setopt=tsflags=nodocs -y \
fontconfig freetype shadow-utils nss findutils {{#fips}}perl make gcc tar {{/fips}}&& \
- {{packageManager}} clean all && exit_code=0 && break || exit_code=$? && echo "{{packageManager}} error: retry $iter in 10s" && \
+ microdnf clean all && exit_code=0 && break || exit_code=$? && echo "microdnf error: retry $iter in 10s" && \
sleep 10; \
done; \
(exit $exit_code)
@@ -76,47 +104,31 @@ RUN for iter in {1..10}; do \
{{#ubuntu}}
RUN for iter in {1..10}; do \
export DEBIAN_FRONTEND=noninteractive && \
- {{packageManager}} update && \
- {{packageManager}} upgrade -y && \
- {{packageManager}} install -y --no-install-recommends \
- fontconfig fonts-liberation libnss3 libfontconfig1 ca-certificates curl && \
- {{packageManager}} clean && \
- rm -rf /var/lib/apt/lists/* && exit_code=0 && break || exit_code=$? && echo "{{packageManager}} error: retry $iter in 10s" && \
+ apt-get update && \
+ apt-get upgrade -y && \
+ apt-get install -y --no-install-recommends \
+ fontconfig libnss3 curl ca-certificates && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/* && exit_code=0 && break || exit_code=$? && echo "apt-get error: retry $iter in 10s" && \
sleep 10; \
done; \
(exit $exit_code)
{{/ubuntu}}
-
-# Add an init process, check the checksum to make sure it's a match
-RUN set -e ; \
- TINI_BIN="" ; \
- case "$(arch)" in \
- aarch64) \
- TINI_BIN='tini-arm64' ; \
- ;; \
- x86_64) \
- TINI_BIN='tini-amd64' ; \
- ;; \
- *) echo >&2 "Unsupported architecture $(arch)" ; exit 1 ;; \
- esac ; \
- TINI_VERSION='v0.19.0' ; \
- curl --retry 8 -S -L -O "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/${TINI_BIN}" ; \
- curl --retry 8 -S -L -O "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/${TINI_BIN}.sha256sum" ; \
- sha256sum -c "${TINI_BIN}.sha256sum" ; \
- rm "${TINI_BIN}.sha256sum" ; \
- mv "${TINI_BIN}" /bin/tini ; \
- chmod +x /bin/tini
-
-RUN mkdir /usr/share/fonts/local
-RUN curl --retry 8 -S -L -o /usr/share/fonts/local/NotoSansCJK-Regular.ttc https://github.com/googlefonts/noto-cjk/raw/NotoSansV2.001/NotoSansCJK-Regular.ttc
-RUN echo "5dcd1c336cc9344cb77c03a0cd8982ca8a7dc97d620fd6c9c434e02dcb1ceeb3 /usr/share/fonts/local/NotoSansCJK-Regular.ttc" | sha256sum -c -
-RUN fc-cache -v
+{{#chainguard}}
+RUN apk --no-cache add bash curl fontconfig libstdc++ freetype nss findutils shadow
+{{/chainguard}}
# Bring in Kibana from the initial stage.
COPY --from=builder --chown=1000:0 /usr/share/kibana /usr/share/kibana
+COPY --from=builder --chown=0:0 /bin/tini /bin/tini
{{#cloud}}
COPY --from=builder --chown=0:0 /opt /opt
{{/cloud}}
+{{^serverless}}
+# Load reporting fonts
+COPY --from=builder --chown=0:0 /usr/share/fonts/local/NotoSansCJK-Regular.ttc /usr/share/fonts/local/NotoSansCJK-Regular.ttc
+RUN fc-cache -v
+{{/serverless}}
WORKDIR /usr/share/kibana
{{#fips}}
diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
index dd35323808d51..b07be8b073747 100755
--- a/src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
+++ b/src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
@@ -16,7 +16,7 @@ function generator(options: TemplateContext) {
const dir = options.ironbank ? 'ironbank' : 'base';
const template = readFileSync(resolve(__dirname, dir, './Dockerfile'));
return Mustache.render(template.toString(), {
- packageManager: options.baseImage === 'ubi' ? 'microdnf' : 'apt-get',
+ chainguard: options.baseImage === 'chainguard',
ubi: options.baseImage === 'ubi',
ubuntu: options.baseImage === 'ubuntu',
opensslLegacyProvider: !(options.cloud || options.serverless || options.fips),
diff --git a/src/plugins/chart_expressions/expression_xy/public/components/__snapshots__/xy_chart.test.tsx.snap b/src/plugins/chart_expressions/expression_xy/public/components/__snapshots__/xy_chart.test.tsx.snap
index 70dabc254ed51..538a4102f09ff 100644
--- a/src/plugins/chart_expressions/expression_xy/public/components/__snapshots__/xy_chart.test.tsx.snap
+++ b/src/plugins/chart_expressions/expression_xy/public/components/__snapshots__/xy_chart.test.tsx.snap
@@ -1142,6 +1142,7 @@ exports[`XYChart component it renders area 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -2691,6 +2692,7 @@ exports[`XYChart component it renders bar 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -4240,6 +4242,7 @@ exports[`XYChart component it renders horizontal bar 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={90}
showLegend={false}
showLegendExtra={false}
@@ -5789,6 +5792,7 @@ exports[`XYChart component it renders line 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -7338,6 +7342,7 @@ exports[`XYChart component it renders stacked area 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -8887,6 +8892,7 @@ exports[`XYChart component it renders stacked bar 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -10436,6 +10442,7 @@ exports[`XYChart component it renders stacked horizontal bar 1`] = `
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={90}
showLegend={false}
showLegendExtra={false}
@@ -12015,6 +12022,7 @@ exports[`XYChart component split chart should render split chart if both, splitR
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -13802,6 +13810,7 @@ exports[`XYChart component split chart should render split chart if splitColumnA
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
@@ -15582,6 +15591,7 @@ exports[`XYChart component split chart should render split chart if splitRowAcce
onElementClick={[Function]}
onPointerUpdate={[Function]}
onRenderChange={[Function]}
+ pointerUpdateDebounce={0}
rotation={0}
showLegend={false}
showLegendExtra={false}
diff --git a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx
index 21025a09c4e47..ed4f6ffad6a73 100644
--- a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx
+++ b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.tsx
@@ -812,6 +812,7 @@ export function XYChart({
/>
}
onRenderChange={onRenderChange}
+ pointerUpdateDebounce={0} // use the `handleCursorUpdate` debounce time
onPointerUpdate={syncCursor ? handleCursorUpdate : undefined}
externalPointerEvents={{
tooltip: { visible: syncTooltips, placement: Placement.Right },
diff --git a/src/plugins/charts/public/services/active_cursor/use_active_cursor.ts b/src/plugins/charts/public/services/active_cursor/use_active_cursor.ts
index 3bb40b33b566c..e06c6096664c8 100644
--- a/src/plugins/charts/public/services/active_cursor/use_active_cursor.ts
+++ b/src/plugins/charts/public/services/active_cursor/use_active_cursor.ts
@@ -18,7 +18,7 @@ import { parseSyncOptions } from './active_cursor_utils';
import type { ActiveCursor } from './active_cursor';
import type { ActiveCursorSyncOption } from './types';
-const DEFAULT_DEBOUNCE_TIME = 40;
+const DEFAULT_DEBOUNCE_TIME_MS = 8; // don't update more than once per frame but try to avoid skipping frames
export const useActiveCursor = (
activeCursor: ActiveCursor,
@@ -40,7 +40,7 @@ export const useActiveCursor = (
useEffect(() => {
const cursorSubscription = activeCursor.activeCursor$
?.pipe(
- debounceTime(syncOptions.debounce ?? DEFAULT_DEBOUNCE_TIME, animationFrameScheduler),
+ debounceTime(syncOptions.debounce ?? DEFAULT_DEBOUNCE_TIME_MS, animationFrameScheduler),
filter((payload) => {
if (payload.isDateHistogram && isDateHistogram) {
return true;
diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx
index 3a80742615ad2..09da187694989 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx
+++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor.tsx
@@ -74,6 +74,10 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => {
return actionsProvider.current!.getDocumentationLink(docLinkVersion);
}, [docLinkVersion]);
+ const autoIndentCallback = useCallback(async () => {
+ return actionsProvider.current!.autoIndent();
+ }, []);
+
const sendRequestsCallback = useCallback(async () => {
await actionsProvider.current?.sendRequests(toasts, dispatch, trackUiMetric, http);
}, [dispatch, http, toasts, trackUiMetric]);
@@ -125,7 +129,7 @@ export const MonacoEditor = ({ initialTextValue }: EditorProps) => {
{}}
+ autoIndent={autoIndentCallback}
notifications={notifications}
/>
diff --git a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
index 38fa543b36323..de9c2289c8a29 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/monaco_editor_actions_provider.ts
@@ -34,10 +34,13 @@ import {
SELECTED_REQUESTS_CLASSNAME,
stringifyRequest,
trackSentRequests,
+ getAutoIndentedRequests,
} from './utils';
import type { AdjustedParsedRequest } from './types';
+const AUTO_INDENTATION_ACTION_LABEL = 'Apply indentations';
+
export class MonacoEditorActionsProvider {
private parsedRequestsProvider: ConsoleParsedRequestsProvider;
private highlightedLines: monaco.editor.IEditorDecorationsCollection;
@@ -343,4 +346,57 @@ export class MonacoEditorActionsProvider {
): monaco.languages.ProviderResult {
return this.getSuggestions(model, position, context);
}
+
+ /*
+ This function returns the text in the provided range.
+ If no range is provided, it returns all text in the editor.
+ */
+ private getTextInRange(selectionRange?: monaco.IRange): string {
+ const model = this.editor.getModel();
+ if (!model) {
+ return '';
+ }
+ if (selectionRange) {
+ const { startLineNumber, startColumn, endLineNumber, endColumn } = selectionRange;
+ return model.getValueInRange({
+ startLineNumber,
+ startColumn,
+ endLineNumber,
+ endColumn,
+ });
+ }
+ // If no range is provided, return all text in the editor
+ return model.getValue();
+ }
+
+ /**
+ * This function applies indentations to the request in the selected text.
+ */
+ public async autoIndent() {
+ const parsedRequests = await this.getSelectedParsedRequests();
+ const selectionStartLineNumber = parsedRequests[0].startLineNumber;
+ const selectionEndLineNumber = parsedRequests[parsedRequests.length - 1].endLineNumber;
+ const selectedRange = new monaco.Range(
+ selectionStartLineNumber,
+ 1,
+ selectionEndLineNumber,
+ this.editor.getModel()?.getLineMaxColumn(selectionEndLineNumber) ?? 1
+ );
+
+ if (parsedRequests.length < 1) {
+ return;
+ }
+
+ const selectedText = this.getTextInRange(selectedRange);
+ const allText = this.getTextInRange();
+
+ const autoIndentedText = getAutoIndentedRequests(parsedRequests, selectedText, allText);
+
+ this.editor.executeEdits(AUTO_INDENTATION_ACTION_LABEL, [
+ {
+ range: selectedRange,
+ text: autoIndentedText,
+ },
+ ]);
+ }
}
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/index.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/index.ts
index 2b117bcfd558d..a0de7b461e99a 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/index.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/index.ts
@@ -14,6 +14,7 @@ export {
replaceRequestVariables,
getCurlRequest,
trackSentRequests,
+ getAutoIndentedRequests,
} from './requests_utils';
export {
getDocumentationLinkFromAutocomplete,
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.test.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.test.ts
index 14235e57c6f01..f07a6db3a6881 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.test.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.test.ts
@@ -7,6 +7,7 @@
*/
import {
+ getAutoIndentedRequests,
getCurlRequest,
replaceRequestVariables,
stringifyRequest,
@@ -160,4 +161,195 @@ describe('requests_utils', () => {
expect(mockMetricsTracker.count).toHaveBeenNthCalledWith(2, 'POST__test');
});
});
+
+ describe('getAutoIndentedRequests', () => {
+ const sampleEditorTextLines = [
+ ' ', // line 1
+ 'GET _search ', // line 2
+ '{ ', // line 3
+ ' "query": { ', // line 4
+ ' "match_all": { } ', // line 5
+ ' } ', // line 6
+ ' } ', // line 7
+ ' ', // line 8
+ '// single comment before Request 2 ', // line 9
+ ' GET _all ', // line 10
+ ' ', // line 11
+ '/* ', // line 12
+ ' multi-line comment before Request 3', // line 13
+ '*/ ', // line 14
+ 'POST /_bulk ', // line 15
+ '{ ', // line 16
+ ' "index":{ ', // line 17
+ ' "_index":"books" ', // line 18
+ ' } ', // line 19
+ ' } ', // line 20
+ '{ ', // line 21
+ '"name":"1984" ', // line 22
+ '}{"name":"Atomic habits"} ', // line 23
+ ' ', // line 24
+ 'GET _search // test comment ', // line 25
+ '{ ', // line 26
+ ' "query": { ', // line 27
+ ' "match_all": { } // comment', // line 28
+ ' } ', // line 29
+ '} ', // line 30
+ ' // some comment ', // line 31
+ ' ', // line 32
+ ];
+
+ const TEST_REQUEST_1 = {
+ method: 'GET',
+ url: '_search',
+ data: [{ query: { match_all: {} } }],
+ // Offsets are with respect to the sample editor text
+ startLineNumber: 2,
+ endLineNumber: 7,
+ startOffset: 1,
+ endOffset: 36,
+ };
+
+ const TEST_REQUEST_2 = {
+ method: 'GET',
+ url: '_all',
+ data: [],
+ // Offsets are with respect to the sample editor text
+ startLineNumber: 10,
+ endLineNumber: 10,
+ startOffset: 1,
+ endOffset: 36,
+ };
+
+ const TEST_REQUEST_3 = {
+ method: 'POST',
+ url: '/_bulk',
+ // Multi-data
+ data: [{ index: { _index: 'books' } }, { name: '1984' }, { name: 'Atomic habits' }],
+ // Offsets are with respect to the sample editor text
+ startLineNumber: 15,
+ endLineNumber: 23,
+ startOffset: 1,
+ endOffset: 36,
+ };
+
+ const TEST_REQUEST_4 = {
+ method: 'GET',
+ url: '_search',
+ data: [{ query: { match_all: {} } }],
+ // Offsets are with respect to the sample editor text
+ startLineNumber: 24,
+ endLineNumber: 30,
+ startOffset: 1,
+ endOffset: 36,
+ };
+
+ it('correctly auto-indents a single request with data', () => {
+ const formattedData = getAutoIndentedRequests(
+ [TEST_REQUEST_1],
+ sampleEditorTextLines
+ .slice(TEST_REQUEST_1.startLineNumber - 1, TEST_REQUEST_1.endLineNumber)
+ .join('\n'),
+ sampleEditorTextLines.join('\n')
+ );
+ const expectedResultLines = [
+ 'GET _search',
+ '{',
+ ' "query": {',
+ ' "match_all": {}',
+ ' }',
+ '}',
+ ];
+
+ expect(formattedData).toBe(expectedResultLines.join('\n'));
+ });
+
+ it('correctly auto-indents a single request with no data', () => {
+ const formattedData = getAutoIndentedRequests(
+ [TEST_REQUEST_2],
+ sampleEditorTextLines
+ .slice(TEST_REQUEST_2.startLineNumber - 1, TEST_REQUEST_2.endLineNumber)
+ .join('\n'),
+ sampleEditorTextLines.join('\n')
+ );
+ const expectedResult = 'GET _all';
+
+ expect(formattedData).toBe(expectedResult);
+ });
+
+ it('correctly auto-indents a single request with multiple data', () => {
+ const formattedData = getAutoIndentedRequests(
+ [TEST_REQUEST_3],
+ sampleEditorTextLines
+ .slice(TEST_REQUEST_3.startLineNumber - 1, TEST_REQUEST_3.endLineNumber)
+ .join('\n'),
+ sampleEditorTextLines.join('\n')
+ );
+ const expectedResultLines = [
+ 'POST /_bulk',
+ '{',
+ ' "index": {',
+ ' "_index": "books"',
+ ' }',
+ '}',
+ '{',
+ ' "name": "1984"',
+ '}',
+ '{',
+ ' "name": "Atomic habits"',
+ '}',
+ ];
+
+ expect(formattedData).toBe(expectedResultLines.join('\n'));
+ });
+
+ it('auto-indents multiple request with comments in between', () => {
+ const formattedData = getAutoIndentedRequests(
+ [TEST_REQUEST_1, TEST_REQUEST_2, TEST_REQUEST_3],
+ sampleEditorTextLines.slice(1, 23).join('\n'),
+ sampleEditorTextLines.join('\n')
+ );
+ const expectedResultLines = [
+ 'GET _search',
+ '{',
+ ' "query": {',
+ ' "match_all": {}',
+ ' }',
+ '}',
+ '',
+ '// single comment before Request 2',
+ 'GET _all',
+ '',
+ '/*',
+ 'multi-line comment before Request 3',
+ '*/',
+ 'POST /_bulk',
+ '{',
+ ' "index": {',
+ ' "_index": "books"',
+ ' }',
+ '}',
+ '{',
+ ' "name": "1984"',
+ '}',
+ '{',
+ ' "name": "Atomic habits"',
+ '}',
+ ];
+
+ expect(formattedData).toBe(expectedResultLines.join('\n'));
+ });
+
+ it('does not auto-indent a request with comments', () => {
+ const requestText = sampleEditorTextLines
+ .slice(TEST_REQUEST_4.startLineNumber - 1, TEST_REQUEST_4.endLineNumber)
+ .join('\n');
+ const formattedData = getAutoIndentedRequests(
+ [TEST_REQUEST_4],
+ requestText,
+ sampleEditorTextLines.join('\n')
+ );
+
+ expect(formattedData).toBe(requestText);
+ });
+ });
});
diff --git a/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.ts b/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.ts
index 7f9babb333e89..bf9c6074bb20a 100644
--- a/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.ts
+++ b/src/plugins/console/public/application/containers/editor/monaco/utils/requests_utils.ts
@@ -13,6 +13,7 @@ import type { DevToolsVariable } from '../../../../components';
import type { EditorRequest } from '../types';
import { variableTemplateRegex } from './constants';
import { removeTrailingWhitespaces } from './tokens_utils';
+import { AdjustedParsedRequest } from '../types';
/*
* This function stringifies and normalizes the parsed request:
@@ -130,3 +131,64 @@ const replaceVariables = (text: string, variables: DevToolsVariable[]): string =
}
return text;
};
+
+const containsComments = (text: string) => {
+ return text.indexOf('//') >= 0 || text.indexOf('/*') >= 0;
+};
+
+/**
+ * This function takes a string containing unformatted Console requests and
+ * returns a text in which the requests are auto-indented.
+ * @param requests The list of {@link AdjustedParsedRequest} that are in the selected text in the editor.
+ * @param selectedText The selected text in the editor.
+ * @param allText The whole text input in the editor.
+ */
+export const getAutoIndentedRequests = (
+ requests: AdjustedParsedRequest[],
+ selectedText: string,
+ allText: string
+): string => {
+ const selectedTextLines = selectedText.split(`\n`);
+ const allTextLines = allText.split(`\n`);
+ const formattedTextLines: string[] = [];
+
+ let currentLineIndex = 0;
+ let currentRequestIndex = 0;
+
+ while (currentLineIndex < selectedTextLines.length) {
+ const request = requests[currentRequestIndex];
+ // Check if the current line is the start of the next request
+ if (
+ request &&
+ selectedTextLines[currentLineIndex] === allTextLines[request.startLineNumber - 1]
+ ) {
+ // Start of a request
+ const requestLines = allTextLines.slice(request.startLineNumber - 1, request.endLineNumber);
+
+ if (requestLines.some((line) => containsComments(line))) {
+ // If request has comments, add it as it is - without formatting
+ // TODO: Format requests with comments
+ formattedTextLines.push(...requestLines);
+ } else {
+ // If no comments, add stringified parsed request
+ const stringifiedRequest = stringifyRequest(request);
+ const firstLine = stringifiedRequest.method + ' ' + stringifiedRequest.url;
+ formattedTextLines.push(firstLine);
+
+ if (stringifiedRequest.data && stringifiedRequest.data.length > 0) {
+ formattedTextLines.push(...stringifiedRequest.data);
+ }
+ }
+
+ currentLineIndex = currentLineIndex + requestLines.length;
+ currentRequestIndex++;
+ } else {
+ // Current line is a comment or whitespaces
+ // Trim white spaces and add it to the formatted text
+ formattedTextLines.push(selectedTextLines[currentLineIndex].trim());
+ currentLineIndex++;
+ }
+ }
+
+ return formattedTextLines.join('\n');
+};
diff --git a/src/plugins/dashboard/public/dashboard_app/top_nav/share/show_share_modal.tsx b/src/plugins/dashboard/public/dashboard_app/top_nav/share/show_share_modal.tsx
index fd832d5da55b8..e654a8aad29e5 100644
--- a/src/plugins/dashboard/public/dashboard_app/top_nav/share/show_share_modal.tsx
+++ b/src/plugins/dashboard/public/dashboard_app/top_nav/share/show_share_modal.tsx
@@ -176,6 +176,11 @@ export function ShowShareModal({
shareableUrl,
objectId: savedObjectId,
objectType: 'dashboard',
+ objectTypeMeta: {
+ title: i18n.translate('dashboard.share.shareModal.title', {
+ defaultMessage: 'Share this dashboard',
+ }),
+ },
sharingData: {
title:
dashboardTitle ||
diff --git a/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts b/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts
index 3306ac90ab288..600f06f315952 100644
--- a/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts
+++ b/src/plugins/data/public/search/search_interceptor/search_interceptor.test.ts
@@ -362,27 +362,12 @@ describe('SearchInterceptor', () => {
});
test('should DELETE a running async search on async timeout after first response', async () => {
- const responses = [
- {
- time: 10,
- value: {
- isPartial: true,
- isRunning: true,
- rawResponse: {},
- id: 1,
- },
- },
- {
- time: 2000,
- value: {
- isPartial: false,
- isRunning: false,
- rawResponse: {},
- id: 1,
- },
- },
- ];
- mockFetchImplementation(responses);
+ fetchMock.mockResolvedValue({
+ isPartial: true,
+ isRunning: true,
+ rawResponse: {},
+ id: 1,
+ });
const response = searchInterceptor.search({}, { pollInterval: 0 });
response.subscribe({ next, error });
@@ -394,36 +379,21 @@ describe('SearchInterceptor', () => {
expect(fetchMock).toHaveBeenCalled();
expect(mockCoreSetup.http.delete).not.toHaveBeenCalled();
- // Long enough to reach the timeout but not long enough to reach the next response
+ // Long enough to reach the timeout
await timeTravel(1000);
- // Expect 3 calls to fetch - the two polls and a final request for the results before deleting
- expect(fetchMock).toHaveBeenCalledTimes(3);
expect(mockCoreSetup.http.delete).toHaveBeenCalledTimes(1);
});
test('should return the last response on async timeout', async () => {
- const responses = [
- {
- time: 10,
- value: {
- isPartial: true,
- isRunning: true,
- rawResponse: {},
- id: 1,
- },
+ fetchMock.mockResolvedValue({
+ isPartial: true,
+ isRunning: true,
+ rawResponse: {
+ foo: 'bar',
},
- {
- time: 2000,
- value: {
- isPartial: false,
- isRunning: false,
- rawResponse: {},
- id: 1,
- },
- },
- ];
- mockFetchImplementation(responses);
+ id: 1,
+ });
const response = searchInterceptor.search({}, { pollInterval: 0 });
response.subscribe({ next, error });
@@ -438,18 +408,15 @@ describe('SearchInterceptor', () => {
// Long enough to reach the timeout but not long enough to reach the next response
await timeTravel(1000);
- expect(next).toHaveBeenCalledTimes(2);
+ expect(next).toHaveBeenCalledTimes(3);
expect(next.mock.calls[1]).toMatchInlineSnapshot(`
Array [
Object {
"id": 1,
"isPartial": true,
- "isRunning": false,
- "meta": Object {
- "size": 10,
- },
+ "isRunning": true,
"rawResponse": Object {
- "timed_out": true,
+ "foo": "bar",
},
},
]
diff --git a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts
index ec0585fe8469e..7f54c63592b14 100644
--- a/src/plugins/data/public/search/search_interceptor/search_interceptor.ts
+++ b/src/plugins/data/public/search/search_interceptor/search_interceptor.ts
@@ -358,7 +358,8 @@ export class SearchInterceptor {
);
const cancel = async () => {
- if (!id || isSavedToBackground) return;
+ // If the request times out, we handle cancellation after we make the last call to retrieve the results
+ if (!id || isSavedToBackground || searchAbortController.isTimeout()) return;
try {
await sendCancelRequest();
} catch (e) {
@@ -400,9 +401,22 @@ export class SearchInterceptor {
: response;
}),
catchError((e: Error) => {
- searchTracker?.error();
- cancel();
- return throwError(e);
+ // If we aborted (search:timeout advanced setting) and there was a partial response, return it instead of just erroring out
+ if (searchAbortController.isTimeout()) {
+ return from(
+ this.runSearch({ id, ...request }, { ...options, retrieveResults: true })
+ ).pipe(
+ map(toPartialResponseAfterTimeout),
+ tap(async () => {
+ await sendCancelRequest();
+ this.handleSearchError(e, request?.params?.body ?? {}, options, true);
+ })
+ );
+ } else {
+ searchTracker?.error();
+ cancel();
+ return throwError(e);
+ }
}),
finalize(() => {
searchAbortController.cleanup();
@@ -534,17 +548,6 @@ export class SearchInterceptor {
return response$.pipe(
takeUntil(aborted$),
catchError((e) => {
- // If we aborted (search:timeout advanced setting) and there was a partial response, return it instead of just erroring out
- if (searchAbortController.isTimeout()) {
- return from(
- this.runSearch(request, { ...searchOptions, retrieveResults: true })
- ).pipe(
- tap(() =>
- this.handleSearchError(e, request?.params?.body ?? {}, searchOptions, true)
- ),
- map(toPartialResponseAfterTimeout)
- );
- }
return throwError(
this.handleSearchError(
e,
diff --git a/src/plugins/data/server/search/routes/search.ts b/src/plugins/data/server/search/routes/search.ts
index ef9b39f2f6b99..7d05c27cd5781 100644
--- a/src/plugins/data/server/search/routes/search.ts
+++ b/src/plugins/data/server/search/routes/search.ts
@@ -36,6 +36,7 @@ export function registerSearchRoute(router: DataPluginRouter): void {
sessionId: schema.maybe(schema.string()),
isStored: schema.maybe(schema.boolean()),
isRestore: schema.maybe(schema.boolean()),
+ retrieveResults: schema.maybe(schema.boolean()),
},
{ unknowns: 'allow' }
),
@@ -48,6 +49,7 @@ export function registerSearchRoute(router: DataPluginRouter): void {
sessionId,
isStored,
isRestore,
+ retrieveResults,
...searchRequest
} = request.body;
const { strategy, id } = request.params;
@@ -65,6 +67,7 @@ export function registerSearchRoute(router: DataPluginRouter): void {
sessionId,
isStored,
isRestore,
+ retrieveResults,
}
)
.pipe(first())
diff --git a/src/plugins/discover/common/app_locator.test.ts b/src/plugins/discover/common/app_locator.test.ts
index 78d0d32fd6ed2..9b9c328689ffc 100644
--- a/src/plugins/discover/common/app_locator.test.ts
+++ b/src/plugins/discover/common/app_locator.test.ts
@@ -15,6 +15,7 @@ import { mockStorage } from '@kbn/kibana-utils-plugin/public/storage/hashed_item
import { FilterStateStore } from '@kbn/es-query';
import { DiscoverAppLocatorDefinition } from './app_locator';
import { SerializableRecord } from '@kbn/utility-types';
+import { createDataViewDataSource, createEsqlDataSource } from './data_sources';
const dataViewId: string = 'c367b774-a4c2-11ea-bb37-0242ac130002';
const savedSearchId: string = '571aaf70-4c88-11e8-b3d7-01146121b73d';
@@ -63,7 +64,7 @@ describe('Discover url generator', () => {
const { _a, _g } = getStatesFromKbnUrl(path, ['_a', '_g']);
expect(_a).toEqual({
- index: dataViewId,
+ dataSource: createDataViewDataSource({ dataViewId }),
});
expect(_g).toEqual(undefined);
});
@@ -104,6 +105,25 @@ describe('Discover url generator', () => {
expect(_g).toEqual(undefined);
});
+ test('can specify an ES|QL query', async () => {
+ const { locator } = await setup();
+ const { path } = await locator.getLocation({
+ dataViewId,
+ query: {
+ esql: 'SELECT * FROM test',
+ },
+ });
+ const { _a, _g } = getStatesFromKbnUrl(path, ['_a', '_g']);
+
+ expect(_a).toEqual({
+ dataSource: createEsqlDataSource(),
+ query: {
+ esql: 'SELECT * FROM test',
+ },
+ });
+ expect(_g).toEqual(undefined);
+ });
+
test('can specify local and global filters', async () => {
const { locator } = await setup();
const { path } = await locator.getLocation({
diff --git a/src/plugins/discover/common/app_locator.ts b/src/plugins/discover/common/app_locator.ts
index 144f052c2a44d..fe39f92b79d22 100644
--- a/src/plugins/discover/common/app_locator.ts
+++ b/src/plugins/discover/common/app_locator.ts
@@ -7,13 +7,15 @@
*/
import type { SerializableRecord } from '@kbn/utility-types';
-import type { Filter, TimeRange, Query, AggregateQuery } from '@kbn/es-query';
+import { Filter, TimeRange, Query, AggregateQuery, isOfAggregateQueryType } from '@kbn/es-query';
import type { GlobalQueryStateFromUrl, RefreshInterval } from '@kbn/data-plugin/public';
import type { LocatorDefinition, LocatorPublic } from '@kbn/share-plugin/public';
import type { DiscoverGridSettings } from '@kbn/saved-search-plugin/common';
import { DataViewSpec } from '@kbn/data-views-plugin/common';
import { setStateToKbnUrl } from '@kbn/kibana-utils-plugin/common';
import { VIEW_MODE } from './constants';
+import type { DiscoverAppState } from '../public';
+import { createDataViewDataSource, createEsqlDataSource } from './data_sources';
export const DISCOVER_APP_LOCATOR = 'DISCOVER_APP_LOCATOR';
@@ -150,32 +152,21 @@ export class DiscoverAppLocatorDefinition implements LocatorDefinition = {};
const queryState: GlobalQueryStateFromUrl = {};
const { isFilterPinned } = await import('@kbn/es-query');
if (query) appState.query = query;
if (filters && filters.length) appState.filters = filters?.filter((f) => !isFilterPinned(f));
- if (indexPatternId) appState.index = indexPatternId;
- if (dataViewId) appState.index = dataViewId;
+ if (indexPatternId)
+ appState.dataSource = createDataViewDataSource({ dataViewId: indexPatternId });
+ if (dataViewId) appState.dataSource = createDataViewDataSource({ dataViewId });
+ if (isOfAggregateQueryType(query)) appState.dataSource = createEsqlDataSource();
if (columns) appState.columns = columns;
if (grid) appState.grid = grid;
if (savedQuery) appState.savedQuery = savedQuery;
if (sort) appState.sort = sort;
if (interval) appState.interval = interval;
-
if (timeRange) queryState.time = timeRange;
if (filters && filters.length) queryState.filters = filters?.filter((f) => isFilterPinned(f));
if (refreshInterval) queryState.refreshInterval = refreshInterval;
diff --git a/src/plugins/discover/common/data_sources/index.ts b/src/plugins/discover/common/data_sources/index.ts
new file mode 100644
index 0000000000000..78615e777bc3e
--- /dev/null
+++ b/src/plugins/discover/common/data_sources/index.ts
@@ -0,0 +1,10 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export * from './utils';
+export * from './types';
diff --git a/src/plugins/discover/common/data_sources/types.ts b/src/plugins/discover/common/data_sources/types.ts
new file mode 100644
index 0000000000000..aee1aa4cc68d1
--- /dev/null
+++ b/src/plugins/discover/common/data_sources/types.ts
@@ -0,0 +1,23 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export enum DataSourceType {
+ DataView = 'dataView',
+ Esql = 'esql',
+}
+
+export interface DataViewDataSource {
+ type: DataSourceType.DataView;
+ dataViewId: string;
+}
+
+export interface EsqlDataSource {
+ type: DataSourceType.Esql;
+}
+
+export type DiscoverDataSource = DataViewDataSource | EsqlDataSource;
diff --git a/src/plugins/discover/common/data_sources/utils.ts b/src/plugins/discover/common/data_sources/utils.ts
new file mode 100644
index 0000000000000..4bf8b0fcf3678
--- /dev/null
+++ b/src/plugins/discover/common/data_sources/utils.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { DataSourceType, DataViewDataSource, DiscoverDataSource, EsqlDataSource } from './types';
+
+export const createDataViewDataSource = ({
+ dataViewId,
+}: {
+ dataViewId: string;
+}): DataViewDataSource => ({
+ type: DataSourceType.DataView,
+ dataViewId,
+});
+
+export const createEsqlDataSource = (): EsqlDataSource => ({
+ type: DataSourceType.Esql,
+});
+
+export const isDataSourceType = (
+ dataSource: DiscoverDataSource | undefined,
+ type: T
+): dataSource is Extract => dataSource?.type === type;
diff --git a/src/plugins/discover/common/data_types/logs/constants.ts b/src/plugins/discover/common/data_types/logs/constants.ts
new file mode 100644
index 0000000000000..5726bf8439b8f
--- /dev/null
+++ b/src/plugins/discover/common/data_types/logs/constants.ts
@@ -0,0 +1,65 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { fieldConstants } from '@kbn/discover-utils';
+import { SmartFieldGridColumnOptions } from './display_options';
+
+export * from '@kbn/discover-utils/src/field_constants';
+
+export const LOGS_EXPLORER_PROFILE_ID = 'logs-explorer';
+
+// Virtual column fields
+export const CONTENT_FIELD = 'content';
+export const RESOURCE_FIELD = 'resource';
+
+// Sizing
+export const DATA_GRID_COLUMN_WIDTH_SMALL = 240;
+export const DATA_GRID_COLUMN_WIDTH_MEDIUM = 320;
+export const ACTIONS_COLUMN_WIDTH = 80;
+
+export const RESOURCE_FIELD_CONFIGURATION: SmartFieldGridColumnOptions = {
+ type: 'smart-field',
+ smartField: RESOURCE_FIELD,
+ fallbackFields: [fieldConstants.HOST_NAME_FIELD, fieldConstants.SERVICE_NAME_FIELD],
+ width: DATA_GRID_COLUMN_WIDTH_MEDIUM,
+};
+
+export const CONTENT_FIELD_CONFIGURATION: SmartFieldGridColumnOptions = {
+ type: 'smart-field',
+ smartField: CONTENT_FIELD,
+ fallbackFields: [fieldConstants.MESSAGE_FIELD],
+};
+
+export const SMART_FALLBACK_FIELDS = {
+ [CONTENT_FIELD]: CONTENT_FIELD_CONFIGURATION,
+ [RESOURCE_FIELD]: RESOURCE_FIELD_CONFIGURATION,
+};
+
+// UI preferences
+export const DEFAULT_COLUMNS = [RESOURCE_FIELD_CONFIGURATION, CONTENT_FIELD_CONFIGURATION];
+export const DEFAULT_ROWS_PER_PAGE = 100;
+
+// List of prefixes which needs to be filtered out for Display in Content Column
+export const FILTER_OUT_FIELDS_PREFIXES_FOR_CONTENT = [
+ '_', // Filter fields like '_id', '_score'
+ '@timestamp',
+ 'agent.',
+ 'elastic_agent.',
+ 'data_stream.',
+ 'ecs.',
+ 'host.',
+ 'container.',
+ 'cloud.',
+ 'kubernetes.',
+ 'orchestrator.',
+ 'log.',
+ 'service.',
+];
+
+export const DEFAULT_ALLOWED_DATA_VIEWS = ['logs', 'auditbeat', 'filebeat', 'winlogbeat'];
+export const DEFAULT_ALLOWED_LOGS_DATA_VIEWS = ['logs', 'auditbeat', 'filebeat', 'winlogbeat'];
diff --git a/src/plugins/discover/common/data_types/logs/display_options.ts b/src/plugins/discover/common/data_types/logs/display_options.ts
new file mode 100644
index 0000000000000..13c760649bbbe
--- /dev/null
+++ b/src/plugins/discover/common/data_types/logs/display_options.ts
@@ -0,0 +1,14 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+export interface SmartFieldGridColumnOptions {
+ type: 'smart-field';
+ smartField: 'content' | 'resource';
+ fallbackFields: string[];
+ width?: number;
+}
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
index 0fcd292472145..ae4b05f495cfa 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.test.tsx
@@ -25,6 +25,7 @@ import { DiscoverAppState } from '../../state_management/discover_app_state_cont
import { DiscoverCustomization, DiscoverCustomizationProvider } from '../../../../customizations';
import { createCustomizationService } from '../../../../customizations/customization_service';
import { DiscoverGrid } from '../../../../components/discover_grid';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
const customisationService = createCustomizationService();
@@ -39,7 +40,9 @@ async function mountComponent(fetchStatus: FetchStatus, hits: EsHitRecord[]) {
result: hits.map((hit) => buildDataTableRecord(hit, dataViewMock)),
}) as DataDocuments$;
const stateContainer = getDiscoverStateMock({});
- stateContainer.appState.update({ index: dataViewMock.id });
+ stateContainer.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewMock.id! }),
+ });
stateContainer.dataState.data$.documents$ = documents$;
const props = {
@@ -106,17 +109,6 @@ describe('Discover documents layout', () => {
});
test('should render customisations', async () => {
- const customCellRenderer = {
- content: () => Test,
- };
-
- const customGridColumnsConfiguration = {
- content: () => ({
- id: 'content',
- displayText: Column,
- }),
- };
-
const customControlColumnsConfiguration = () => ({
leadingControlColumns: [],
trailingControlColumns: [],
@@ -124,8 +116,7 @@ describe('Discover documents layout', () => {
const customization: DiscoverCustomization = {
id: 'data_table',
- customCellRenderer,
- customGridColumnsConfiguration,
+ logsEnabled: true,
customControlColumnsConfiguration,
};
@@ -134,12 +125,10 @@ describe('Discover documents layout', () => {
const discoverGridComponent = component.find(DiscoverGrid);
expect(discoverGridComponent.exists()).toBeTruthy();
- expect(discoverGridComponent.prop('externalCustomRenderers')).toEqual(customCellRenderer);
- expect(discoverGridComponent.prop('customGridColumnsConfiguration')).toEqual(
- customGridColumnsConfiguration
- );
expect(discoverGridComponent.prop('customControlColumnsConfiguration')).toEqual(
customControlColumnsConfiguration
);
+ expect(discoverGridComponent.prop('externalCustomRenderers')).toBeDefined();
+ expect(discoverGridComponent.prop('customGridColumnsConfiguration')).toBeDefined();
});
});
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
index 8671cc289c281..b5f50f2ca9c14 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx
@@ -67,6 +67,7 @@ import { useFetchMoreRecords } from './use_fetch_more_records';
import { SelectedVSAvailableCallout } from './selected_vs_available_callout';
import { useDiscoverCustomization } from '../../../../customizations';
import { onResizeGridColumn } from '../../../../utils/on_resize_grid_column';
+import { useContextualGridCustomisations } from '../../hooks/grid_customisations';
const containerStyles = css`
position: relative;
@@ -108,38 +109,20 @@ function DiscoverDocumentsComponent({
const documents$ = stateContainer.dataState.data$.documents$;
const savedSearch = useSavedSearchInitial();
const { dataViews, capabilities, uiSettings, uiActions } = services;
- const [
- query,
- sort,
- rowHeight,
- headerRowHeight,
- rowsPerPage,
- grid,
- columns,
- index,
- sampleSizeState,
- ] = useAppStateSelector((state) => {
- return [
- state.query,
- state.sort,
- state.rowHeight,
- state.headerRowHeight,
- state.rowsPerPage,
- state.grid,
- state.columns,
- state.index,
- state.sampleSize,
- ];
- });
- const setExpandedDoc = useCallback(
- (doc: DataTableRecord | undefined) => {
- stateContainer.internalState.transitions.setExpandedDoc(doc);
- },
- [stateContainer]
- );
-
+ const [query, sort, rowHeight, headerRowHeight, rowsPerPage, grid, columns, sampleSizeState] =
+ useAppStateSelector((state) => {
+ return [
+ state.query,
+ state.sort,
+ state.rowHeight,
+ state.headerRowHeight,
+ state.rowsPerPage,
+ state.grid,
+ state.columns,
+ state.sampleSize,
+ ];
+ });
const expandedDoc = useInternalStateSelector((state) => state.expandedDoc);
-
const isTextBasedQuery = useMemo(() => getRawRecordType(query) === RecordRawType.PLAIN, [query]);
const useNewFieldsApi = useMemo(() => !uiSettings.get(SEARCH_FIELDS_FROM_SOURCE), [uiSettings]);
const hideAnnouncements = useMemo(() => uiSettings.get(HIDE_ANNOUNCEMENTS), [uiSettings]);
@@ -147,7 +130,6 @@ function DiscoverDocumentsComponent({
() => isLegacyTableEnabled({ uiSettings, isTextBasedQueryMode: isTextBasedQuery }),
[uiSettings, isTextBasedQuery]
);
-
const documentState = useDataState(documents$);
const isDataLoading =
documentState.fetchStatus === FetchStatus.LOADING ||
@@ -162,7 +144,8 @@ function DiscoverDocumentsComponent({
// 4. since the new sort by field isn't available in currentColumns EuiDataGrid is emitting a 'onSort', which is unsorting the grid
// 5. this is propagated to Discover's URL and causes an unwanted change of state to an unsorted state
// This solution switches to the loading state in this component when the URL index doesn't match the dataView.id
- const isDataViewLoading = !isTextBasedQuery && dataView.id && index !== dataView.id;
+ const isDataViewLoading =
+ useInternalStateSelector((state) => state.isDataViewLoading) && !isTextBasedQuery;
const isEmptyDataResult =
isTextBasedQuery || !documentState.result || documentState.result.length === 0;
const rows = useMemo(() => documentState.result || [], [documentState.result]);
@@ -189,6 +172,13 @@ function DiscoverDocumentsComponent({
sort,
});
+ const setExpandedDoc = useCallback(
+ (doc: DataTableRecord | undefined) => {
+ stateContainer.internalState.transitions.setExpandedDoc(doc);
+ },
+ [stateContainer]
+ );
+
const onResizeDataGrid = useCallback(
(colSettings) => onResize(colSettings, stateContainer),
[stateContainer]
@@ -269,11 +259,9 @@ function DiscoverDocumentsComponent({
[dataView, onAddColumn, onAddFilter, onRemoveColumn, query, savedSearch.id, setExpandedDoc]
);
- const {
- customCellRenderer: externalCustomRenderers,
- customGridColumnsConfiguration,
- customControlColumnsConfiguration,
- } = useDiscoverCustomization('data_table') || {};
+ const { customControlColumnsConfiguration } = useDiscoverCustomization('data_table') || {};
+ const { customCellRenderer, customGridColumnsConfiguration } =
+ useContextualGridCustomisations() || {};
const documents = useObservable(stateContainer.dataState.data$.documents$);
@@ -443,7 +431,7 @@ function DiscoverDocumentsComponent({
totalHits={totalHits}
onFetchMoreRecords={onFetchMoreRecords}
componentsTourSteps={TOUR_STEPS}
- externalCustomRenderers={externalCustomRenderers}
+ externalCustomRenderers={customCellRenderer}
customGridColumnsConfiguration={customGridColumnsConfiguration}
customControlColumnsConfiguration={customControlColumnsConfiguration}
/>
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx
index a1d450d6aa61b..7ce8f987e5911 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.test.tsx
@@ -34,13 +34,14 @@ import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock'
import { DiscoverMainProvider } from '../../state_management/discover_state_provider';
import { act } from 'react-dom/test-utils';
import { PanelsToggle } from '../../../../components/panels_toggle';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
function getStateContainer(savedSearch?: SavedSearch) {
const stateContainer = getDiscoverStateMock({ isTimeBased: true, savedSearch });
const dataView = savedSearch?.searchSource?.getField('index') as DataView;
stateContainer.appState.update({
- index: dataView?.id,
+ dataSource: createDataViewDataSource({ dataViewId: dataView?.id! }),
interval: 'auto',
hideChart: false,
});
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx
index 248b530515451..c1cc257f58cc3 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx
@@ -39,6 +39,7 @@ import { DiscoverMainProvider } from '../../state_management/discover_state_prov
import { act } from 'react-dom/test-utils';
import { ErrorCallout } from '../../../../components/common/error_callout';
import { PanelsToggle } from '../../../../components/panels_toggle';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
jest.mock('@elastic/eui', () => ({
...jest.requireActual('@elastic/eui'),
@@ -106,7 +107,11 @@ async function mountComponent(
session.getSession$.mockReturnValue(new BehaviorSubject('123'));
- stateContainer.appState.update({ index: dataView.id, interval: 'auto', query });
+ stateContainer.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: dataView.id! }),
+ interval: 'auto',
+ query,
+ });
stateContainer.internalState.transitions.setDataView(dataView);
const props = {
diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
index 24c92fd192408..7065e511951b6 100644
--- a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
+++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx
@@ -329,7 +329,6 @@ export function DiscoverLayout({ stateContainer }: DiscoverLayoutProps) {
) : null}
diff --git a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx
index 96533247faddf..33cc6b7328073 100644
--- a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx
+++ b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.test.tsx
@@ -73,7 +73,6 @@ function getProps(
return {
stateContainer,
savedQuery: '',
- updateQuery: jest.fn(),
onFieldEdited: jest.fn(),
};
}
diff --git a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx
index 6222a909a4221..61acdd1875a14 100644
--- a/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx
+++ b/src/plugins/discover/public/application/main/components/top_nav/discover_topnav.tsx
@@ -7,7 +7,6 @@
*/
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
-import type { AggregateQuery, Query, TimeRange } from '@kbn/es-query';
import { type DataView, DataViewType } from '@kbn/data-views-plugin/public';
import { DataViewPickerProps } from '@kbn/unified-search-plugin/public';
import { ENABLE_ESQL } from '@kbn/esql-utils';
@@ -29,10 +28,6 @@ import { useDiscoverTopNav } from './use_discover_topnav';
export interface DiscoverTopNavProps {
savedQuery?: string;
- updateQuery: (
- payload: { dateRange: TimeRange; query?: Query | AggregateQuery },
- isUpdate?: boolean
- ) => void;
stateContainer: DiscoverStateContainer;
textBasedLanguageModeErrors?: Error;
textBasedLanguageModeWarning?: string;
@@ -44,7 +39,6 @@ export interface DiscoverTopNavProps {
export const DiscoverTopNav = ({
savedQuery,
stateContainer,
- updateQuery,
textBasedLanguageModeErrors,
textBasedLanguageModeWarning,
onFieldEdited,
@@ -241,7 +235,7 @@ export const DiscoverTopNav = ({
{...topNavProps}
appName="discover"
indexPatterns={[dataView]}
- onQuerySubmit={updateQuery}
+ onQuerySubmit={stateContainer.actions.onUpdateQuery}
onCancel={onCancelClick}
isLoading={isLoading}
onSavedQueryIdChange={updateSavedQueryId}
diff --git a/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx b/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx
index a072e02b370d0..ce1592c1598d3 100644
--- a/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx
+++ b/src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.tsx
@@ -10,6 +10,7 @@ import { i18n } from '@kbn/i18n';
import type { DataView } from '@kbn/data-views-plugin/public';
import type { TopNavMenuData } from '@kbn/navigation-plugin/public';
import { setStateToKbnUrl } from '@kbn/kibana-utils-plugin/public';
+import { omit } from 'lodash';
import type { DiscoverAppLocatorParams } from '../../../../../common';
import { showOpenSearchPanel } from './show_open_search_panel';
import { getSharingData, showPublicUrlSwitch } from '../../../../utils/get_sharing_data';
@@ -138,7 +139,7 @@ export const getTopNavLinks = ({
// Share -> Get links -> Snapshot
const params: DiscoverAppLocatorParams = {
- ...appState,
+ ...omit(appState, 'dataSource'),
...(savedSearch.id ? { savedSearchId: savedSearch.id } : {}),
...(dataView?.isPersisted()
? { dataViewId: dataView?.id }
@@ -182,6 +183,11 @@ export const getTopNavLinks = ({
shareableUrlLocatorParams: { locator, params },
objectId: savedSearch.id,
objectType: 'search',
+ objectTypeMeta: {
+ title: i18n.translate('discover.share.shareModal.title', {
+ defaultMessage: 'Share this search',
+ }),
+ },
sharingData: {
isTextBased,
locatorParams: [{ id: locator.id, params }],
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts b/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts
new file mode 100644
index 0000000000000..301c96695de02
--- /dev/null
+++ b/src/plugins/discover/public/application/main/hooks/grid_customisations/index.ts
@@ -0,0 +1,28 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { useMemo } from 'react';
+import { useDiscoverServices } from '../../../../hooks/use_discover_services';
+import { useDiscoverCustomization } from '../../../../customizations';
+import { getLogsVirtualColumnsConfiguration } from './logs';
+
+export * from './logs';
+
+export const useContextualGridCustomisations = () => {
+ const { data } = useDiscoverServices();
+ // TODO / NOTE: This will eventually rely on Discover's context resolution to determine which fields
+ // are returned based on the data type.
+ const isLogsContext = useDiscoverCustomization('data_table')?.logsEnabled;
+
+ const virtualColumnsConfiguration = useMemo(() => {
+ if (!isLogsContext) return null;
+ if (isLogsContext) return getLogsVirtualColumnsConfiguration(data);
+ }, [data, isLogsContext]);
+
+ return virtualColumnsConfiguration;
+};
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx b/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx
new file mode 100644
index 0000000000000..ae5c51c265c5c
--- /dev/null
+++ b/src/plugins/discover/public/application/main/hooks/grid_customisations/logs.tsx
@@ -0,0 +1,31 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { DataPublicPluginStart } from '@kbn/data-plugin/public';
+import { CONTENT_FIELD, RESOURCE_FIELD } from '../../../../../common/data_types/logs/constants';
+import { renderCell } from '../../../../components/discover_grid/virtual_columns/logs/cell_renderer';
+import { renderColumn } from '../../../../components/discover_grid/virtual_columns/logs/column';
+
+export const getLogsVirtualColumnsConfiguration = (data: DataPublicPluginStart) => {
+ return {
+ customCellRenderer: createCustomCellRenderer({ data }),
+ customGridColumnsConfiguration: createCustomGridColumnsConfiguration(),
+ };
+};
+
+export const createCustomCellRenderer = ({ data }: { data: DataPublicPluginStart }) => {
+ return {
+ [CONTENT_FIELD]: renderCell(CONTENT_FIELD, { data }),
+ [RESOURCE_FIELD]: renderCell(RESOURCE_FIELD, { data }),
+ };
+};
+
+export const createCustomGridColumnsConfiguration = () => ({
+ [CONTENT_FIELD]: renderColumn(CONTENT_FIELD),
+ [RESOURCE_FIELD]: renderColumn(RESOURCE_FIELD),
+});
diff --git a/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx b/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx
new file mode 100644
index 0000000000000..386fc6586258d
--- /dev/null
+++ b/src/plugins/discover/public/application/main/hooks/grid_customisations/use_virtual_column_services.tsx
@@ -0,0 +1,23 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import createContainer from 'constate';
+import type { DataView } from '@kbn/data-views-plugin/common';
+import { DataPublicPluginStart } from '@kbn/data-plugin/public';
+
+export interface UseVirtualColumnServices {
+ services: {
+ data: DataPublicPluginStart;
+ dataView: DataView;
+ };
+}
+
+const useVirtualColumns = ({ services }: UseVirtualColumnServices) => services;
+
+export const [VirtualColumnServiceProvider, useVirtualColumnServiceContext] =
+ createContainer(useVirtualColumns);
diff --git a/src/plugins/discover/public/application/main/hooks/sidebar/use_additional_field_groups.tsx b/src/plugins/discover/public/application/main/hooks/sidebar/use_additional_field_groups.tsx
new file mode 100644
index 0000000000000..6f9ab0073904f
--- /dev/null
+++ b/src/plugins/discover/public/application/main/hooks/sidebar/use_additional_field_groups.tsx
@@ -0,0 +1,37 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import { DataViewField } from '@kbn/data-views-plugin/common';
+import { useDiscoverCustomization } from '../../../../customizations';
+import * as constants from '../../../../../common/data_types/logs/constants';
+
+export const useAdditionalFieldGroups = () => {
+ // TODO / NOTE: This will eventually rely on Discover's context resolution to determine which fields
+ // are returned based on the data type.
+ const isLogsContext = useDiscoverCustomization('field_list')?.logsFieldsEnabled;
+
+ if (isLogsContext) {
+ const smartFields = [
+ new DataViewField({
+ name: constants.RESOURCE_FIELD,
+ type: 'smart_field',
+ searchable: false,
+ aggregatable: false,
+ }),
+ new DataViewField({
+ name: constants.CONTENT_FIELD,
+ type: 'smart_field',
+ searchable: false,
+ aggregatable: false,
+ }),
+ ];
+ return {
+ smartFields,
+ };
+ }
+};
diff --git a/src/plugins/discover/public/application/main/hooks/use_test_based_query_language.test.tsx b/src/plugins/discover/public/application/main/hooks/use_test_based_query_language.test.tsx
index c7d530360ca3e..8777b357714ba 100644
--- a/src/plugins/discover/public/application/main/hooks/use_test_based_query_language.test.tsx
+++ b/src/plugins/discover/public/application/main/hooks/use_test_based_query_language.test.tsx
@@ -269,13 +269,7 @@ describe('useTextBasedQueryLanguage', () => {
query: { esql: 'from the-data-view-title | keep field 1 | WHERE field1=1' },
});
- await waitFor(() => expect(replaceUrlState).toHaveBeenCalledTimes(1));
- await waitFor(() => {
- expect(replaceUrlState).toHaveBeenCalledWith({
- columns: ['field1', 'field2'],
- });
- });
- replaceUrlState.mockReset();
+ expect(replaceUrlState).toHaveBeenCalledTimes(0);
documents$.next({
recordRawType: RecordRawType.PLAIN,
diff --git a/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts b/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts
index 0a5b7c021046f..063a5c21bfbe3 100644
--- a/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts
+++ b/src/plugins/discover/public/application/main/hooks/use_text_based_query_language.ts
@@ -64,7 +64,7 @@ export function useTextBasedQueryLanguage({
fetchStatus: FetchStatus.COMPLETE,
});
};
- const { index, viewMode } = stateContainer.appState.getState();
+ const { viewMode } = stateContainer.appState.getState();
let nextColumns: string[] = [];
const isTextBasedQueryLang = recordRawType === 'plain' && isOfAggregateQueryType(query);
const hasResults = Boolean(next.result?.length);
@@ -83,7 +83,6 @@ export function useTextBasedQueryLanguage({
if (next.fetchStatus !== FetchStatus.PARTIAL) {
return;
}
- const dataViewObj = stateContainer.internalState.getState().dataView;
if (hasResults) {
// check if state needs to contain column transformation due to a different columns in the resultset
@@ -94,22 +93,16 @@ export function useTextBasedQueryLanguage({
initialFetch.current = false;
} else {
nextColumns = firstRowColumns;
- if (
- initialFetch.current &&
- !prev.current.columns.length &&
- Boolean(dataViewObj?.id === index)
- ) {
+ if (initialFetch.current && !prev.current.columns.length) {
prev.current.columns = firstRowColumns;
}
}
}
const addColumnsToState = !isEqual(nextColumns, prev.current.columns);
const queryChanged = query[language] !== prev.current.query;
- // no need to reset index to state if it hasn't changed
- const addDataViewToState = index !== undefined;
const changeViewMode =
viewMode !== getValidViewMode({ viewMode, isTextBasedQueryMode: true });
- if (!queryChanged || (!addDataViewToState && !addColumnsToState && !changeViewMode)) {
+ if (!queryChanged || (!addColumnsToState && !changeViewMode)) {
sendComplete();
return;
}
@@ -119,9 +112,8 @@ export function useTextBasedQueryLanguage({
prev.current.columns = nextColumns;
}
// just change URL state if necessary
- if (addDataViewToState || addColumnsToState || changeViewMode) {
+ if (addColumnsToState || changeViewMode) {
const nextState = {
- ...(addDataViewToState && { index: undefined }),
...(addColumnsToState && { columns: nextColumns }),
...(changeViewMode && { viewMode: undefined }),
};
diff --git a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.test.ts b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.test.ts
index 0ddc8c47c2767..75ae6208be871 100644
--- a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.test.ts
@@ -19,6 +19,7 @@ import {
isEqualState,
} from './discover_app_state_container';
import { SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/common';
+import { createDataViewDataSource } from '../../../../common/data_sources';
let history: History;
let state: DiscoverAppStateContainer;
@@ -40,16 +41,22 @@ describe('Test discover app state container', () => {
});
test('hasChanged returns whether the current state has changed', async () => {
- state.set({ index: 'modified' });
+ state.set({
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
+ });
expect(state.hasChanged()).toBeTruthy();
state.resetInitialState();
expect(state.hasChanged()).toBeFalsy();
});
test('getPrevious returns the state before the current', async () => {
- state.set({ index: 'first' });
+ state.set({
+ dataSource: createDataViewDataSource({ dataViewId: 'first' }),
+ });
const stateA = state.getState();
- state.set({ index: 'second' });
+ state.set({
+ dataSource: createDataViewDataSource({ dataViewId: 'second' }),
+ });
expect(state.getPrevious()).toEqual(stateA);
});
@@ -111,7 +118,7 @@ describe('Test discover app state container', () => {
filters: [customFilter],
grid: undefined,
hideChart: true,
- index: 'the-data-view-id',
+ dataSource: createDataViewDataSource({ dataViewId: 'the-data-view-id' }),
interval: 'auto',
query: customQuery,
rowHeight: undefined,
@@ -147,7 +154,7 @@ describe('Test discover app state container', () => {
filters: [customFilter],
grid: undefined,
hideChart: undefined,
- index: 'the-data-view-id',
+ dataSource: createDataViewDataSource({ dataViewId: 'the-data-view-id' }),
interval: 'auto',
query: defaultQuery,
rowHeight: undefined,
@@ -217,10 +224,24 @@ describe('Test discover app state container', () => {
expect(isEqualState(initialState, { ...initialState, ...param })).toBeFalsy();
});
});
+
test('allows to exclude variables from comparison', () => {
expect(
- isEqualState(initialState, { ...initialState, index: undefined }, ['index'])
+ isEqualState(initialState, { ...initialState, dataSource: undefined }, ['dataSource'])
).toBeTruthy();
});
});
+
+ test('should automatically set ES|QL data source when query is ES|QL', () => {
+ state.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'test' }),
+ });
+ expect(state.get().dataSource?.type).toBe('dataView');
+ state.update({
+ query: {
+ esql: 'from test',
+ },
+ });
+ expect(state.get().dataSource?.type).toBe('esql');
+ });
});
diff --git a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts
index ec5d2dc4e8437..5ec9ca4d7215c 100644
--- a/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts
+++ b/src/plugins/discover/public/application/main/state_management/discover_app_state_container.ts
@@ -19,6 +19,7 @@ import {
FilterCompareOptions,
FilterStateStore,
Query,
+ isOfAggregateQueryType,
} from '@kbn/es-query';
import { SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/public';
import { IKbnUrlStateStorage, ISyncStateRef, syncState } from '@kbn/kibana-utils-plugin/public';
@@ -30,6 +31,13 @@ import { addLog } from '../../../utils/add_log';
import { cleanupUrlState } from './utils/cleanup_url_state';
import { getStateDefaults } from './utils/get_state_defaults';
import { handleSourceColumnState } from '../../../utils/state_helpers';
+import {
+ createDataViewDataSource,
+ createEsqlDataSource,
+ DataSourceType,
+ DiscoverDataSource,
+ isDataSourceType,
+} from '../../../../common/data_sources';
export const APP_STATE_URL_KEY = '_a';
export interface DiscoverAppStateContainer extends ReduxLikeStateContainer {
@@ -100,9 +108,9 @@ export interface DiscoverAppState {
*/
hideChart?: boolean;
/**
- * id of the used data view
+ * The current data source
*/
- index?: string;
+ dataSource?: DiscoverDataSource;
/**
* Used interval of the histogram
*/
@@ -174,15 +182,23 @@ export const getDiscoverAppStateContainer = ({
const enhancedAppContainer = {
...appStateContainer,
set: (value: DiscoverAppState | null) => {
- if (value) {
- previousState = appStateContainer.getState();
- appStateContainer.set(value);
+ if (!value) {
+ return;
+ }
+
+ previousState = appStateContainer.getState();
+
+ // When updating to an ES|QL query, sync the data source
+ if (isOfAggregateQueryType(value.query)) {
+ value.dataSource = createEsqlDataSource();
}
+
+ appStateContainer.set(value);
},
};
const hasChanged = () => {
- return !isEqualState(initialState, appStateContainer.getState());
+ return !isEqualState(initialState, enhancedAppContainer.getState());
};
const getAppStateFromSavedSearch = (newSavedSearch: SavedSearch) => {
@@ -195,17 +211,17 @@ export const getDiscoverAppStateContainer = ({
const resetToState = (state: DiscoverAppState) => {
addLog('[appState] reset state to', state);
previousState = state;
- appStateContainer.set(state);
+ enhancedAppContainer.set(state);
};
const resetInitialState = () => {
addLog('[appState] reset initial state to the current state');
- initialState = appStateContainer.getState();
+ initialState = enhancedAppContainer.getState();
};
const replaceUrlState = async (newPartial: DiscoverAppState = {}, merge = true) => {
addLog('[appState] replaceUrlState', { newPartial, merge });
- const state = merge ? { ...appStateContainer.getState(), ...newPartial } : newPartial;
+ const state = merge ? { ...enhancedAppContainer.getState(), ...newPartial } : newPartial;
await stateStorage.set(APP_STATE_URL_KEY, state, { replace: true });
};
@@ -220,17 +236,28 @@ export const getDiscoverAppStateContainer = ({
const initializeAndSync = (currentSavedSearch: SavedSearch) => {
addLog('[appState] initialize state and sync with URL', currentSavedSearch);
+
const { data } = services;
- const dataView = currentSavedSearch.searchSource.getField('index');
+ const savedSearchDataView = currentSavedSearch.searchSource.getField('index');
+ const appState = enhancedAppContainer.getState();
+ const setDataViewFromSavedSearch =
+ !appState.dataSource ||
+ (isDataSourceType(appState.dataSource, DataSourceType.DataView) &&
+ appState.dataSource.dataViewId !== savedSearchDataView?.id);
- if (appStateContainer.getState().index !== dataView?.id) {
+ if (setDataViewFromSavedSearch) {
// used data view is different from the given by url/state which is invalid
- setState(appStateContainer, { index: dataView?.id });
+ setState(enhancedAppContainer, {
+ dataSource: savedSearchDataView?.id
+ ? createDataViewDataSource({ dataViewId: savedSearchDataView.id })
+ : undefined,
+ });
}
+
// syncs `_a` portion of url with query services
const stopSyncingQueryAppStateWithStateContainer = connectToQueryState(
data.query,
- appStateContainer,
+ enhancedAppContainer,
{
filters: FilterStateStore.APP_STATE,
query: true,
@@ -244,6 +271,7 @@ export const getDiscoverAppStateContainer = ({
);
const { start, stop } = startAppStateUrlSync();
+
// current state need to be pushed to url
replaceUrlState({}).then(() => start());
@@ -259,8 +287,8 @@ export const getDiscoverAppStateContainer = ({
if (replace) {
return replaceUrlState(newPartial);
} else {
- previousState = { ...appStateContainer.getState() };
- setState(appStateContainer, newPartial);
+ previousState = { ...enhancedAppContainer.getState() };
+ setState(enhancedAppContainer, newPartial);
}
};
@@ -291,6 +319,10 @@ export interface AppStateUrl extends Omit {
* Necessary to take care of legacy links [fieldName,direction]
*/
sort?: string[][] | [string, string];
+ /**
+ * Legacy data view ID prop
+ */
+ index?: string;
}
export function getInitialState(
@@ -298,17 +330,17 @@ export function getInitialState(
savedSearch: SavedSearch,
services: DiscoverServices
) {
- const stateStorageURL = stateStorage?.get(APP_STATE_URL_KEY) as AppStateUrl;
+ const appStateFromUrl = stateStorage?.get(APP_STATE_URL_KEY);
const defaultAppState = getStateDefaults({
savedSearch,
services,
});
return handleSourceColumnState(
- stateStorageURL === null
+ appStateFromUrl == null
? defaultAppState
: {
...defaultAppState,
- ...cleanupUrlState(stateStorageURL, services.uiSettings),
+ ...cleanupUrlState(appStateFromUrl, services.uiSettings),
},
services.uiSettings
);
@@ -353,7 +385,7 @@ export function isEqualFilters(
export function isEqualState(
stateA: DiscoverAppState,
stateB: DiscoverAppState,
- exclude: string[] = []
+ exclude: Array = []
) {
if (!stateA && !stateB) {
return true;
@@ -361,8 +393,8 @@ export function isEqualState(
return false;
}
- const { filters: stateAFilters = [], ...stateAPartial } = omit(stateA, exclude);
- const { filters: stateBFilters = [], ...stateBPartial } = omit(stateB, exclude);
+ const { filters: stateAFilters = [], ...stateAPartial } = omit(stateA, exclude as string[]);
+ const { filters: stateBFilters = [], ...stateBPartial } = omit(stateB, exclude as string[]);
return isEqual(stateAPartial, stateBPartial) && isEqualFilters(stateAFilters, stateBFilters);
}
diff --git a/src/plugins/discover/public/application/main/state_management/discover_state.test.ts b/src/plugins/discover/public/application/main/state_management/discover_state.test.ts
index 39aa114673cbb..db8666cf72751 100644
--- a/src/plugins/discover/public/application/main/state_management/discover_state.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/discover_state.test.ts
@@ -30,6 +30,7 @@ import { dataViewAdHoc, dataViewComplexMock } from '../../../__mocks__/data_view
import { copySavedSearch } from './discover_saved_search_container';
import { createKbnUrlStateStorage, IKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
import { mockCustomizationContext } from '../../../customizations/__mocks__/customization_context';
+import { createDataViewDataSource, createEsqlDataSource } from '../../../../common/data_sources';
const startSync = (appState: DiscoverAppStateContainer) => {
const { start, stop } = appState.syncState();
@@ -102,40 +103,51 @@ describe('Test discover state', () => {
stopSync = () => {};
});
test('setting app state and syncing to URL', async () => {
- state.appState.update({ index: 'modified' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
+ });
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_a=(columns:!(default_column),index:modified,interval:auto,sort:!())"`
+ `"/#?_a=(columns:!(default_column),dataSource:(dataViewId:modified,type:dataView),interval:auto,sort:!())"`
);
});
test('changing URL to be propagated to appState', async () => {
- history.push('/#?_a=(index:modified)');
+ history.push('/#?_a=(dataSource:(dataViewId:modified,type:dataView))');
expect(state.appState.getState()).toMatchInlineSnapshot(`
Object {
- "index": "modified",
+ "dataSource": Object {
+ "dataViewId": "modified",
+ "type": "dataView",
+ },
}
`);
});
test('URL navigation to url without _a, state should not change', async () => {
- history.push('/#?_a=(index:modified)');
+ history.push('/#?_a=(dataSource:(dataViewId:modified,type:dataView))');
history.push('/');
expect(state.appState.getState()).toEqual({
- index: 'modified',
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
});
});
test('isAppStateDirty returns whether the current state has changed', async () => {
- state.appState.update({ index: 'modified' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
+ });
expect(state.appState.hasChanged()).toBeTruthy();
state.appState.resetInitialState();
expect(state.appState.hasChanged()).toBeFalsy();
});
test('getPreviousAppState returns the state before the current', async () => {
- state.appState.update({ index: 'first' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'first' }),
+ });
const stateA = state.appState.getState();
- state.appState.update({ index: 'second' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'second' }),
+ });
expect(state.appState.getPrevious()).toEqual(stateA);
});
@@ -189,23 +201,28 @@ describe('Test discover state with overridden state storage', () => {
});
test('setting app state and syncing to URL', async () => {
- state.appState.update({ index: 'modified' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
+ });
await jest.runAllTimersAsync();
expect(history.createHref(history.location)).toMatchInlineSnapshot(
- `"/#?_a=(columns:!(default_column),index:modified,interval:auto,sort:!())"`
+ `"/#?_a=(columns:!(default_column),dataSource:(dataViewId:modified,type:dataView),interval:auto,sort:!())"`
);
});
test('changing URL to be propagated to appState', async () => {
- history.push('/#?_a=(index:modified)');
+ history.push('/#?_a=(dataSource:(dataViewId:modified,type:dataView))');
await jest.runAllTimersAsync();
expect(state.appState.getState()).toMatchInlineSnapshot(`
Object {
- "index": "modified",
+ "dataSource": Object {
+ "dataViewId": "modified",
+ "type": "dataView",
+ },
}
`);
});
@@ -263,7 +280,9 @@ describe('Test createSearchSessionRestorationDataProvider', () => {
customizationContext: mockCustomizationContext,
});
discoverStateContainer.appState.update({
- index: savedSearchMock.searchSource.getField('index')!.id,
+ dataSource: createDataViewDataSource({
+ dataViewId: savedSearchMock.searchSource.getField('index')!.id!,
+ }),
});
const searchSessionInfoProvider = createSearchSessionRestorationDataProvider({
data: mockDataPlugin,
@@ -428,7 +447,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),index:the-data-view-id,interval:auto,sort:!())"`
+ `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:auto,sort:!())"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(false);
const { searchSource, ...savedSearch } = state.savedSearchState.getState();
@@ -461,7 +480,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),index:the-data-view-id,interval:auto,sort:!())"`
+ `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:auto,sort:!())"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(false);
unsubscribe();
@@ -476,7 +495,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_a=(columns:!(bytes),index:the-data-view-id,interval:month,sort:!())&_g=()"`
+ `"/#?_a=(columns:!(bytes),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:month,sort:!())&_g=()"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(true);
unsubscribe();
@@ -491,7 +510,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_a=(columns:!(bytes),index:the-data-view-id,interval:month,sort:!())&_g=()"`
+ `"/#?_a=(columns:!(bytes),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:month,sort:!())&_g=()"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(true);
unsubscribe();
@@ -505,7 +524,7 @@ describe('Test discover state actions', () => {
await new Promise(process.nextTick);
expect(newSavedSearch?.id).toBe('the-saved-search-id');
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),index:the-data-view-id,interval:auto,sort:!())"`
+ `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:auto,sort:!())"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(false);
unsubscribe();
@@ -520,7 +539,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_a=(columns:!(message),index:the-data-view-id,interval:month,sort:!())&_g=()"`
+ `"/#?_a=(columns:!(message),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:month,sort:!())&_g=()"`
);
expect(state.savedSearchState.getHasChanged$().getValue()).toBe(true);
unsubscribe();
@@ -600,7 +619,7 @@ describe('Test discover state actions', () => {
});
test('loadSavedSearch without id ignoring invalid index in URL, adding a warning toast', async () => {
- const url = '/#?_a=(index:abc)&_g=()';
+ const url = '/#?_a=(dataSource:(dataViewId:abc,type:dataView))&_g=()';
const { state } = await getState(url, { savedSearch: savedSearchMock, isEmptyUrl: false });
await state.actions.loadSavedSearch();
expect(state.savedSearchState.getState().searchSource.getField('index')?.id).toBe(
@@ -614,14 +633,16 @@ describe('Test discover state actions', () => {
});
test('loadSavedSearch without id containing ES|QL, adding no warning toast with an invalid index', async () => {
- const url = "/#?_a=(index:abcde,query:(esql:'FROM test'))&_g=()";
+ const url =
+ "/#?_a=(dataSource:(dataViewId:abcde,type:dataView),query:(esql:'FROM test'))&_g=()";
const { state } = await getState(url, { savedSearch: savedSearchMock, isEmptyUrl: false });
await state.actions.loadSavedSearch();
+ expect(state.appState.getState().dataSource).toEqual(createEsqlDataSource());
expect(discoverServiceMock.toastNotifications.addWarning).not.toHaveBeenCalled();
});
test('loadSavedSearch with id ignoring invalid index in URL, adding a warning toast', async () => {
- const url = '/#?_a=(index:abc)&_g=()';
+ const url = '/#?_a=(dataSource:(dataViewId:abc,type:dataView))&_g=()';
const { state } = await getState(url, { savedSearch: savedSearchMock, isEmptyUrl: false });
await state.actions.loadSavedSearch({ savedSearchId: savedSearchMock.id });
expect(state.savedSearchState.getState().searchSource.getField('index')?.id).toBe(
@@ -644,7 +665,9 @@ describe('Test discover state actions', () => {
state.savedSearchState.load = jest.fn().mockReturnValue(savedSearchMockWithTimeField);
// unsetting the previous index else this is considered as update to the persisted saved search
- state.appState.set({ index: undefined });
+ state.appState.set({
+ dataSource: undefined,
+ });
await state.actions.loadSavedSearch({ savedSearchId: 'the-saved-search-id-with-timefield' });
expect(state.savedSearchState.getState().searchSource.getField('index')?.id).toBe(
'index-pattern-with-timefield-id'
@@ -711,14 +734,16 @@ describe('Test discover state actions', () => {
const adHocDataViewId = savedSearchAdHoc.searchSource.getField('index')!.id;
const { state } = await getState('/', { savedSearch: savedSearchAdHocCopy });
await state.actions.loadSavedSearch({ savedSearchId: savedSearchAdHoc.id });
- expect(state.appState.getState().index).toBe(adHocDataViewId);
+ expect(state.appState.getState().dataSource).toEqual(
+ createDataViewDataSource({ dataViewId: adHocDataViewId! })
+ );
expect(state.internalState.getState().adHocDataViews[0].id).toBe(adHocDataViewId);
});
test('loadSavedSearch with ES|QL, data view index is not overwritten by URL ', async () => {
const savedSearchMockWithESQLCopy = copySavedSearch(savedSearchMockWithESQL);
const persistedDataViewId = savedSearchMockWithESQLCopy?.searchSource.getField('index')!.id;
- const url = "/#?_a=(index:'the-data-view-id')&_g=()";
+ const url = "/#?_a=(dataSource:(dataViewId:'the-data-view-id',type:dataView))&_g=()";
const { state } = await getState(url, {
savedSearch: savedSearchMockWithESQLCopy,
isEmptyUrl: false,
@@ -731,7 +756,7 @@ describe('Test discover state actions', () => {
test('onChangeDataView', async () => {
const { state, getCurrentUrl } = await getState('/', { savedSearch: savedSearchMock });
- const { actions, savedSearchState, dataState, appState } = state;
+ const { actions, savedSearchState, dataState } = state;
await actions.loadSavedSearch({ savedSearchId: savedSearchMock.id });
const unsubscribe = actions.initializeAndSync();
@@ -747,7 +772,9 @@ describe('Test discover state actions', () => {
// test changed state, fetch should be called once and URL should be updated
expect(dataState.fetch).toHaveBeenCalledTimes(1);
- expect(appState.get().index).toBe(dataViewComplexMock.id);
+ expect(state.appState.getState().dataSource).toEqual(
+ createDataViewDataSource({ dataViewId: dataViewComplexMock.id! })
+ );
expect(savedSearchState.getState().searchSource.getField('index')!.id).toBe(
dataViewComplexMock.id
);
@@ -763,7 +790,9 @@ describe('Test discover state actions', () => {
await waitFor(() => {
expect(state.internalState.getState().dataView?.id).toBe(dataViewComplexMock.id);
});
- expect(state.appState.get().index).toBe(dataViewComplexMock.id);
+ expect(state.appState.getState().dataSource).toEqual(
+ createDataViewDataSource({ dataViewId: dataViewComplexMock.id! })
+ );
expect(state.savedSearchState.getState().searchSource.getField('index')!.id).toBe(
dataViewComplexMock.id
);
@@ -777,7 +806,9 @@ describe('Test discover state actions', () => {
await waitFor(() => {
expect(state.internalState.getState().dataView?.id).toBe(dataViewAdHoc.id);
});
- expect(state.appState.get().index).toBe(dataViewAdHoc.id);
+ expect(state.appState.getState().dataSource).toEqual(
+ createDataViewDataSource({ dataViewId: dataViewAdHoc.id! })
+ );
expect(state.savedSearchState.getState().searchSource.getField('index')!.id).toBe(
dataViewAdHoc.id
);
@@ -838,7 +869,9 @@ describe('Test discover state actions', () => {
await state.actions.loadSavedSearch({ savedSearchId: savedSearchMock.id });
const unsubscribe = state.actions.initializeAndSync();
await state.actions.createAndAppendAdHocDataView({ title: 'ad-hoc-test' });
- expect(state.appState.getState().index).toBe('ad-hoc-id');
+ expect(state.appState.getState().dataSource).toEqual(
+ createDataViewDataSource({ dataViewId: 'ad-hoc-id' })
+ );
expect(state.internalState.getState().adHocDataViews[0].id).toBe('ad-hoc-id');
unsubscribe();
});
@@ -849,7 +882,7 @@ describe('Test discover state actions', () => {
const unsubscribe = state.actions.initializeAndSync();
await new Promise(process.nextTick);
const initialUrlState =
- '/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),index:the-data-view-id,interval:auto,sort:!())';
+ '/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(default_column),dataSource:(dataViewId:the-data-view-id,type:dataView),interval:auto,sort:!())';
expect(getCurrentUrl()).toBe(initialUrlState);
expect(state.internalState.getState().dataView?.id).toBe(dataViewMock.id!);
@@ -857,7 +890,7 @@ describe('Test discover state actions', () => {
await state.actions.onChangeDataView(dataViewComplexMock.id!);
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(),index:data-view-with-various-field-types-id,interval:auto,sort:!(!(data,desc)))"`
+ `"/#?_g=(refreshInterval:(pause:!t,value:1000),time:(from:now-15d,to:now))&_a=(columns:!(),dataSource:(dataViewId:data-view-with-various-field-types-id,type:dataView),interval:auto,sort:!(!(data,desc)))"`
);
await waitFor(() => {
expect(state.dataState.fetch).toHaveBeenCalledTimes(1);
@@ -925,18 +958,20 @@ describe('Test discover state with embedded mode', () => {
});
test('setting app state and syncing to URL', async () => {
- state.appState.update({ index: 'modified' });
+ state.appState.update({
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
+ });
await new Promise(process.nextTick);
expect(getCurrentUrl()).toMatchInlineSnapshot(
- `"/?_a=(columns:!(default_column),index:modified,interval:auto,sort:!())"`
+ `"/?_a=(columns:!(default_column),dataSource:(dataViewId:modified,type:dataView),interval:auto,sort:!())"`
);
});
test('changing URL to be propagated to appState', async () => {
- history.push('/?_a=(index:modified)');
+ history.push('/?_a=(dataSource:(dataViewId:modified,type:dataView))');
expect(state.appState.getState()).toMatchObject(
expect.objectContaining({
- index: 'modified',
+ dataSource: createDataViewDataSource({ dataViewId: 'modified' }),
})
);
});
diff --git a/src/plugins/discover/public/application/main/state_management/discover_state.ts b/src/plugins/discover/public/application/main/state_management/discover_state.ts
index 4816ac585c142..169e596a2cf93 100644
--- a/src/plugins/discover/public/application/main/state_management/discover_state.ts
+++ b/src/plugins/discover/public/application/main/state_management/discover_state.ts
@@ -54,6 +54,11 @@ import {
DiscoverGlobalStateContainer,
} from './discover_global_state_container';
import type { DiscoverCustomizationContext } from '../../../customizations';
+import {
+ createDataViewDataSource,
+ DataSourceType,
+ isDataSourceType,
+} from '../../../../common/data_sources';
export interface DiscoverStateContainerParams {
/**
@@ -303,21 +308,34 @@ export function getDiscoverStateContainer({
const updateAdHocDataViewId = async () => {
const prevDataView = internalStateContainer.getState().dataView;
if (!prevDataView || prevDataView.isPersisted()) return;
- const newDataView = await services.dataViews.create({ ...prevDataView.toSpec(), id: uuidv4() });
+
+ const nextDataView = await services.dataViews.create({
+ ...prevDataView.toSpec(),
+ id: uuidv4(),
+ });
+
services.dataViews.clearInstanceCache(prevDataView.id);
updateFiltersReferences({
prevDataView,
- nextDataView: newDataView,
+ nextDataView,
services,
});
- internalStateContainer.transitions.replaceAdHocDataViewWithId(prevDataView.id!, newDataView);
- await appStateContainer.replaceUrlState({ index: newDataView.id });
- const trackingEnabled = Boolean(newDataView.isPersisted() || savedSearchContainer.getId());
+ internalStateContainer.transitions.replaceAdHocDataViewWithId(prevDataView.id!, nextDataView);
+
+ if (isDataSourceType(appStateContainer.get().dataSource, DataSourceType.DataView)) {
+ await appStateContainer.replaceUrlState({
+ dataSource: nextDataView.id
+ ? createDataViewDataSource({ dataViewId: nextDataView.id })
+ : undefined,
+ });
+ }
+
+ const trackingEnabled = Boolean(nextDataView.isPersisted() || savedSearchContainer.getId());
services.urlTracker.setTrackingEnabled(trackingEnabled);
- return newDataView;
+ return nextDataView;
};
const onOpenSavedSearch = async (newSavedSearchId: string) => {
@@ -583,7 +601,7 @@ function createUrlGeneratorState({
const dataView = getSavedSearch().searchSource.getField('index');
return {
filters: data.query.filterManager.getFilters(),
- dataViewId: appState.index,
+ dataViewId: dataView?.id,
query: appState.query,
savedSearchId: getSavedSearch().id,
timeRange: shouldRestoreSearchSession
diff --git a/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.test.ts b/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.test.ts
index 563473c274322..1a487c5bb3bcb 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.test.ts
@@ -11,6 +11,7 @@ import { FetchStatus } from '../../../types';
import { dataViewComplexMock } from '../../../../__mocks__/data_view_complex';
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
import { discoverServiceMock } from '../../../../__mocks__/services';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
describe('buildStateSubscribe', () => {
const savedSearch = savedSearchMock;
@@ -35,7 +36,9 @@ describe('buildStateSubscribe', () => {
});
it('should set the data view if the index has changed, and refetch should be triggered', async () => {
- await getSubscribeFn()({ index: dataViewComplexMock.id });
+ await getSubscribeFn()({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewComplexMock.id! }),
+ });
expect(stateContainer.actions.setDataView).toHaveBeenCalledWith(dataViewComplexMock);
expect(stateContainer.dataState.reset).toHaveBeenCalled();
@@ -75,18 +78,26 @@ describe('buildStateSubscribe', () => {
it('should not execute setState function if initialFetchStatus is UNINITIALIZED', async () => {
const stateSubscribeFn = getSubscribeFn();
stateContainer.dataState.getInitialFetchStatus = jest.fn(() => FetchStatus.UNINITIALIZED);
- await stateSubscribeFn({ index: dataViewComplexMock.id });
+ await stateSubscribeFn({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewComplexMock.id! }),
+ });
expect(stateContainer.dataState.reset).toHaveBeenCalled();
});
it('should not execute setState twice if the identical data view change is propagated twice', async () => {
- await getSubscribeFn()({ index: dataViewComplexMock.id });
+ await getSubscribeFn()({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewComplexMock.id! }),
+ });
expect(stateContainer.dataState.reset).toBeCalledTimes(1);
- stateContainer.appState.getPrevious = jest.fn(() => ({ index: dataViewComplexMock.id }));
+ stateContainer.appState.getPrevious = jest.fn(() => ({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewComplexMock.id! }),
+ }));
- await getSubscribeFn()({ index: dataViewComplexMock.id });
+ await getSubscribeFn()({
+ dataSource: createDataViewDataSource({ dataViewId: dataViewComplexMock.id! }),
+ });
expect(stateContainer.dataState.reset).toBeCalledTimes(1);
});
});
diff --git a/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.ts b/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.ts
index 6cc9b88008931..fbd324a1a417c 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/build_state_subscribe.ts
@@ -20,6 +20,11 @@ import { addLog } from '../../../../utils/add_log';
import { isTextBasedQuery } from '../../utils/is_text_based_query';
import { FetchStatus } from '../../../types';
import { loadAndResolveDataView } from './resolve_data_view';
+import {
+ createDataViewDataSource,
+ DataSourceType,
+ isDataSourceType,
+} from '../../../../../common/data_sources';
/**
* Builds a subscribe function for the AppStateContainer, that is executed when the AppState changes in URL
@@ -52,7 +57,7 @@ export const buildStateSubscribe =
if (
isTextBasedQueryLang &&
- isEqualState(prevState, nextState, ['index', 'viewMode']) &&
+ isEqualState(prevState, nextState, ['dataSource', 'viewMode']) &&
!queryChanged
) {
// When there's a switch from data view to es|ql, this just leads to a cleanup of index and viewMode
@@ -60,12 +65,13 @@ export const buildStateSubscribe =
addLog('[appstate] subscribe update ignored for es|ql', { prevState, nextState });
return;
}
+
if (isEqualState(prevState, nextState) && !queryChanged) {
addLog('[appstate] subscribe update ignored due to no changes', { prevState, nextState });
return;
}
+
addLog('[appstate] subscribe triggered', nextState);
- const { hideChart, interval, breakdownField, sampleSize, sort, index } = prevState;
if (isTextBasedQueryLang) {
const isTextBasedQueryLangPrev = isTextBasedQuery(prevQuery);
@@ -74,6 +80,8 @@ export const buildStateSubscribe =
dataState.reset(savedSearch);
}
}
+
+ const { hideChart, interval, breakdownField, sampleSize, sort, dataSource } = prevState;
// Cast to boolean to avoid false positives when comparing
// undefined and false, which would trigger a refetch
const chartDisplayChanged = Boolean(nextState.hideChart) !== Boolean(hideChart);
@@ -81,21 +89,36 @@ export const buildStateSubscribe =
const breakdownFieldChanged = nextState.breakdownField !== breakdownField;
const sampleSizeChanged = nextState.sampleSize !== sampleSize;
const docTableSortChanged = !isEqual(nextState.sort, sort) && !isTextBasedQueryLang;
- const dataViewChanged = !isEqual(nextState.index, index) && !isTextBasedQueryLang;
+ const dataSourceChanged = !isEqual(nextState.dataSource, dataSource) && !isTextBasedQueryLang;
+
let savedSearchDataView;
+
// NOTE: this is also called when navigating from discover app to context app
- if (nextState.index && dataViewChanged) {
+ if (nextState.dataSource && dataSourceChanged) {
+ const dataViewId = isDataSourceType(nextState.dataSource, DataSourceType.DataView)
+ ? nextState.dataSource.dataViewId
+ : undefined;
+
const { dataView: nextDataView, fallback } = await loadAndResolveDataView(
- { id: nextState.index, savedSearch, isTextBasedQuery: isTextBasedQuery(nextState?.query) },
+ { id: dataViewId, savedSearch, isTextBasedQuery: isTextBasedQueryLang },
{ internalStateContainer: internalState, services }
);
// If the requested data view is not found, don't try to load it,
// and instead reset the app state to the fallback data view
if (fallback) {
- appState.update({ index: nextDataView.id }, true);
+ appState.update(
+ {
+ dataSource: nextDataView.id
+ ? createDataViewDataSource({ dataViewId: nextDataView.id })
+ : undefined,
+ },
+ true
+ );
+
return;
}
+
savedSearch.searchSource.setField('index', nextDataView);
dataState.reset(savedSearch);
setDataView(nextDataView);
@@ -104,7 +127,7 @@ export const buildStateSubscribe =
savedSearchState.update({ nextDataView: savedSearchDataView, nextState });
- if (dataViewChanged && dataState.getInitialFetchStatus() === FetchStatus.UNINITIALIZED) {
+ if (dataSourceChanged && dataState.getInitialFetchStatus() === FetchStatus.UNINITIALIZED) {
// stop execution if given data view has changed, and it's not configured to initially start a search in Discover
return;
}
@@ -115,7 +138,7 @@ export const buildStateSubscribe =
breakdownFieldChanged ||
sampleSizeChanged ||
docTableSortChanged ||
- dataViewChanged ||
+ dataSourceChanged ||
queryChanged
) {
const logData = {
@@ -127,7 +150,7 @@ export const buildStateSubscribe =
nextState.breakdownField
),
docTableSortChanged: logEntry(docTableSortChanged, sort, nextState.sort),
- dataViewChanged: logEntry(dataViewChanged, index, nextState.index),
+ dataSourceChanged: logEntry(dataSourceChanged, dataSource, nextState.dataSource),
queryChanged: logEntry(queryChanged, prevQuery, nextQuery),
};
diff --git a/src/plugins/discover/public/application/main/state_management/utils/change_data_view.test.ts b/src/plugins/discover/public/application/main/state_management/utils/change_data_view.test.ts
index 62cca6a4199f8..4e486e588b8eb 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/change_data_view.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/change_data_view.test.ts
@@ -17,6 +17,7 @@ import type { DataView } from '@kbn/data-views-plugin/common';
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
import { PureTransitionsToTransitions } from '@kbn/kibana-utils-plugin/common/state_containers';
import { InternalStateTransitions } from '../discover_internal_state_container';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
const setupTestParams = (dataView: DataView | undefined) => {
const savedSearch = savedSearchMock;
@@ -44,7 +45,7 @@ describe('changeDataView', () => {
await changeDataView(dataViewWithDefaultColumnMock.id!, params);
expect(params.appState.update).toHaveBeenCalledWith({
columns: ['default_column'], // default_column would be added as dataViewWithDefaultColumn has it as a mapped field
- index: 'data-view-with-user-default-column-id',
+ dataSource: createDataViewDataSource({ dataViewId: 'data-view-with-user-default-column-id' }),
sort: [['@timestamp', 'desc']],
});
expect(params.internalState.transitions.setIsDataViewLoading).toHaveBeenNthCalledWith(1, true);
@@ -56,7 +57,7 @@ describe('changeDataView', () => {
await changeDataView(dataViewComplexMock.id!, params);
expect(params.appState.update).toHaveBeenCalledWith({
columns: [], // default_column would not be added as dataViewComplexMock does not have it as a mapped field
- index: 'data-view-with-various-field-types-id',
+ dataSource: createDataViewDataSource({ dataViewId: 'data-view-with-various-field-types-id' }),
sort: [['data', 'desc']],
});
expect(params.internalState.transitions.setIsDataViewLoading).toHaveBeenNthCalledWith(1, true);
diff --git a/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.test.ts b/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.test.ts
index 46757b8fcffd8..bf5e30093dbbc 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.test.ts
@@ -9,11 +9,12 @@
import { AppStateUrl } from '../discover_app_state_container';
import { cleanupUrlState } from './cleanup_url_state';
import { createDiscoverServicesMock } from '../../../../__mocks__/services';
+import { DataSourceType } from '../../../../../common/data_sources';
const services = createDiscoverServicesMock();
describe('cleanupUrlState', () => {
- test('cleaning up legacy sort', async () => {
+ test('cleaning up legacy sort', () => {
const state = { sort: ['batman', 'desc'] } as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`
Object {
@@ -26,11 +27,13 @@ describe('cleanupUrlState', () => {
}
`);
});
- test('not cleaning up broken legacy sort', async () => {
+
+ test('not cleaning up broken legacy sort', () => {
const state = { sort: ['batman'] } as unknown as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
- test('not cleaning up regular sort', async () => {
+
+ test('not cleaning up regular sort', () => {
const state = {
sort: [
['batman', 'desc'],
@@ -52,14 +55,15 @@ describe('cleanupUrlState', () => {
}
`);
});
- test('removing empty sort', async () => {
+
+ test('removing empty sort', () => {
const state = {
sort: [],
} as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
- test('should keep a valid rowsPerPage', async () => {
+ test('should keep a valid rowsPerPage', () => {
const state = {
rowsPerPage: 50,
} as AppStateUrl;
@@ -70,14 +74,14 @@ describe('cleanupUrlState', () => {
`);
});
- test('should remove a negative rowsPerPage', async () => {
+ test('should remove a negative rowsPerPage', () => {
const state = {
rowsPerPage: -50,
} as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
- test('should remove an invalid rowsPerPage', async () => {
+ test('should remove an invalid rowsPerPage', () => {
const state = {
rowsPerPage: 'test',
} as unknown as AppStateUrl;
@@ -85,7 +89,7 @@ describe('cleanupUrlState', () => {
});
describe('sampleSize', function () {
- test('should keep a valid sampleSize', async () => {
+ test('should keep a valid sampleSize', () => {
const state = {
sampleSize: 50,
} as AppStateUrl;
@@ -96,7 +100,7 @@ describe('cleanupUrlState', () => {
`);
});
- test('should remove for ES|QL', async () => {
+ test('should remove for ES|QL', () => {
const state = {
sampleSize: 50,
query: {
@@ -112,25 +116,78 @@ describe('cleanupUrlState', () => {
`);
});
- test('should remove a negative sampleSize', async () => {
+ test('should remove a negative sampleSize', () => {
const state = {
sampleSize: -50,
} as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
- test('should remove an invalid sampleSize', async () => {
+ test('should remove an invalid sampleSize', () => {
const state = {
sampleSize: 'test',
} as unknown as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
- test('should remove a too large sampleSize', async () => {
+ test('should remove a too large sampleSize', () => {
const state = {
sampleSize: 500000,
} as AppStateUrl;
expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`Object {}`);
});
});
+
+ describe('index', () => {
+ it('should convert index to a data view dataSource', () => {
+ const state: AppStateUrl = {
+ index: 'test',
+ };
+ expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`
+ Object {
+ "dataSource": Object {
+ "dataViewId": "test",
+ "type": "dataView",
+ },
+ }
+ `);
+ });
+
+ it('should not override the dataSource if one is already set', () => {
+ const state: AppStateUrl = {
+ index: 'test',
+ dataSource: {
+ type: DataSourceType.DataView,
+ dataViewId: 'test2',
+ },
+ };
+ expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`
+ Object {
+ "dataSource": Object {
+ "dataViewId": "test2",
+ "type": "dataView",
+ },
+ }
+ `);
+ });
+
+ it('should set an ES|QL dataSource if the query is an ES|QL query', () => {
+ const state: AppStateUrl = {
+ index: 'test',
+ query: {
+ esql: 'from test',
+ },
+ };
+ expect(cleanupUrlState(state, services.uiSettings)).toMatchInlineSnapshot(`
+ Object {
+ "dataSource": Object {
+ "type": "esql",
+ },
+ "query": Object {
+ "esql": "from test",
+ },
+ }
+ `);
+ });
+ });
});
diff --git a/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.ts b/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.ts
index 07b939c162f71..ebf5f8dc90bd3 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/cleanup_url_state.ts
@@ -10,6 +10,7 @@ import type { IUiSettingsClient } from '@kbn/core-ui-settings-browser';
import { DiscoverAppState, AppStateUrl } from '../discover_app_state_container';
import { migrateLegacyQuery } from '../../../../utils/migrate_legacy_query';
import { getMaxAllowedSampleSize } from '../../../../utils/get_allowed_sample_size';
+import { createDataViewDataSource, createEsqlDataSource } from '../../../../../common/data_sources';
/**
* Takes care of the given url state, migrates legacy props and cleans up empty props
@@ -20,7 +21,6 @@ export function cleanupUrlState(
uiSettings: IUiSettingsClient
): DiscoverAppState {
if (
- appStateFromUrl &&
appStateFromUrl.query &&
!isOfAggregateQueryType(appStateFromUrl.query) &&
!appStateFromUrl.query.language
@@ -28,8 +28,8 @@ export function cleanupUrlState(
appStateFromUrl.query = migrateLegacyQuery(appStateFromUrl.query);
}
- if (typeof appStateFromUrl?.sort?.[0] === 'string') {
- if (appStateFromUrl?.sort?.[1] === 'asc' || appStateFromUrl.sort[1] === 'desc') {
+ if (typeof appStateFromUrl.sort?.[0] === 'string') {
+ if (appStateFromUrl.sort?.[1] === 'asc' || appStateFromUrl.sort[1] === 'desc') {
// handling sort props like this[fieldName,direction]
appStateFromUrl.sort = [[appStateFromUrl.sort[0], appStateFromUrl.sort[1]]];
} else {
@@ -37,14 +37,14 @@ export function cleanupUrlState(
}
}
- if (appStateFromUrl?.sort && !appStateFromUrl.sort.length) {
+ if (appStateFromUrl.sort && !appStateFromUrl.sort.length) {
// If there's an empty array given in the URL, the sort prop should be removed
// This allows the sort prop to be overwritten with the default sorting
delete appStateFromUrl.sort;
}
if (
- appStateFromUrl?.rowsPerPage &&
+ appStateFromUrl.rowsPerPage &&
!(typeof appStateFromUrl.rowsPerPage === 'number' && appStateFromUrl.rowsPerPage > 0)
) {
// remove the param if it's invalid
@@ -52,7 +52,7 @@ export function cleanupUrlState(
}
if (
- appStateFromUrl?.sampleSize &&
+ appStateFromUrl.sampleSize &&
(isOfAggregateQueryType(appStateFromUrl.query) || // not supported yet for ES|QL
!(
typeof appStateFromUrl.sampleSize === 'number' &&
@@ -64,5 +64,16 @@ export function cleanupUrlState(
delete appStateFromUrl.sampleSize;
}
+ if (appStateFromUrl.index) {
+ if (!appStateFromUrl.dataSource) {
+ // Convert the provided index to a data source
+ appStateFromUrl.dataSource = isOfAggregateQueryType(appStateFromUrl.query)
+ ? createEsqlDataSource()
+ : createDataViewDataSource({ dataViewId: appStateFromUrl.index });
+ }
+
+ delete appStateFromUrl.index;
+ }
+
return appStateFromUrl as DiscoverAppState;
}
diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
index 0a862b712186a..5e070ef099cde 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.test.ts
@@ -13,6 +13,7 @@ import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_
import { savedSearchMock, savedSearchMockWithESQL } from '../../../../__mocks__/saved_search';
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
import { discoverServiceMock } from '../../../../__mocks__/services';
+import { createDataViewDataSource, createEsqlDataSource } from '../../../../../common/data_sources';
describe('getStateDefaults', () => {
test('data view with timefield', () => {
@@ -27,12 +28,15 @@ describe('getStateDefaults', () => {
"columns": Array [
"default_column",
],
+ "dataSource": Object {
+ "dataViewId": "index-pattern-with-timefield-id",
+ "type": "dataView",
+ },
"filters": undefined,
"grid": undefined,
"headerRowHeight": undefined,
"hideAggregatedPreview": undefined,
"hideChart": undefined,
- "index": "index-pattern-with-timefield-id",
"interval": "auto",
"query": undefined,
"rowHeight": undefined,
@@ -63,12 +67,15 @@ describe('getStateDefaults', () => {
"columns": Array [
"default_column",
],
+ "dataSource": Object {
+ "dataViewId": "the-data-view-id",
+ "type": "dataView",
+ },
"filters": undefined,
"grid": undefined,
"headerRowHeight": undefined,
"hideAggregatedPreview": undefined,
"hideChart": undefined,
- "index": "the-data-view-id",
"interval": "auto",
"query": undefined,
"rowHeight": undefined,
@@ -108,7 +115,7 @@ describe('getStateDefaults', () => {
},
});
expect(actualForTextBasedWithValidViewMode.viewMode).toBe(VIEW_MODE.DOCUMENT_LEVEL);
- expect(actualForTextBasedWithValidViewMode.index).toBe(undefined);
+ expect(actualForTextBasedWithValidViewMode.dataSource).toEqual(createEsqlDataSource());
const actualForWithValidViewMode = getStateDefaults({
services: discoverServiceMock,
@@ -118,8 +125,32 @@ describe('getStateDefaults', () => {
},
});
expect(actualForWithValidViewMode.viewMode).toBe(VIEW_MODE.AGGREGATED_LEVEL);
- expect(actualForWithValidViewMode.index).toBe(
- savedSearchMock.searchSource.getField('index')?.id
+ expect(actualForWithValidViewMode.dataSource).toEqual(
+ createDataViewDataSource({
+ dataViewId: savedSearchMock.searchSource.getField('index')?.id!,
+ })
);
});
+
+ test('should return expected dataSource', () => {
+ const actualForTextBased = getStateDefaults({
+ services: discoverServiceMock,
+ savedSearch: savedSearchMockWithESQL,
+ });
+ expect(actualForTextBased.dataSource).toMatchInlineSnapshot(`
+ Object {
+ "type": "esql",
+ }
+ `);
+ const actualForDataView = getStateDefaults({
+ services: discoverServiceMock,
+ savedSearch: savedSearchMock,
+ });
+ expect(actualForDataView.dataSource).toMatchInlineSnapshot(`
+ Object {
+ "dataViewId": "the-data-view-id",
+ "type": "dataView",
+ }
+ `);
+ });
});
diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts
index 4faf8ffad2990..7a1f2734aa7c8 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/get_state_defaults.ts
@@ -21,6 +21,11 @@ import { DiscoverServices } from '../../../../build_services';
import { getDefaultSort, getSortArray } from '../../../../utils/sorting';
import { isTextBasedQuery } from '../../utils/is_text_based_query';
import { getValidViewMode } from '../../utils/get_valid_view_mode';
+import {
+ createDataViewDataSource,
+ createEsqlDataSource,
+ DiscoverDataSource,
+} from '../../../../../common/data_sources';
function getDefaultColumns(savedSearch: SavedSearch, uiSettings: IUiSettingsClient) {
if (savedSearch.columns && savedSearch.columns.length > 0) {
@@ -45,12 +50,16 @@ export function getStateDefaults({
const { searchSource } = savedSearch;
const { data, uiSettings, storage } = services;
const dataView = searchSource.getField('index');
-
const query = searchSource.getField('query') || data.query.queryString.getDefaultQuery();
const isTextBasedQueryMode = isTextBasedQuery(query);
const sort = getSortArray(savedSearch.sort ?? [], dataView!, isTextBasedQueryMode);
const columns = getDefaultColumns(savedSearch, uiSettings);
const chartHidden = getChartHidden(storage, 'discover');
+ const dataSource: DiscoverDataSource | undefined = isTextBasedQueryMode
+ ? createEsqlDataSource()
+ : dataView?.id
+ ? createDataViewDataSource({ dataViewId: dataView.id })
+ : undefined;
const defaultState: DiscoverAppState = {
query,
@@ -63,7 +72,7 @@ export function getStateDefaults({
)
: sort,
columns,
- index: isTextBasedQueryMode ? undefined : dataView?.id,
+ dataSource,
interval: 'auto',
filters: cloneDeep(searchSource.getOwnField('filter')) as DiscoverAppState['filters'],
hideChart: typeof chartHidden === 'boolean' ? chartHidden : undefined,
diff --git a/src/plugins/discover/public/application/main/state_management/utils/get_switch_data_view_app_state.ts b/src/plugins/discover/public/application/main/state_management/utils/get_switch_data_view_app_state.ts
index f94420403f261..c06cb3b67f235 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/get_switch_data_view_app_state.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/get_switch_data_view_app_state.ts
@@ -10,6 +10,8 @@ import { isOfAggregateQueryType, Query, AggregateQuery } from '@kbn/es-query';
import type { DataView } from '@kbn/data-views-plugin/public';
import type { SortOrder } from '@kbn/saved-search-plugin/public';
import { getSortArray } from '../../../../utils/sorting';
+import { DiscoverAppState } from '../discover_app_state_container';
+import { createDataViewDataSource } from '../../../../../common/data_sources';
/**
* Helper function to remove or adapt the currently selected columns/sort to be valid with the next
@@ -24,7 +26,7 @@ export function getDataViewAppState(
modifyColumns: boolean = true,
sortDirection: string = 'desc',
query?: Query | AggregateQuery
-) {
+): Partial {
let columns = currentColumns || [];
if (modifyColumns) {
@@ -66,7 +68,9 @@ export function getDataViewAppState(
}
return {
- index: nextDataView.id,
+ dataSource: nextDataView.id
+ ? createDataViewDataSource({ dataViewId: nextDataView.id })
+ : undefined,
columns,
sort: nextSort,
};
diff --git a/src/plugins/discover/public/application/main/state_management/utils/load_saved_search.ts b/src/plugins/discover/public/application/main/state_management/utils/load_saved_search.ts
index ba7d2a9342c24..0997f0f58b0aa 100644
--- a/src/plugins/discover/public/application/main/state_management/utils/load_saved_search.ts
+++ b/src/plugins/discover/public/application/main/state_management/utils/load_saved_search.ts
@@ -24,6 +24,7 @@ import {
} from '../discover_app_state_container';
import { DiscoverGlobalStateContainer } from '../discover_global_state_container';
import { DiscoverServices } from '../../../../build_services';
+import { DataSourceType, isDataSourceType } from '../../../../../common/data_sources';
interface LoadSavedSearchDeps {
appStateContainer: DiscoverAppStateContainer;
@@ -58,11 +59,24 @@ export const loadSavedSearch = async (
const appState = appStateExists ? appStateContainer.getState() : initialAppState;
// Loading the saved search or creating a new one
- let nextSavedSearch = savedSearchId
- ? await savedSearchContainer.load(savedSearchId)
- : await savedSearchContainer.new(
- await getStateDataView(params, { services, appState, internalStateContainer })
- );
+ let nextSavedSearch: SavedSearch;
+
+ if (savedSearchId) {
+ nextSavedSearch = await savedSearchContainer.load(savedSearchId);
+ } else {
+ const dataViewId = isDataSourceType(appState?.dataSource, DataSourceType.DataView)
+ ? appState?.dataSource.dataViewId
+ : undefined;
+
+ nextSavedSearch = await savedSearchContainer.new(
+ await getStateDataView(params, {
+ dataViewId,
+ query: appState?.query,
+ services,
+ internalStateContainer,
+ })
+ );
+ }
// Cleaning up the previous state
services.filterManager.setAppFilters([]);
@@ -86,14 +100,15 @@ export const loadSavedSearch = async (
// Update saved search by a given app state (in URL)
if (appState) {
- if (savedSearchId && appState.index) {
+ if (savedSearchId && isDataSourceType(appState.dataSource, DataSourceType.DataView)) {
// This is for the case appState is overwriting the loaded saved search data view
const savedSearchDataViewId = nextSavedSearch.searchSource.getField('index')?.id;
const stateDataView = await getStateDataView(params, {
+ dataViewId: appState.dataSource.dataViewId,
+ query: appState.query,
+ savedSearch: nextSavedSearch,
services,
- appState,
internalStateContainer,
- savedSearch: nextSavedSearch,
});
const dataViewDifferentToAppState = stateDataView.id !== savedSearchDataViewId;
if (
@@ -175,35 +190,39 @@ function updateBySavedSearch(savedSearch: SavedSearch, deps: LoadSavedSearchDeps
const getStateDataView = async (
params: LoadParams,
{
+ dataViewId,
+ query,
savedSearch,
- appState,
services,
internalStateContainer,
}: {
+ dataViewId?: string;
+ query: DiscoverAppState['query'];
savedSearch?: SavedSearch;
- appState?: DiscoverAppState;
services: DiscoverServices;
internalStateContainer: DiscoverInternalStateContainer;
}
) => {
- const { dataView, dataViewSpec } = params ?? {};
+ const { dataView, dataViewSpec } = params;
+ const isTextBased = isTextBasedQuery(query);
+
if (dataView) {
return dataView;
}
- const query = appState?.query;
- if (isTextBasedQuery(query)) {
+ if (isTextBased) {
return await getDataViewByTextBasedQueryLang(query, dataView, services);
}
const result = await loadAndResolveDataView(
{
- id: appState?.index,
+ id: dataViewId,
dataViewSpec,
savedSearch,
- isTextBasedQuery: isTextBasedQuery(appState?.query),
+ isTextBasedQuery: isTextBased,
},
{ services, internalStateContainer }
);
+
return result.dataView;
};
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/copy_button.tsx b/src/plugins/discover/public/components/data_types/logs/copy_button.tsx
similarity index 82%
rename from x-pack/plugins/observability_solution/logs_explorer/public/components/common/copy_button.tsx
rename to src/plugins/discover/public/components/data_types/logs/copy_button.tsx
index fe02a7a872720..83da6f3896edf 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/copy_button.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/copy_button.tsx
@@ -1,8 +1,9 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
import { EuiButtonEmpty, EuiFlexItem, copyToClipboard } from '@elastic/eui';
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_in_button.tsx b/src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx
similarity index 75%
rename from x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_in_button.tsx
rename to src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx
index e2f43d1b0c5fc..71412a90002bd 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_in_button.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/filter_in_button.tsx
@@ -1,15 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
import { EuiButtonEmpty, EuiFlexItem } from '@elastic/eui';
import React from 'react';
import { generateFilters } from '@kbn/data-plugin/public';
-import { filterForText, actionFilterForText } from './translations';
-import { useVirtualColumnServiceContext } from '../../hooks/use_virtual_column_services';
+import { useVirtualColumnServiceContext } from '../../../application/main/hooks/grid_customisations/use_virtual_column_services';
+import { actionFilterForText, filterForText } from './translations';
export const FilterInButton = ({ property, value }: { property: string; value: string }) => {
const ariaFilterForText = actionFilterForText(value);
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_out_button.tsx b/src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx
similarity index 76%
rename from x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_out_button.tsx
rename to src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx
index 9291e17cc44fd..3c3892b31ba5e 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/filter_out_button.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/filter_out_button.tsx
@@ -1,15 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
import { EuiButtonEmpty, EuiFlexItem } from '@elastic/eui';
import React from 'react';
import { generateFilters } from '@kbn/data-plugin/public';
-import { filterOutText, actionFilterOutText } from './translations';
-import { useVirtualColumnServiceContext } from '../../hooks/use_virtual_column_services';
+import { useVirtualColumnServiceContext } from '../../../application/main/hooks/grid_customisations/use_virtual_column_services';
+import { actionFilterOutText, filterOutText } from './translations';
export const FilterOutButton = ({ property, value }: { property: string; value: string }) => {
const ariaFilterOutText = actionFilterOutText(value);
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/log_level.tsx b/src/plugins/discover/public/components/data_types/logs/log_level.tsx
similarity index 79%
rename from x-pack/plugins/observability_solution/logs_explorer/public/components/common/log_level.tsx
rename to src/plugins/discover/public/components/data_types/logs/log_level.tsx
index 9f5dfef23ce0d..bddc6486f3c81 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/log_level.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/log_level.tsx
@@ -1,15 +1,16 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
import React from 'react';
import { useEuiTheme } from '@elastic/eui';
-import { FlyoutDoc } from '../../../common/document';
+import { LogFlyoutDoc } from '@kbn/discover-utils/src';
+import * as constants from '../../../../common/data_types/logs/constants';
import { ChipWithPopover } from './popover_chip';
-import * as constants from '../../../common/constants';
const LEVEL_DICT = {
error: 'danger',
@@ -19,7 +20,7 @@ const LEVEL_DICT = {
} as const;
interface LogLevelProps {
- level: FlyoutDoc['log.level'];
+ level: LogFlyoutDoc['log.level'];
dataTestSubj?: string;
renderInFlyout?: boolean;
}
diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/popover_chip.tsx b/src/plugins/discover/public/components/data_types/logs/popover_chip.tsx
similarity index 95%
rename from x-pack/plugins/observability_solution/logs_explorer/public/components/common/popover_chip.tsx
rename to src/plugins/discover/public/components/data_types/logs/popover_chip.tsx
index 2811bbf5480c4..8631cb563cddb 100644
--- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/popover_chip.tsx
+++ b/src/plugins/discover/public/components/data_types/logs/popover_chip.tsx
@@ -1,8 +1,9 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
*/
import React, { useCallback, useState } from 'react';
diff --git a/src/plugins/discover/public/components/data_types/logs/translations.tsx b/src/plugins/discover/public/components/data_types/logs/translations.tsx
new file mode 100644
index 0000000000000..fcf846d0ea891
--- /dev/null
+++ b/src/plugins/discover/public/components/data_types/logs/translations.tsx
@@ -0,0 +1,300 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
+ * Side Public License, v 1.
+ */
+
+import React from 'react';
+import { i18n } from '@kbn/i18n';
+import { EuiCode } from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n-react';
+
+export const flyoutContentLabel = i18n.translate('discover.logs.flyoutDetail.label.message', {
+ defaultMessage: 'Content breakdown',
+});
+
+export const contentLabel = i18n.translate('discover.logs.dataTable.header.popover.content', {
+ defaultMessage: 'Content',
+});
+
+export const resourceLabel = i18n.translate('discover.logs.dataTable.header.popover.resource', {
+ defaultMessage: 'Resource',
+});
+
+export const actionsLabel = i18n.translate('discover.logs.dataTable.header.popover.actions', {
+ defaultMessage: 'Actions',
+});
+
+export const actionsLabelLowerCase = i18n.translate(
+ 'discover.logs.dataTable.header.popover.actions.lowercase',
+ {
+ defaultMessage: 'actions',
+ }
+);
+
+export const flyoutServiceLabel = i18n.translate('discover.logs.flyoutDetail.label.service', {
+ defaultMessage: 'Service',
+});
+
+export const flyoutTraceLabel = i18n.translate('discover.logs.flyoutDetail.label.trace', {
+ defaultMessage: 'Trace',
+});
+
+export const flyoutHostNameLabel = i18n.translate('discover.logs.flyoutDetail.label.hostName', {
+ defaultMessage: 'Host name',
+});
+
+export const serviceInfraAccordionTitle = i18n.translate(
+ 'discover.logs.flyoutDetail.accordion.title.serviceInfra',
+ {
+ defaultMessage: 'Service & Infrastructure',
+ }
+);
+
+export const cloudAccordionTitle = i18n.translate(
+ 'discover.logs.flyoutDetail.accordion.title.cloud',
+ {
+ defaultMessage: 'Cloud',
+ }
+);
+
+export const otherAccordionTitle = i18n.translate(
+ 'discover.logs.flyoutDetail.accordion.title.other',
+ {
+ defaultMessage: 'Other',
+ }
+);
+
+export const flyoutOrchestratorClusterNameLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.orchestratorClusterName',
+ {
+ defaultMessage: 'Orchestrator cluster Name',
+ }
+);
+
+export const flyoutOrchestratorResourceIdLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.orchestratorResourceId',
+ {
+ defaultMessage: 'Orchestrator resource ID',
+ }
+);
+
+export const flyoutCloudProviderLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.cloudProvider',
+ {
+ defaultMessage: 'Cloud provider',
+ }
+);
+
+export const flyoutCloudRegionLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.cloudRegion',
+ {
+ defaultMessage: 'Cloud region',
+ }
+);
+
+export const flyoutCloudAvailabilityZoneLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.cloudAvailabilityZone',
+ {
+ defaultMessage: 'Cloud availability zone',
+ }
+);
+
+export const flyoutCloudProjectIdLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.cloudProjectId',
+ {
+ defaultMessage: 'Cloud project ID',
+ }
+);
+
+export const flyoutCloudInstanceIdLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.cloudInstanceId',
+ {
+ defaultMessage: 'Cloud instance ID',
+ }
+);
+
+export const flyoutLogPathFileLabel = i18n.translate(
+ 'discover.logs.flyoutDetail.label.logPathFile',
+ {
+ defaultMessage: 'Log path file',
+ }
+);
+
+export const flyoutNamespaceLabel = i18n.translate('discover.logs.flyoutDetail.label.namespace', {
+ defaultMessage: 'Namespace',
+});
+
+export const flyoutDatasetLabel = i18n.translate('discover.logs.flyoutDetail.label.dataset', {
+ defaultMessage: 'Dataset',
+});
+
+export const flyoutShipperLabel = i18n.translate('discover.logs.flyoutDetail.label.shipper', {
+ defaultMessage: 'Shipper',
+});
+
+export const actionFilterForText = (text: string) =>
+ i18n.translate('discover.logs.flyoutDetail.value.hover.filterFor', {
+ defaultMessage: 'Filter for this {value}',
+ values: {
+ value: text,
+ },
+ });
+
+export const actionFilterOutText = (text: string) =>
+ i18n.translate('discover.logs.flyoutDetail.value.hover.filterOut', {
+ defaultMessage: 'Filter out this {value}',
+ values: {
+ value: text,
+ },
+ });
+
+export const filterOutText = i18n.translate('discover.logs.popoverAction.filterOut', {
+ defaultMessage: 'Filter out',
+});
+
+export const filterForText = i18n.translate('discover.logs.popoverAction.filterFor', {
+ defaultMessage: 'Filter for',
+});
+
+export const flyoutHoverActionFilterForFieldPresentText = i18n.translate(
+ 'discover.logs.flyoutDetail.value.hover.filterForFieldPresent',
+ {
+ defaultMessage: 'Filter for field present',
+ }
+);
+
+export const flyoutHoverActionToggleColumnText = i18n.translate(
+ 'discover.logs.flyoutDetail.value.hover.toggleColumn',
+ {
+ defaultMessage: 'Toggle column in table',
+ }
+);
+
+export const flyoutHoverActionCopyToClipboardText = i18n.translate(
+ 'discover.logs.flyoutDetail.value.hover.copyToClipboard',
+ {
+ defaultMessage: 'Copy to clipboard',
+ }
+);
+
+export const copyValueText = i18n.translate('discover.logs.popoverAction.copyValue', {
+ defaultMessage: 'Copy value',
+});
+
+export const copyValueAriaText = (fieldName: string) =>
+ i18n.translate('discover.logs.popoverAction.copyValueAriaText', {
+ defaultMessage: 'Copy value of {fieldName}',
+ values: {
+ fieldName,
+ },
+ });
+
+export const flyoutAccordionShowMoreText = (count: number) =>
+ i18n.translate('discover.logs.flyoutDetail.section.showMore', {
+ defaultMessage: '+ {hiddenCount} more',
+ values: {
+ hiddenCount: count,
+ },
+ });
+
+export const openCellActionPopoverAriaText = i18n.translate(
+ 'discover.logs.popoverAction.openPopover',
+ {
+ defaultMessage: 'Open popover',
+ }
+);
+
+export const closeCellActionPopoverText = i18n.translate(
+ 'discover.logs.popoverAction.closePopover',
+ {
+ defaultMessage: 'Close popover',
+ }
+);
+
+export const contentHeaderTooltipParagraph1 = (
+